1 什么是 TUN 模式
在深入配置之前,我们先搞清楚一个概念:系统代理和 TUN 模式到底有什么区别?
日常使用 Clash 时,大多数人开的是「系统代理」。这种模式本质上是在操作系统层面设置一个 HTTP/SOCKS5 代理地址,浏览器、部分应用会主动读取这个设置并把流量送过来,但很多程序——尤其是命令行工具——根本就不认这套规则。你有没有遇到过这样的情况:浏览器翻墙没问题,但一打开终端执行 npm install 或 git clone,依然龟速甚至直接超时?这就是系统代理覆盖范围有限的典型表现。
TUN 模式(Tun Mode)的思路完全不同。它在系统中创建一块虚拟网卡(通常命名为 Meta 或 utun),把操作系统所有出站流量——无论是 HTTP、TCP 还是 UDP——全部"骗"进这块虚拟网卡,再由 Clash 内核按照你的规则决定每条连接走代理还是直连。从底层流量视角来看,这台机器的网络完全由 Clash 接管,任何程序都无法绕过。
gvisor 或 system 两种栈,稳定性与兼容性均优于旧版 Clash Premium 内核。
2 为什么你需要 TUN 模式
如果你有以下任意一种需求,TUN 模式几乎是必选项:
- 终端开发者:
npm、pip、cargo、brew等包管理器不走系统代理 - Git 用户:
git clone、git push到 GitHub/GitLab 经常超时 - Docker 用户:拉取 Docker Hub 镜像、构建过程中下载依赖包总是失败
- 游戏玩家:Steam、Epic 等客户端的 UDP 流量无法被系统代理覆盖
- 远程连接:SSH 或某些 VPN 客户端不支持设置代理参数
简单说,只要你遇到"开了代理但某些软件还是不走"的困境,TUN 模式就是终极解法。
3 开启前提条件
软件版本要求
- Clash Verge Rev 1.7.0 及以上版本(推荐使用最新版)
- Windows 系统需安装 Npcap 或已启用 WinTUN 驱动
- macOS 系统需给予「网络内容过滤器」权限
管理员权限
创建虚拟网卡需要系统级权限。Windows 用户请以管理员身份运行 Clash Verge Rev,或在设置中开启「以管理员权限运行」选项(推荐后者,避免每次手动操作)。macOS 会在首次开启 TUN 时弹出系统提示框要求授权,点击「允许」即可。
4 Windows 开启 TUN 模式
步骤一:以管理员权限启动 Clash Verge Rev
右键桌面图标 → 选择「以管理员身份运行」。或者进入 Clash Verge Rev 的「设置」→「系统设置」→ 打开「以管理员权限运行」开关,之后每次启动都会自动提权。
步骤二:安装 Service Mode(服务模式)
依次点击:设置 → 系统设置 → 服务模式,点击「安装」按钮。服务模式可以让 Clash 在系统后台以服务形式运行,TUN 驱动需要这个前提。安装完成后状态显示「已安装」即可。
步骤三:开启 TUN 模式
回到主界面,找到「TUN 模式」开关(通常在首页卡片区或「设置 → 内核设置」中),将其打开。首次开启时 Clash 会自动安装 WinTUN 虚拟驱动,过程需要几秒钟,任务栏图标可能短暂闪动属于正常现象。
WinTUN Userspace Tunnel 或 Meta 的虚拟适配器,说明驱动已就绪。
步骤四:推荐配置 TUN 参数
在 Clash Verge Rev 的「覆写配置」或直接编辑订阅 YAML,加入以下 TUN 段落:
tun:
enable: true
stack: mixed # mixed 兼容性最好(gvisor + system 混合)
dns-hijack:
- any:53 # 劫持所有 DNS 请求,防止 DNS 泄漏
auto-route: true # 自动添加路由规则
auto-detect-interface: true # 自动探测出口网卡
stack: mixed 是目前最推荐的模式:TCP 流量走 gvisor 用户态协议栈(兼容性佳),UDP 流量走 system(性能更高),两者各司其职。如果你发现某些 UDP 应用不正常,可以改为 stack: gvisor 统一处理。
5 macOS 开启 TUN 模式
步骤一:授予系统权限
macOS 下 TUN 的实现依赖系统「网络内容过滤器」(Network Extension)。首次点击 TUN 开关后,系统会弹出权限申请弹窗,打开「系统偏好设置(或系统设置)」→「隐私与安全性」→ 底部点击「允许」即可。
步骤二:开启 TUN 开关
授权后回到 Clash Verge Rev 主界面,点击「TUN 模式」切换按钮,状态变为蓝色高亮即表示已激活。你会注意到菜单栏图标旁多了一个小盾牌标志,这就是 TUN 处于激活状态的标识。
步骤三:YAML 配置与 Windows 一致
macOS 下的 YAML 配置与 Windows 完全相同,同样建议设置 stack: mixed、auto-route: true 和 dns-hijack,具体参见上方 Windows 部分的配置示例。
6 验证 TUN 模式是否真正生效
开启之后别急着用,先做几个简单验证,确认 TUN 已接管全部流量。
方法一:终端 curl 测试
打开命令提示符(Windows)或终端(macOS),执行:
curl -v https://www.google.com
如果能正常返回响应(HTTP 200),说明终端流量已走代理。此前没有 TUN 时,这条命令大概率会超时或报连接拒绝。
方法二:查看当前 IP 归属
curl https://ip.sb
返回的 IP 地址应该是你节点所在的境外 IP,而非本机运营商 IP。若两者一致,说明 TUN 未生效,检查是否以管理员权限运行。
方法三:在 Clash 连接面板中观察
打开 Clash Verge Rev → 「连接」面板,执行任意终端命令后,看是否出现对应的连接记录。TUN 模式下,curl、git、npm 等命令发起的连接都会出现在列表中,进程名一目了然。这是排查问题最直接的方式。
方法四:Docker 拉取镜像测试
docker pull hello-world
如果能从 Docker Hub 正常拉取镜像(无需在 Docker Desktop 中单独配置代理),说明 TUN 已成功接管 Docker 的网络流量。这对于国内用户来说几乎就是 TUN 能否正常工作的黄金测试。
7 进阶:精细化分流规则
TUN 接管全部流量之后,合理的分流规则就显得更加重要——毕竟国内网站没必要走代理,否则反而会增加延迟。以下是几个常用的精细化配置建议:
为局域网和国内 IP 保留直连
rules:
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- GEOIP,CN,DIRECT
- MATCH,Proxy
GEOIP,CN,DIRECT 这条规则会让所有归属中国大陆的 IP 直接连接,不走代理,这对于访问国内网站、网游、银行 APP 等场景非常关键。
排除特定进程走直连
Mihomo 内核支持 PROCESS-NAME 规则,可以针对进程名设置例外:
rules:
- PROCESS-NAME,WeChat,DIRECT # 微信走直连
- PROCESS-NAME,QQ,DIRECT # QQ 走直连
- PROCESS-NAME,Thunder,DIRECT # 迅雷走直连
使用 Rule Provider 订阅社区规则集
手动维护规则既费时又容易遗漏,推荐通过 Rule Provider 引入 ACL4SSR 规则集,可以获得覆盖数万个域名的精准分流,并附带 Netflix、YouTube 解锁与广告过滤,开箱即用。
DNS 防泄漏配置
TUN 开启后,DNS 泄漏问题会比系统代理模式更加突出。建议同步配置 FakeIP 模式与 DoH,详细方案可参考我们的《彻底防止 DNS 泄漏》一文。
8 常见问题排查
Q:开启 TUN 后网络完全断了?
最常见的原因是没有以管理员权限运行,或者 WinTUN 驱动安装失败。请先关闭 TUN 开关,检查「设备管理器」中是否存在虚拟网卡,若没有,重新安装 Service Mode 后再试。
Q:国内网站访问变慢了?
检查分流规则是否正确设置了 GEOIP,CN,DIRECT。另外确认 GeoIP 数据库(Country.mmdb)是最新版本,Clash Verge Rev 支持在设置中一键更新。
Q:游戏、语音软件出现 UDP 问题?
尝试将 stack 从 mixed 改为 system,或针对该软件进程添加 PROCESS-NAME,xxx,DIRECT 规则直连其 UDP 流量。
Q:macOS 下 TUN 开关点击没反应?
前往「系统设置 → 隐私与安全性 → 网络」,确认 Clash Verge Rev 已出现在列表中并且已打开权限。部分 macOS 版本需要重启应用后权限才会生效。
Q:Docker Desktop 依然无法拉取镜像?
Docker Desktop 有自己独立的虚拟网络层,部分版本可能需要在 Docker Desktop 设置中手动配置代理。建议在 Docker 设置里将 HTTP Proxy 和 HTTPS Proxy 都指向 http://127.0.0.1:7890(或你的 Clash 混合端口),与 TUN 模式并行使用,兼容性最佳。
9 总结
TUN 模式是从「够用」到「真正好用」的分水岭。系统代理解决了 80% 的场景,而 TUN 解决了剩下那 20% 里最让人头疼的问题——终端、Git、Docker、游戏客户端这些"不走寻常路"的流量,终于可以统一纳入代理规则的管辖。
配置看起来步骤不少,但实际操作下来不超过 5 分钟:安装服务模式、打开 TUN 开关、把上面的 YAML 片段粘贴进覆写配置,就这么简单。一次配置,之后再也不用为"某某软件不走代理"抓耳挠腮。
相比其他客户端需要手动编写驱动配置或借助第三方工具,Clash Verge Rev 把 TUN 配置整合进了 GUI 界面,几个开关就能搞定,这也是它在国内开发者群体中口碑极佳的原因之一。如果你还没试过,现在就是最好的开始时机。