Clash TUN
Mar 8, 2025
Clash Premium 的 TUN 模式 本质上是一种实现 透明代理(Transparent Proxy)的技术手段
透明代理的核心特点是:无需客户端主动配置代理,流量被“透明”地拦截并转发到代理服务器。例如:
- 用户访问
google.com
,流量被系统层自动劫持,通过代理服务器转发,而用户无需在浏览器中设置代理。
- 应用(如命令行工具、游戏客户端)完全无感知,代理过程对用户和应用程序是“透明”的。
工作原理
(1)流量劫持
- 虚拟网卡(TUN 设备):在系统中创建一个虚拟网络接口(TUN 设备),所有系统流量默认经过此设备。
- IP 层拦截:在 OSI 模型的 网络层(第3层) 直接捕获原始流量(包括 TCP、UDP、ICMP),无需依赖应用层协议(如 HTTP/Socks5)。
(2)代理规则决策
- Clash 内核根据配置的规则(如域名、IP、GEOIP)决定流量走向:
- 代理:将流量转发到指定的代理服务器。
- 直连:直接发送到目标服务器。
- 拒绝:直接丢弃(如广告拦截)。
(3)DNS 透明代理
- DNS 劫持:强制将系统的 DNS 请求转发到 Clash 内置的 DNS 服务器,防止 DNS 污染。
- 分域名解析:国内域名直连解析,国外域名通过代理服务器解
TUN 模式的优势
- 协议全覆盖:支持 TCP、UDP、ICMP,适合游戏、视频通话等场景。
- 无需应用适配:所有流量(包括系统服务、命令行工具)默认被劫持。
- 绕过防火墙检测:流量看起来像普通网络请求,而非代理协议(如 Socks5)。
流量处理流程
- DNS 请求:
- 系统发起 DNS 查询(如访问
google.com
)。
dns-hijack
规则拦截该请求,转发到 Clash 的 listen: 0.0.0.0:53
。
- Clash 根据域名判断:
- 若为国内域名 → 通过
nameserver
(114.114.114.114
)直连解析。
- 若为境外域名 → 通过
fallback
(8.8.8.8
)代理解析。
- 返回 Fake-IP(如
198.18.1.1
)给应用。
- 应用发起连接:
- 应用尝试连接 Fake-IP(
198.18.1.1
)。
auto-route
确保流量经过 TUN 设备,被 Clash 捕获。
- Clash 根据域名关联的规则(如
google.com
走代理)决定是否转发到代理服务器