跳到主要内容

首页 / 博客 / 功能详解

TUN 模式是什么?什么情况下才需要打开它

TUN 模式是什么?什么情况下才需要打开它

Clash Verge 首页有个叫 TUN 模式 的开关,很多教程会让你「直接打开」。但它不是越开越好——理解了原理你才知道什么时候该开、什么时候开了反而添乱。

先说系统代理的局限

打开「系统代理」后,Clash Verge 做的事其实很简单:往 Windows 注册表(或 macOS 网络偏好设置)里写一条「HTTP 代理指向 127.0.0.1:7897」。

问题在于——这只是一个建议,程序可以不理

哪些程序会读系统代理设置浏览器(Chrome、Edge、Firefox 默认跟随)大部分基于 Electron 的桌面应用Windows 应用商店应用(部分)命令行工具 curl 游戏客户端 —— 大多直接走 socket,完全无视UDP 流量 —— 系统代理根本不处理
不读系统代理的程序,你会看到「代理开着但它就是连不上」

典型的「不听话」清单:

  • 游戏:Steam 下载、战网、原神登录、大部分 UDP 游戏
  • 命令行curlgitpipdocker pull
  • 部分国产软件:自带网络库,不读系统设置
  • UDP 流量:系统代理只处理 HTTP/HTTPS/SOCKS,UDP 完全不管

TUN 模式做的是另一件事

TUN 不在软件层面打招呼,而是创建一块虚拟网卡,然后修改系统路由表,把所有流量都往这块网卡上引。

两种接管方式的层次差异系统代理在应用层设置应用程序自愿遵守只覆盖 HTTPSOCKS无需特殊权限TUN 模式在网络层接管程序无从绕过TCP 和 UDP 全覆盖需要安装虚拟网卡与系统服务
TUN 是从底下截胡,程序想绕都绕不开

对程序来说,它以为自己在正常联网,实际上数据包被送进了虚拟网卡,交给 Mihomo 内核处理,再按规则决定直连还是转发。

TUN 模式下的数据路径任意程序游戏、命令行、任何软件虚拟网卡 TUN系统路由指向这里Mihomo 内核按 rules 判断去向直连或节点最终出口内核自身的流量会被排除,避免死循环
因为在网络层,所以不存在「这个程序不支持代理」的说法

什么时候该开

该开 / 不该开该开:游戏加速Steam 下载、战网、需要 UDP 的对战游戏该开:命令行工具git clone、npm install、docker pull 卡住时该开:某个软件死活不走代理试过系统代理无效的情况不该开:只是刷网页系统代理完全够用,还省事不该开:公司电脑装了终端管控虚拟网卡容易和安全软件冲突不该开:网络本身不稳TUN 下断线感受会更明显

一句话原则:默认只开系统代理,遇到具体某个程序不走代理时,再打开 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-resolve

Q:TUN 开关灰的,点不动? 说明服务模式没装好。设置 → 服务模式 → 点「安装」,授权后再试。

Q:开了 TUN 之后网速变慢? TUN 模式下所有流量都经过内核处理,CPU 开销比系统代理大一些。老电脑上会有感知。另外确认 stack 设置——mixedgvisor 兼容性好,system 性能更高但对系统要求高一些。

小结

TUN 模式解决的是「程序不听话」的问题,代价是需要更高权限、更多资源、更复杂的 DNS 行为。

先用系统代理,缺什么再补 TUN——这是最省心的顺序。

延伸阅读:系统代理与 TUN 模式的实测对比端口设置详解