开启 TUN 后整机断网:虚拟网卡与服务权限排查
一句话结论
开 TUN 之后断网,常见来源有三处:系统服务没装好导致虚拟网卡创建失败、客户端未以管理员权限运行、或虚拟网卡与虚拟机软件、企业安全软件争抢路由。应急做法是先关闭 TUN 并退出客户端;若仍没有网络,手动重置系统代理设置,并检查是否留下了残余虚拟网卡。
这类故障的辨识度很高:开关按下去的那一刻,连国内网站都打不开了。它和「节点连不上」是两回事——后者至少国内还能正常上网,前者是整台机器的出口没了。原因也不在代理链路上,而在操作系统的网络栈:虚拟网卡、路由表、DNS 接管这三样东西被同时改动,任何一环没落地,机器就会对着一个不存在的出口发包。
好消息是,这种断网几乎都是可逆的。TUN 不会把系统改坏,它只是把默认路由指向了自己创建的那块虚拟网卡。关掉开关,路由归位,网络通常立刻恢复。真正麻烦的是客户端在开着 TUN 的状态下崩溃退出——开关没人关,路由和系统代理设置留在半途,这时才需要手工收拾。
所以处理顺序应该是:先恢复上网能力,再回头定位成因。下面的内容按这个顺序排列,先给应急动作,再给三类成因的识别方法。急着恢复的话,直接跳到手工恢复那一节。
断网发生在按下开关的瞬间,还是运行一段时间后
这是分流成因最快的一个判据,因为两种时点对应的问题类型几乎不重叠。
| 断网时点 | 典型伴随现象 | 指向的成因 | 先做什么 |
|---|---|---|---|
| 按下开关立刻断 | 开关自己弹回、提示权限不足 | 服务未安装或权限不足 | 检查服务状态,以管理员身份重启客户端 |
| 开启后几秒内断 | 开关保持开启,但全网不通 | 虚拟网卡创建了但路由/DNS 没接好 | 关掉 TUN 观察是否立刻恢复 |
| 运行几分钟后断 | 之前一切正常,突然全断 | 其他网络软件抢回了默认路由 | 排查虚拟机、VPN、企业安全客户端 |
| 切换网络后断 | 换 Wi-Fi、插网线、连热点时出现 | 网络接口变更后路由没跟着更新 | 关掉 TUN,连好网络再重开 |
| 客户端退出后断 | 客户端已不在运行,网络仍不通 | 系统代理残留或虚拟网卡残留 | 直接按手工恢复那一节处理 |
第三行和第四行最容易被误判成机场问题。判断的窍门是问自己:断网前那几分钟,我有没有开虚拟机、连公司 VPN、或者换过网络?这三件事里只要发生了一件,先怀疑冲突,别去动订阅。
系统服务没装成功会有哪些迹象
TUN 需要创建虚拟网卡、改写路由表,这些动作超出普通用户权限,由客户端附带的系统服务完成。服务没装好时,症状相当固定:
- TUN 开关点下去自己弹回来,或者显示开启但状态栏没有对应提示。
- 设置页里的服务状态显示为未安装、未运行、或安装失败。
- 日志里出现创建网卡失败、设备打开失败一类的记录。
- 网络连接列表里找不到属于该客户端的虚拟网卡条目。
在 Windows 上可以直接查服务是否在跑,把下面这条命令里的服务名换成你客户端实际使用的那个:
# 结构示例:把 <服务名> 换成客户端设置页里显示的服务名称
Get-Service -Name "<服务名>" | Select-Object Name, Status, StartType
拿不到结果说明服务根本没注册。这种情况不要反复点开关,回到客户端设置页里重新执行一次服务安装,过程中如果弹出系统权限确认,必须允许。安装流程与首次配置的先后关系,在 Clash Verge Rev 首次启动里有完整说明。
安全软件拦截是服务装不上的高频原因,而且往往不给明显提示。如果安装动作看起来执行了却依然显示未安装,去安全软件的拦截记录里翻一下最近几分钟的条目。
管理员权限和 TUN 到底是什么关系
需要澄清一个常见误解:装了服务之后,客户端本身不一定要一直以管理员身份运行——服务进程已经持有所需权限。但在两种情况下,权限问题仍会冒出来。
一是服务安装的那一次,必须有提权确认。跳过或拒绝,服务就是没装上。二是部分客户端在没有服务的情况下会尝试直接创建网卡,这时就必须整个进程提权,否则失败。
判断方法很直接:以管理员身份重新启动客户端,再开一次 TUN。能开起来,说明问题在权限链路上;仍然开不起来,说明是服务或冲突问题,继续往下看。
长期以管理员身份运行代理客户端不是好习惯。它会让客户端下载到的配置以更高权限被解析,风险面变大。正确的解法是把服务装好,而不是每次都提权。
虚拟机和企业安全软件为什么会抢路由
因为它们在做同一件事:在系统的网络栈上插一层自己的东西。虚拟机软件要为桥接和 NAT 创建虚拟网卡,企业安全客户端要挂钩流量做审计,VPN 客户端要抢默认路由。系统同一时刻只能有一个默认出口,谁最后一个改,谁生效。
这类冲突有个鲜明特征:症状不稳定。重启之后表现会变,有时能撑十几分钟才断,有时一开就断。排查靠做减法,不靠调设置:
- 关掉 TUN,确认网络恢复。这一步先确认故障确实和它绑定。
- 逐个退出其他网络类软件——虚拟机(连同它的虚拟网卡)、VPN 客户端、游戏加速器、企业安全代理。每退一个就重开一次 TUN 测试。
- 找到冲突方之后,决定谁常驻、谁按需开,不要指望两者稳定共存。
在 Windows 上可以用下面这条命令看当前默认路由挂在哪块网卡上,冲突发生时这里往往能直接看出被谁抢走了:
# 结构示例:查看默认路由(0.0.0.0/0)当前指向哪个接口
Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Format-Table ifIndex, NextHop, RouteMetric
公司发放或受管控的设备上要格外克制。绕开企业网络策略可能违反内部规定,这已经不是技术问题。动手前先确认自己被允许这么做。
客户端崩溃退出后,怎么手工恢复上网
这是最让人慌的一种情况:客户端进程都没了,网络还是不通。按下面的顺序做,通常两三步内就能恢复。
- 确认进程真的清干净了。任务管理器里搜客户端名和内核进程名,残留进程仍可能占着网卡。全部结束掉。
- 把系统代理关掉。客户端异常退出时经常来不及还原系统代理设置,系统还在往一个已经不存在的本机端口发请求。去系统的代理设置页,把手动代理开关关掉。
- 重新测试一次上网。多数情况到这里就恢复了。仍然不通再往下走。
- 检查虚拟网卡是否还在。网络连接列表里找属于该客户端的那块网卡,如果还在且处于启用状态,先禁用它。
- 让物理网卡重新拿回出口。禁用再启用一次你正在用的以太网或 Wi-Fi 适配器,让系统重新获取地址和路由。
- 最后才考虑重启系统。重启会清掉绝大多数残留状态,但它会掩盖成因,所以放在最后。
# 结构示例:列出当前所有网络适配器及其状态,用于确认残留网卡
Get-NetAdapter | Format-Table Name, InterfaceDescription, Status
不要一上来就执行网络栈重置类命令。它们会连同你的静态 IP、DNS 和其他软件的网络配置一起清掉,恢复成本远高于本节前五步。
残留的虚拟网卡要不要删,怎么删才安全
只在两种情况下才需要删:网卡显示异常(带感叹号、状态为未知),或者同名网卡出现了多块。正常存在的那一块不用管,它是 TUN 工作的前提。
删之前有三条纪律:
- 先完全退出客户端,否则删完会被立刻重建。
- 只删你能确认属于该客户端的那一块。虚拟机软件、企业安全客户端也会留虚拟网卡,误删会牵连别的功能。
- 删完重启系统,再让客户端重新安装服务,由它自己创建新网卡。
如果同名网卡堆了好几块,通常说明服务被反复安装卸载过。这种情况下更省事的做法是:先在客户端里卸载服务,重启,清掉残留网卡,再重装一次服务。
修好之后还要不要继续用 TUN
先回答一个更前置的问题:你当初为什么打开它。
如果只是觉得「开了更保险」,那答案是不必再开。系统代理已经覆盖浏览器和绝大多数桌面软件,TUN 带来的额外接管能力对你没有价值,却把冲突风险全都留下了。如果确实有不认系统代理的程序必须走节点——游戏本体、命令行工具、虚拟机里的系统——那就在解决掉冲突源之后继续用,并且养成两个习惯:开启前确认服务状态正常,以及知道托盘菜单里关闭 TUN 的位置在哪。
至于该不该开的完整判断标准,以及开启前的前置条件清单,在 TUN 模式什么时候必须开里有专门讨论。如果排查过程中发现客户端本身也起不来了,那属于另一类问题,按 Clash Verge Rev 打不开或闪退的顺序处理更快。
小结
TUN 引发的断网特征是国内外全断,故障点在系统网络栈而不是代理链路。按触发时点分流成因最省时间:立刻断多为服务或权限,几分钟后断多为软件抢路由,换网络后断多为路由没跟着更新。应急永远是先关 TUN、退客户端、关掉系统代理,再检查残留网卡,重启放在最后。虚拟机、VPN 和企业安全客户端与 TUN 争抢的是同一层,排查靠逐个退出做减法,不靠调客户端设置。修好之后回头想一遍自己是否真的需要它,说不出理由就别再开。
常见问题
关掉 TUN 网络就恢复了,还需要继续排查吗?
需要,但不急。关掉能恢复说明网络栈没有被永久改坏,属于可控故障。不排查的话下次开启还会复现,而且往往是在你更需要它的时候。建议在网络恢复后按触发时点走一遍判断,找出是服务、权限还是软件冲突。
客户端崩溃退出后彻底断网,是不是要重装系统?
不是。这类断网几乎都出在两个地方:系统代理设置被留在了指向本机端口的状态,或者虚拟网卡还占着默认路由。先在系统设置里把代理关掉,再检查是否有残留网卡,绝大多数情况能直接恢复。
TUN 开着能连国内网站但连不上外网,算这篇说的故障吗?
不算。本篇针对的是国内外全断的情况。国内通、境外不通说明网络栈本身是好的,问题在节点或分流层,应该按节点连通性和规则命中的思路排查。
虚拟网卡在设备管理器里显示叹号,能直接删掉吗?
可以删,但要先退出客户端,并且只删确认属于该客户端的那一块。删完重启系统,让客户端重新安装服务来创建。不要顺手清理其他不认识的虚拟网卡,虚拟机和企业安全软件也会留网卡。
修好之后还敢不敢继续用 TUN?
取决于你当初为什么开它。如果只是听说更保险,那就别开了;如果确实有不认系统代理的程序必须走节点,那就在解决掉冲突源之后继续用,并养成开启前先确认服务状态的习惯。