Clash Verge 首页有个叫 TUN 模式 的开关,很多教程会让你「直接打开」。但它不是越开越好——理解了原理你才知道什么时候该开、什么时候开了反而添乱。
先说系统代理的局限
打开「系统代理」后,Clash Verge 做的事其实很简单:往 Windows 注册表(或 macOS 网络偏好设置)里写一条「HTTP 代理指向 127.0.0.1:7897」。
问题在于——这只是一个建议,程序可以不理。
典型的「不听话」清单:
- 游戏:Steam 下载、战网、原神登录、大部分 UDP 游戏
- 命令行:
curl、git、pip、docker pull - 部分国产软件:自带网络库,不读系统设置
- UDP 流量:系统代理只处理 HTTP/HTTPS/SOCKS,UDP 完全不管
TUN 模式做的是另一件事
TUN 不在软件层面打招呼,而是创建一块虚拟网卡,然后修改系统路由表,把所有流量都往这块网卡上引。
对程序来说,它以为自己在正常联网,实际上数据包被送进了虚拟网卡,交给 Mihomo 内核处理,再按规则决定直连还是转发。
什么时候该开
一句话原则:默认只开系统代理,遇到具体某个程序不走代理时,再打开 TUN。
开启前要知道的四件事
1. 需要一次管理员授权
TUN 需要安装虚拟网卡驱动(Windows 上是 wintun)和一个系统服务。首次开启时会弹 UAC,点「是」。装过一次之后不再重复要求。
Clash Verge 设置里有个 服务模式,就是干这个的。如果 TUN 开关点了没反应,先去看服务模式是否安装成功。
2. DNS 会被接管
TUN 模式下内核会接管 DNS 查询,通常配合 fake-ip 模式使用。这带来两个副作用:
- 某些依赖本地 DNS 的内网服务可能解析不到,需要在
fake-ip-filter里加白名单 - 用
ping测试域名时看到的是198.18.x.x这类假 IP,这是正常的,不代表出错
3. 游戏不一定更快
TUN 让游戏流量能走代理,但能走 ≠ 更快。游戏对延迟和丢包极其敏感,多绕一跳往往更差。真要用它加速,前提是你的节点本身线路质量足够好(比如有 IEPL/IPLC 专线)。
另外,部分游戏的反作弊系统对虚拟网卡有反应,开之前建议先查一下你玩的那款游戏的情况。
4. 关掉之后要确认路由恢复
正常关闭 TUN 开关,内核会自己撤销路由改动。但如果是强杀进程,可能留下残留路由,表现为「关了软件全网都上不去」。
补救:以管理员身份运行 ipconfig /flushdns,再重启一次 Clash Verge 让它接管后正常关闭;或者直接重启电脑。
TUN 和系统代理能同时开吗
能,而且很多人就是这么用的。两者不冲突:
- 认系统代理的程序 → 走系统代理路径
- 不认的程序 → 被 TUN 在网络层兜住
不过如果你已经开了 TUN,系统代理其实是冗余的。有些用户会关掉系统代理只留 TUN,界面更干净,行为也更统一。唯一要注意的是:关掉系统代理后,某些明确配置了「使用系统代理」的软件可能行为变化。
常见问题
Q:开了 TUN 之后局域网内的设备访问不了了? 检查 rules 里有没有内网直连规则,正常配置应该包含:
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolveQ:TUN 开关灰的,点不动? 说明服务模式没装好。设置 → 服务模式 → 点「安装」,授权后再试。
Q:开了 TUN 之后网速变慢? TUN 模式下所有流量都经过内核处理,CPU 开销比系统代理大一些。老电脑上会有感知。另外确认 stack 设置——mixed 或 gvisor 兼容性好,system 性能更高但对系统要求高一些。
小结
TUN 模式解决的是「程序不听话」的问题,代价是需要更高权限、更多资源、更复杂的 DNS 行为。
先用系统代理,缺什么再补 TUN——这是最省心的顺序。
延伸阅读:系统代理与 TUN 模式的实测对比、端口设置详解。