1. 系统代理的局限性
「系统代理(System Proxy)」本质上是在操作系统的网络设置中写入 HTTP/HTTPS 代理地址(如 127.0.0.1:7890)。只有主动读取系统代理设置的应用才能走代理,包括:
✅ 支持系统代理
- • Chrome / Firefox / Safari 等浏览器
- • Slack / Discord(桌面版)
- • 大多数 GUI 应用
❌ 不支持系统代理
- • Terminal / PowerShell / CMD
- • git、curl、wget、npm、pip
- • Docker daemon
- • 部分游戏、UWP 应用
命令行工具通常在环境变量 https_proxy 中读取代理,您可以手动设置,但每次打开新终端都要重设,非常麻烦。TUN 模式从根本上解决了这个问题。
2. TUN 模式的工作原理
TUN(Tunnel)模式通过在操作系统中创建一张虚拟网卡,并将系统的默认路由表指向该虚拟网卡,从而在网络层(L3)接管所有出站流量,再由 Clash 核心统一处理分流逻辑。
操作系统路由层拦截
DNS 解析 · 规则匹配 · 分流决策
3. 谁需要开启 TUN?
软件开发者
需要在终端使用 git、npm、pip、cargo 等工具访问 GitHub、npmjs 等海外资源。
Docker / 容器用户
Docker daemon 拉取镜像(docker pull)不走系统代理,需要 TUN 模式或单独配置 Docker 代理。
游戏玩家
部分游戏客户端(含 UWP 应用如 Xbox Game Pass)不走系统代理,TUN 模式可让游戏流量也经过规则分流。
仅用浏览器上网的普通用户
浏览器已支持系统代理,不需要 TUN 模式,开启反而增加系统资源消耗。
4. 如何在 Clash Verge Rev 中开启 TUN
TUN 模式需要管理员/root 权限。首次使用需安装「服务模式(Service Mode)」,之后即可无感使用。
-
1
安装服务模式
打开 Clash Verge Rev → 进入「设置(Settings)」→「系统设置」→ 点击「安装服务模式」→ 在系统弹框中授予管理员权限。
-
2
开启 TUN 模式
在「设置」中找到「TUN 模式」开关,点击开启。状态栏图标变绿即表示 TUN 已激活。
-
3
验证效果
打开新终端,执行
curl -I https://www.google.com,能返回 200 响应即表示 TUN 模式生效。
5. TUN 配置参数说明
tun: enable: true stack: mixed # 推荐 mixed;gvisor 更安全但性能略低 auto-route: true # 自动设置路由表,接管所有流量 auto-detect-interface: true dns-hijack: # 劫持 DNS 请求,防止 DNS 泄漏 - any:53 inet4-route-address: # 仅路由这些网段(留空=全部) - 0.0.0.0/1 - 128.0.0.0/1
Clash Verge Rev 中无需手动编辑此配置,GUI 开关会自动写入。
6. 常见问题排查
开启 TUN 后浏览器无法访问任何网站
TUN 模式下国内网站变慢了
GEOIP,CN,DIRECT 和国内域名直连规则。TUN 接管流量后依然会走规则分流逻辑,国内流量应自动直连。