TUN 模式不生效或开启后无网络怎么办
TUN 模式开了没效果,或者一开就断网,原因集中在系统服务未安装、虚拟网卡与其他 VPN 冲突、DNS 劫持没开、网络栈不兼容与系统代理同时启用五类。本文按 Clash Verge Rev、Mihomo Party、sing-box 的设置位置给出排查步骤与配置示例。

直接答案
TUN 不生效分两种:开关打开但流量没走代理,多是系统服务没装好或系统代理同时开启导致流量仍走旧路径;开启后完全断网,多是 DNS 劫持没有启用、虚拟网卡与其他 VPN 驱动冲突,或 TUN 栈与系统不兼容。排查顺序:先看客户端日志确认 TUN 真的启动,再查 DNS 劫持与 fake-ip,然后换栈(system / gvisor / mixed),最后清理其他虚拟网卡。
TUN 模式把客户端变成一张虚拟网卡,系统所有流量都从这张网卡出去,所以终端、游戏、不读系统代理的程序也能走代理。它的问题也集中在「网卡」这个层面:要么网卡没真正建起来,流量仍走原来的路;要么网卡建起来了,但 DNS 或路由没配好,结果全部流量进了黑洞。本文先用一张表把五类原因分开,再按客户端给出排查步骤。TUN 一开内核就退出的情况属于启动失败,见 Clash / Mihomo 内核启动失败怎么办。
先分清是「不生效」还是「断网」
| 原因 | 表现 | 判断方法 | 处理 |
|---|---|---|---|
| 系统服务未安装或未授权 | 开关打开,流量仍不走代理,日志没有 TUN 相关行 | 客户端日志无 TUN interface 字样 | 安装服务 / 授权网络扩展 |
| 系统代理与 TUN 同时开启 | 浏览器正常,终端不走代理或反之 | 关闭系统代理后终端恢复 | 只保留一种模式 |
| DNS 劫持未启用 | 开 TUN 后所有网站打不开,ping IP 正常 | nslookup 超时,ping 公网 IP 通 | 启用 dns-hijack 并开 fake-ip |
| TUN 栈不兼容 | 时通时断、速度极慢或立即断网 | 换栈后恢复 | system / gvisor / mixed 轮换 |
| 虚拟网卡冲突 | 其他 VPN 装过后 TUN 断网 | 系统里有多张 TUN / TAP / utun 网卡 | 卸载残留驱动,重启 |
第一步:确认 TUN 真的启动了
打开客户端日志,开启 TUN 的瞬间应当出现类似 TUN interface Mihomo started 或 [TUN] ... listening 的记录。没有这行,说明开关只是改了界面状态,内核并没有建网卡,原因基本是权限:
- Clash Verge Rev:设置 → 服务模式 → 安装服务,安装后重启客户端。
- Mihomo Party:设置 → 系统 → 安装服务,或以管理员身份运行一次。
- macOS:首次开启会要求授权,在「系统设置 → 隐私与安全性」中允许客户端的网络扩展。
确认网卡存在的命令:
# Windows PowerShell:看是否出现名为 Mihomo / sing-box 的网卡
Get-NetAdapter | Where-Object { $_.Name -match "Mihomo|sing|Clash" }
Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object InterfaceAlias, RouteMetric
# macOS:TUN 网卡以 utun 开头,看默认路由指向哪张网卡
ifconfig | grep -A2 utun
netstat -rn | grep default
默认路由指向 TUN 网卡(或路由表里新增了 0.0.0.0/1 与 128.0.0.0/1 两条)说明接管成功。
第二步:关闭系统代理,只留 TUN
TUN 与系统代理同时开启时,浏览器会通过 127.0.0.1 的代理端口发请求,这些请求再经过 TUN 网卡形成回环,表现为部分程序能用、部分程序不能用,或者整体变慢。在客户端里关闭「系统代理」开关,只保留 TUN。终端里之前导出的 HTTPS_PROXY 也要取消,否则终端请求会先到代理端口再进 TUN。
💡 提示
一个简单的规则:浏览器用户开系统代理,终端用户开 TUN。两者需要同时存在的场景很少,真的需要时把系统代理的端口排除出 TUN 的路由即可,Mihomo 会自动处理本机回环流量,通常不用额外配置。
第三步:检查 DNS 劫持与 fake-ip
TUN 开启后系统的 DNS 请求也会进入虚拟网卡,如果客户端没有劫持这些请求,它们会被发向原本的 DNS 服务器,而那台服务器此时可能不可达,结果就是所有域名解析失败,看起来像完全断网。判断方法是 ping 一个公网 IP 能通、而 nslookup 任何域名超时。
Mihomo 的最小可用 TUN 配置:
tun:
enable: true
stack: mixed # Windows 推荐 mixed 或 gvisor,macOS 推荐 system
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
- tcp://any:53
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://223.5.5.5/dns-query
- https://1.1.1.1/dns-query
在 Clash Verge Rev 的「设置 → TUN 模式设置」里对应「DNS 劫持」与「自动路由」两个选项,确认都已勾选。fake-ip 与 redir-host 的差别、nameserver 怎么分组,详见 Clash / Mihomo DNS 设置详解。
第四步:换 TUN 栈
三种栈的差异在于数据包处理方式:system 走系统协议栈,性能好但依赖系统驱动;gvisor 用户态实现,兼容性最好但速度稍慢;mixed 兼顾两者。Windows 上 system 栈遇到驱动或安全软件问题时会出现时通时断,改成 mixed 或 gvisor 通常立即恢复;macOS 上 system 栈最稳定。每换一次栈都重新开关 TUN,并用浏览器和终端各测一次。
sing-box 用户对应的 inbound 配置:
{
"type": "tun",
"tag": "tun-in",
"address": ["172.19.0.1/30"],
"auto_route": true,
"strict_route": false,
"stack": "mixed"
}
strict_route 在 Windows 上可能阻断局域网与部分本地服务,断网时先把它设为 false。
第五步:清理冲突的虚拟网卡
装过其他 VPN 客户端后,系统里可能残留 TAP-Windows、WireGuard 或厂商自带的虚拟网卡驱动,它们与 TUN 网卡争抢默认路由。在 Windows 设备管理器的「网络适配器」中禁用或卸载不再使用的虚拟网卡;macOS 在「系统设置 → 网络」里删除多余的 VPN 配置。重启后再开 TUN。
⚠️ 注意
两个代理客户端不要同时开 TUN。sing-box 与 Clash Verge Rev 各建一张网卡时,路由表会互相覆盖,表现为断网且日志无报错。切换客户端前先把前一个的 TUN 关掉并完全退出。
预防建议
- 安装客户端后立刻安装系统服务,不要等到用 TUN 时才装。
- TUN 与系统代理二选一,终端场景固定用 TUN。
- 升级系统大版本后重新安装一次服务,驱动签名可能失效。
- 保留一份能正常工作的 TUN 配置截图,出问题时逐项对照。
- 规则模式下的流量走向问题与 TUN 无关,见分流规则不生效怎么办。
各平台客户端的基础设置见 Windows 客户端使用指南,其他报错在客户端错误分类中整理。
总结
- TUN「没效果」和「断网」是两类问题,前者看服务与代理冲突,后者看 DNS 与网卡
- 开启 TUN 时必须同时启用 DNS 劫持并配好 fake-ip,否则域名解析不出去
- 换 TUN 栈是成本最低的试错手段,Windows 优先 mixed 或 gvisor,macOS 优先 system
- 系统代理与 TUN 不要同时开,终端与浏览器只需要其中一个
常见问题
QWindows 电脑怎么用机场?
Windows 推荐 Clash Verge Rev 或 Mihomo Party,导入机场的 Clash 订阅即可使用。日常浏览用系统代理模式就够了,需要让终端、游戏和不读系统代理的程序也走代理时,再安装系统服务并开启 TUN 模式。
QMac 电脑怎么用机场?
macOS 同样推荐 Clash Verge Rev、Mihomo Party 或 Stash。首次开启 TUN 时系统会要求授权网络扩展或输入密码安装辅助程序,拒绝授权就会出现 TUN 开了却没有效果的情况,在系统设置的隐私与安全性里允许后重新开启即可。
Q机场显示超时怎么办?
先确认是全部节点超时还是个别节点超时。TUN 模式下全部超时,常见于 DNS 劫持没开或 TUN 栈不兼容,先关闭 TUN 用系统代理测试;系统代理正常而 TUN 超时,问题就在本文讨论的范围内,与机场无关。
Q机场是否支持 sing-box?
多数机场提供 sing-box 订阅或可通过订阅转换生成。sing-box 的 TUN 配置写在 inbounds 里,需要手动开启 auto_route 并设置 DNS 规则,门槛比 Clash 系客户端高一些,但对新协议的支持更完整。
Q机场适合程序员吗?
适合,而且 TUN 模式正是为程序员这类用户准备的:终端、Docker、Git、各类 CLI 工具默认不读系统代理,TUN 可以让它们全部走代理而不用逐个配置环境变量。选择机场时重点关注长连接稳定性与 AI 服务适配。
参考资料与信息来源
- Mihomo 文档:TUN 配置 · stack、dns-hijack、auto-route 字段说明
- sing-box 文档:TUN inbound · auto_route、strict_route 与平台差异
