Clash原理略解
Clash 概览
- Clash 不是协议,而是集成多种科学上网协议(Shadowsocks、SSR、VMess、VLESS、Trojan 等)的代理工具。
- 用户可以在配置文件中定义
proxy-groups
,并结合fallback
(优先级回退)、url-test
(节点测速)或select
(手动选择)等策略,对多个上游代理节点进行分组,再根据节点可用性或用户需求自动或手动切换,从而实现智能灵活的流量分流。
本地代理端口
Clash 默认提供两种应用层代理服务:
- HTTP(S) 代理(默认端口 7890)
- 接收 HTTP 请求和 HTTPS 的 CONNECT 隧道。
- SOCKS5 代理(默认端口 7891)
- 支持 TCP 转发,若开启可选的 UDP 转发也可代理 DNS、QUIC、游戏等 UDP 流量。
注意:部分 Clash 分支可能还提供额外端口(如 Mixed Port、DNS 代理端口等),以不同方式兼容更多协议。
两种流量捕获模式
1. 普通模式(Application Proxy)
不需 root 权限,只需在应用或系统环境变量中将代理地址设置为
127.0.0.1:7890/7891
。拦截点位于 回环接口;只有那些在应用或系统中明确定义代理地址为
127.0.0.1:7890
或127.0.0.1:7891
的请求,才会被内核回环送入 Clash 处理。未设置代理的流量将直接走默认网络,不会经过 Clash。应用层会先剥离 HTTP/SOCKS5 头部,解析出目标地址、端口,然后按规则分流到对应上游节点。
优点:配置简单,跨平台一致,无需修改系统路由;稳定性高。
缺点:需要手动配置每个应用;UDP 支持有限,只有 SOCKS5 UDP 转发。
流量方向示意:
应用程序 ↓ (发起 HTTP/SOCKS5 请求) 回环接口 (127.0.0.1:7890/7891) ↓ (在 **内核态**,回环网络栈接收并转发到该端口) Clash 在应用层(用户态) ↓ (剥离协议头,分流 & 加密封装) 上游代理节点 ↓ (解密 & 发起真实请求) 目标服务器
2. TUN 模式(Transparent Proxy / VPN 模式)
需 root/管理员权限,在操作系统中创建一个虚拟网卡(如
tun0
)。系统路由表将匹配规则的 IP 包(可按地理/端口)导入该虚拟网卡,Clash 从中读取原始 IP 包。
按传输层剥离 TCP/UDP 头部,再解析应用层协议,完成分流与加密。
优点:全局透明代理,原生支持 TCP&UDP,适合游戏、视频、P2P 等场景,无需逐应用配置。
缺点:配置复杂,权限要求高,依赖系统 TUN 驱动,跨平台兼容性和本高。
流量方向示意:
应用程序 / 系统发出的 IP 数据包 ↓ (路由表定向到 tun0) TUN 虚拟网卡 (tun0)(在内核态管理) ↓ (Clash 读取原始 IP 包) Clash 在应用层处理(用户态,即非内核态进行的应用层协议解析) ↓ (解析 TCP/UDP 头部,剥离,分流 & 加密封装) 上游代理节点 ↓ (解密 & 发起真实请求) 目标服务器
默认不开启 TUN:保持普通模式的易用性和稳定性,高级用户可根据需要手动启用。
远程部署TUN和普通模式没区别
- 如果 Clash 部署在非本机(远程服务器或软路由以外的机器),普通模式与 TUN 模式在那台服务器上都无法拦截其他客户端的原始流量。
- 客户端到远程的流量已被封装为 HTTP/SOCKS5 代理请求,服务器上的 TUN 设备不会捕获这些已封装的流量。
- 正确做法:要对客户端全局代理,需在每台客户端本地开启 TUN 或配置本地应用代理。
分流与上游节点
- Clash 根据配置规则选择上游节点,如直连、Shadowsocks、SSR、VMess、VLESS、Trojan、HTTP、SOCKS5 等。
- 上游节点负责解密、访问真正目标、再将响应加密返回给本地 Clash,Clash 解密并转交给客户端。
不影响入站服务
- 运行 Clash 并不会拦截或占用
sshd
的 22 端口;外部 SSH 访问(ssh user@该机IP
)依然直达本机sshd
。 - TUN 模式仅拦截本机的出站流量,不会干扰入站连接。
Anthropic User Safety团队,
你好,我是Linli。我写信是因为,我的Claude账号 (cnshilinli@gmail.com)被无缘无故地封禁了。
我最近看到了Claude 4很厉害的新闻,所以想要谷歌登录来尝试一下这个模型。然而,当我尝试邮箱登录以及谷歌登录的时候,我都被告知,"Your account has been disabled"。这真的很奇怪,因为我几乎没有用过你们的产品,我甚至不记得我曾经注册过你们的账号。然而,当我想要登录的时候却被告知被封禁,这真的很荒谬。
我本来想着算了,注册一个新的账号使用也不是不行。但是,当我用我的手机(+44 7354564001)来注册账号的时候,我又被告知:That phone number has been used too many times. 这绝对不可能,我从2024年9月注册这个手机号以来,最多就在你们的网站绑定过一个账号,也就是我上面的 cnshilinli@gmail.com账号。too many times是绝不可能的。
我希望你们解封我的账号以及手机。如果我是一个有恶意的人,或者注册机器人,我完全可以注册新的邮箱,用新的手机来注册你们的账号然后搞破坏,给你们写邮件申诉解封账号的性价比并不高。我之所以这样做,就是因为我相信我没有做过任何违反你们条例的事情,并且我甚至不记得我用过你们的产品。我希望你们能够解封我的账号,以及我的手机,感谢!