TUN 模式没网 / 开启 TUN 后断网怎么办

作者 机场通编辑部发布于 更新于 约 7 分钟
目录
  1. 先理解 TUN 模式在做什么
  2. 排查阶梯一:权限与服务模式
  3. 排查阶梯二:DNS 配置
  4. 排查阶梯三:与其他软件冲突
  5. 排查阶梯四:系统代理与 TUN 同时开
  6. 排查阶梯五:协议栈与局域网
  7. 排查阶梯六:路由表与 DNS 残留
  8. 客户端特定提示
  9. 什么时候该换机场
  10. 常见问题
结论速览

开了 TUN 模式没网,最常见的四个原因依次是:客户端没有足够权限创建虚拟网卡(Windows 要安装服务模式或以管理员运行,macOS 要授权);DNS 配置不对,TUN 接管了所有流量却没正确处理域名解析,国内网站也随之失败;与别的 VPN、游戏加速器、虚拟机软件的虚拟网卡冲突;系统代理与 TUN 同时开着造成环路。排查顺序:先确认 TUN 真正启用(看网络适配器里有没有新的虚拟网卡),再开 DNS 劫持并使用订阅自带的 DNS 配置,然后退出所有其他代理与 VPN 软件,最后在 TUN 的协议栈选项里切换一下。还不行就关掉 TUN,先用系统代理,日常使用并不一定需要 TUN。

先理解 TUN 模式在做什么

系统代理模式下,客户端只是在系统里登记了一个代理地址,程序愿不愿意用是程序自己的事;TUN 模式则是客户端创建一张虚拟网卡,并修改系统路由表,让所有流量先经过这张网卡再由客户端决定去向。好处是能接管一切程序,包括不读系统代理的游戏和命令行工具;代价是客户端要自己处理 DNS、路由与所有协议类型,任何一环没配好,整台设备的网络都会受影响。这也是为什么 TUN 出问题时往往是「全部没网」而不是「某个网站打不开」。更系统的介绍见TUN 模式教程。

症状最可能的原因优先操作
TUN 开关打开但毫无变化,不走代理权限不足,虚拟网卡没创建安装服务模式 / 管理员运行 / 授权扩展
国内外网站全部打不开DNS 没被正确处理开 DNS 劫持,用订阅 DNS 配置
国内网站打不开,国外正常国内域名被解析到代理或 fake-ip 过滤有误检查 DNS 分流与 fake-ip 过滤名单
时通时断,间歇性没网与其他虚拟网卡 / VPN 冲突,或系统代理同时开退出其他软件,关系统代理
某些程序能上、某些不能协议栈兼容问题切换 system / gVisor / mixed
关掉 TUN 也没网了路由表或 DNS 残留重启,必要时重置网络
局域网设备(打印机、NAS)访问不了局域网流量被接管加局域网直连规则,开绕过局域网

排查阶梯一:权限与服务模式

怎么确认

打开 TUN 后,去系统的网络适配器列表里看有没有新出现一张虚拟网卡(名字通常包含客户端名或 TUN 字样)。没有就说明 TUN 根本没启动成功,开关只是界面上亮了。Windows 上客户端会要求安装服务模式或以管理员身份运行,macOS 会弹出系统扩展授权或密码输入,这些步骤被跳过或被拒绝,TUN 都起不来。

怎么解决

Windows:在客户端设置里安装服务模式,或者右键以管理员身份运行一次;安装服务后需要重启客户端。macOS:在系统设置的隐私与安全里允许客户端的系统扩展或网络扩展,然后重新打开 TUN;具体权限位置见Mac 使用教程。安全软件有时会拦截驱动安装,暂时退出再装。

排查阶梯二:DNS 配置

怎么确认

这是 TUN 没网的头号原因。TUN 接管了所有流量,域名解析也在其中,如果客户端没有正确接管 DNS 请求,系统可能还在往运营商 DNS 发查询,而这些查询又被 TUN 截获后无法正确处理,结果是所有域名都解析不出来,国内国外全打不开。表现为:直接访问 IP 地址能通(比如在浏览器输入某个公共 IP),输入域名就不行。

怎么解决

  1. 在客户端 TUN 设置里打开 DNS 劫持(把所有发往 53 端口的请求接管),这是 TUN 模式几乎必开的选项;
  2. 启用 DNS 覆写,优先用订阅自带的 DNS 配置;自己配的话,国内域名用国内 DNS 直连解析,国外域名走代理解析;
  3. 增强模式选 fake-ip 通常最稳,但要注意 fake-ip 过滤名单:局域网域名、某些需要真实 IP 的服务(比如一些游戏和网银)要加到过滤名单里;
  4. 系统网卡的 DNS 设置保持自动获取,不要手动填一个与客户端冲突的地址;
  5. 清一下系统 DNS 缓存再测。

排查阶梯三:与其他软件冲突

怎么确认

电脑上装过别的 VPN、游戏加速器、虚拟机、远程办公软件的,系统里可能有多张虚拟网卡和多条路由规则。两个软件同时试图接管全部流量,路由表就会打架,表现为间歇性断网、时好时坏,或者某些程序能上某些不能。在网络适配器列表里数一下虚拟网卡的数量,超过一张就要怀疑。

怎么解决

退出所有其他代理与 VPN 类软件,包括浏览器里的代理扩展;禁用不用的虚拟网卡;如果某个软件已经卸载但网卡还在,手动删除。虚拟机软件的网卡一般不会冲突,但部分「网络加速」类软件的驱动会,优先排查它们。

排查阶梯四:系统代理与 TUN 同时开

怎么确认

系统代理与 TUN 一起开,浏览器流量会先经过系统代理进客户端,客户端发出的流量又被 TUN 虚拟网卡接管,再进一次客户端。好的客户端能识别自己发出的流量并放行,但部分配置下会形成环路,表现为流量跑不动、延迟极高或直接断。

怎么解决

开 TUN 时关掉系统代理,两者只留一个。Clash Verge Rev 这类客户端通常允许同时开,但出现异常时先关掉系统代理对比。

排查阶梯五:协议栈与局域网

怎么确认

TUN 的实现有多种协议栈(system、gVisor、mixed),不同系统环境下兼容性不同。某些程序在一种栈下能用、另一种下不行很常见,尤其是游戏和 UDP 密集的应用。另一个常见问题是局域网设备访问不了:打印机、NAS、投屏,因为局域网流量也被 TUN 接管送去了代理。

怎么解决

在 TUN 设置里切换协议栈逐个试,一般先试 system,再 mixed,最后 gVisor。局域网问题在规则里加上私有地址段直连,或者打开客户端的「绕过局域网」类选项。规则写法见规则分流教程。

排查阶梯六:路由表与 DNS 残留

怎么确认

客户端崩溃、强制结束进程或者系统意外关机后,TUN 设置的路由表与 DNS 可能没有被清理。表现是 TUN 关了、客户端退了,电脑还是没网,或者只有部分网站能开。

怎么解决

先重新打开客户端,正常开一次再正常关一次 TUN,让它自己清理;不行就重启电脑;还不行就重置网络设置并把网卡 DNS 改回自动获取。Windows 可以在设置里做网络重置,macOS 可以删除网络服务重新添加。这种情况属于客户端异常退出的后遗症,不是机场问题。

客户端特定提示

Clash Verge Rev(Windows / macOS)

Clash Verge Rev 的 TUN 相关设置集中在设置页面:服务模式安装、TUN 开关、协议栈选择、DNS 劫持、自动路由、严格路由等。排查顺序建议是:先确认服务模式已安装,再开 DNS 劫持与自动路由,协议栈先选 system,出问题再换。日志页面能看到 TUN 启动失败的具体错误。另外,Clash Verge Rev 的 DNS 覆写要在设置里显式打开,否则订阅里的 DNS 配置可能不生效。完整流程在Clash Verge 教程与TUN 模式教程。

Shadowrocket(iOS)

iOS 上 Shadowrocket 本身就通过系统 VPN 接口接管全部流量,没有单独的 TUN 开关。「开了 VPN 没网」的排查:设置里的 DNS 是否指向了一个不可达的地址、是否同时有别的 VPN 应用在抢配置、是否误开了「全局」且节点不可用。重新打开 VPN 开关可以让系统重建配置。详见Shadowrocket 教程。

Clash Meta 内核通用(Android / sing-box / 路由器)

Android 的 Clash Meta 使用系统 VPN 服务,同样没有单独的 TUN 概念;没网时先查 VPN 权限、省电限制、与其他 VPN 应用冲突,再查 DNS 设置。桌面端 sing-box 的 TUN 配置在配置文件里,常见坑是 auto-route 与 strict-route 的组合,以及 DNS 的分流规则。路由器上跑 Mihomo 的 TUN 模式需要正确配置防火墙与路由,一般建议用成熟的固件插件而不是手动配置。

什么时候该换机场

情况建议
TUN 没网是本机配置或冲突,解决后正常与机场无关,不用换
订阅自带的 DNS 配置有误,机场不修自己覆写 DNS 即可,不必换
机场节点不支持 UDP,TUN 下游戏与语音不通需要 UDP 的用户换支持 UDP 转发的机场
机场只提供自研客户端且不支持 TUN需要 TUN 的用户换提供订阅链接的机场

TUN 的问题绝大多数与机场无关,是客户端与系统层面的事。真正和机场有关的只有两点:订阅里 DNS 配置写得好不好,以及节点是否支持 UDP 转发。前者可以自己覆写,后者决定了 TUN 模式下游戏、语音这类 UDP 应用能不能用,选机场时看官方说明里是否提到 UDP 支持。

避坑:TUN 模式的几个常见错误

1)不要在排查别的问题时随手开 TUN 又忘了关,TUN 常驻会把所有程序的流量都接管,流量消耗与后台抢带宽的问题都会放大。2)不要同时运行两个带 TUN 功能的软件(比如机场客户端加游戏加速器),路由表必然打架。3)不要为了「让 TUN 工作」关闭系统防火墙或安全软件后一直不开,排查完就恢复并加白名单。4)不要手动修改路由表或 DNS 来「修复」TUN,重启客户端或系统能解决大多数残留问题,手改容易留下更难查的坑。5)日常浏览用系统代理就够了,TUN 是为不读系统代理的程序准备的工具,不是「更高级」的模式。

需要 TUN / 全程接管场景我们推荐

光速云、SOGO 云、二猫云:三家品牌资料都标注 VLESS 协议并支持第三方客户端订阅导入,意味着你可以用 Clash Verge Rev、sing-box 这类支持 TUN 的客户端自己掌握 DNS 与分流;光速云 2020 年起运营、IEPL 专线、入门为年付折算 ¥7.5/月,SOGO 云 ¥25/月 150GB 月付,两家另有自研客户端可做对照;二猫云 ¥20/月 130GB,没有自研客户端,本就是为第三方导入设计的。UDP 转发支持以官网标注为准,建议先短周期验证 TUN 下的表现。

查看 光速云 套餐 查看 SOGO 云 套餐 查看 二猫云 套餐

常见问题

TUN 模式和系统代理有什么区别,我需要开 TUN 吗?

系统代理只接管「愿意读系统代理设置」的程序,浏览器、多数办公软件都读;TUN 模式创建一个虚拟网卡接管全部流量,包括游戏、命令行工具和不读系统代理的程序。日常浏览不需要 TUN,只在有程序不走代理时才开。

开 TUN 后国内网站也打不开了,为什么?

多数是 DNS 问题。TUN 接管了所有流量后,如果 DNS 配置不当(比如没开 DNS 劫持或 fake-ip 过滤名单有误),国内域名解析失败或被解析到了错误的地址。先开 DNS 劫持、用订阅自带的 DNS 配置,再确认国内域名的解析走的是国内 DNS。

TUN 模式需要管理员权限吗?

需要。创建虚拟网卡与修改路由表是系统级操作,Windows 需要管理员权限或安装客户端的服务模式,macOS 需要授权系统扩展或输入密码。权限不足时 TUN 开关会看起来打开了但实际没有生效,或者反复弹错。

TUN 和 TAP、gVisor、system 协议栈有什么区别?

这是 TUN 的实现方式。system 栈直接用系统网络栈,兼容性与性能一般最好;gVisor 用用户态协议栈,兼容某些特殊环境但性能稍差;mixed 混合两者。没网时切换一下协议栈对比是常用排查手段。

关掉 TUN 之后也没网了,怎么恢复?

TUN 异常退出可能留下残留的路由表或 DNS 设置。先重启客户端用正常方式关闭 TUN;不行就重启电脑;还不行就在系统里重置网络设置(Windows 的网络重置、macOS 删除并重新添加网络服务),并把 DNS 改回自动获取。

手机上有 TUN 模式吗?

手机客户端(Shadowrocket、Clash Meta for Android)本身就是用系统 VPN 接口接管全部流量,相当于一直在 TUN 模式。所以手机上的类似问题叫「开 VPN 后没网」,排查思路一致:DNS、与其他 VPN 冲突、权限。