为什么 Windows 上常常要开 TUN

在 Windows 里,「系统代理」只能让尊重系统代理设置的程序走 HTTP/SOCKS 出口;游戏启动器、部分桌面应用、命令行工具或旧版运行时,仍可能直连原始目标。若你希望更接近「整台机器默认从隧道出去」的体验,往往会转向 TUN 模式:由内核虚拟网卡接管流量,再由 Clash / Mihomo 按规则做分流。

这条路的好处是覆盖面大;代价是与系统路由表、DNS、防火墙以及驱动栈绑得更紧,任何一环不协调,都容易被体感成「一开 TUN 就断网」。先把预期对齐:TUN 不是魔法开关,而是把网络栈的「默认出口」搬到了 Clash 里,因此Clash 自身必须健康(节点可用、规则不把所有流量送进死胡同、DNS 不形成自锁环)。若你刚升级过内核或换了发行版,建议先对照《Clash Meta(Mihomo)升级完整指南》确认配置字段与行为没有掉队。

Wintun 是什么,和「虚拟网卡」有什么关系

在 Windows 上,绝大多数 Clash 图形客户端开启 TUN 时,底层会依赖 Wintun:这是 WireGuard 项目维护的用户态隧道驱动接口,用来创建一张虚拟网卡(设备管理器里常显示为带 Wintun 字样的网络适配器)。没有它,TUN 往往无法真正插入系统路由;有了它,系统才会把符合条件的 IP 包交给 Clash 处理。

因此「Wintun 装不上」与「TUN 开了等于没开」往往是同一条故障链的两端:前者是驱动层拒绝合作,后者可能是驱动在,但路由、跃点数、接口度量多网卡环境让流量没有按你想的那样进隧道。下文把安装失败与断网分成两条主线,但排查时请记住它们会交叉——例如残留的旧 Wintun 实例会导致新装看似成功、实则接口异常。

Wintun 安装失败:建议按这个顺序查

(1)管理员权限与安装入口。不少客户端会把 Wintun 的安装嵌在「首次开启 TUN」流程里;若你以受限用户运行,或企业策略禁止加载未签名驱动,安装会在后台静默失败。请用右键以管理员身份运行客户端后再试,并观察日志是否出现驱动加载错误码。

(2)设备管理器里的残留与冲突。打开设备管理器,在「网络适配器」中查看是否有多条 Wintun、Unknown 或带感叹号的虚拟网卡。若你反复安装不同发行版,可能出现同名不同版本的堆叠。备份配置后,卸载可疑条目、重启,再让当前使用的客户端单独触发一次驱动安装,通常比反复点开关更有效。

(3)安全软件与「内存完整性」类防护。某些终端防护会拦截新驱动或改写网络筛选器;表现为「昨天还能用,今天突然装不上」。可先做可回滚的对照:临时关闭实时防护或在企业环境中换一台未纳管设备验证。若仅特定机器失败,优先怀疑策略而不是 Clash 本身。

(4)系统版本与架构。确保客户端与 Wintun 组件架构匹配(64 位系统使用 64 位安装包),并尽量保持 Windows 更新在合理区间;极老版本内核可能对驱动模型支持不完整。若你使用精简系统或第三方「优化镜像」,缺少网络栈组件也会导致虚拟网卡创建失败。

开启 TUN 后整台电脑「无互联网」:先看路由与 DNS

最常见的误判是:浏览器显示无法连接,任务栏网络图标仍「已连接」。这通常说明链路层还在,但默认路由或 DNS 解析没有落到可用路径。可以按下面顺序自检。

(1)Clash 是否真的能出网。暂时关闭 TUN,仅用系统代理或内置连通性测试,确认节点与规则没有把所有流量指向失效出口。若关 TUN 正常、开 TUN 立刻挂,问题多半在TUN 栈与系统路由/DNS 交互,而不是订阅本身。

(2)DNS 是否形成环路或黑洞。TUN 模式下,系统解析请求往往被导向 Clash 的 DNS 模块;若你的 dns 配置在 fake-ip、fallback 与 nameserver-policy 上过于激进,可能出现解析不到解析很慢,体感就是「全网断」。这与《Clash DNS 防泄漏配置指南》里强调的「谁在解析、查询发往何处」是同一类问题,只是 TUN 把矛盾放大了。建议每次只改一项 DNS 相关配置,并在开关 TUN 两种状态下各测一次。

(3)IPv6 与多网卡。若系统同时存在以太网、Wi‑Fi、虚拟交换机、Docker Desktop、公司 VPN等多条出口,Windows 会按路由度量挑选路径。TUN 开启后,若默认路由被改写得不完整,可能出现「部分应用走通、部分不通」。可先临时关闭不用的网卡做对照,或在客户端里检查是否提供了严格的默认路由接管选项(不同 GUI 命名不同,核心是让 0.0.0.0/0 语义清晰)。

(4)内核栈模式与增强特性。Mihomo 系内核在 Windows 上常见 gvisor / system 等 TUN 栈实现差异,遇到兼容性问题时可尝试切换栈模式做 A/B 测试。具体键名以你所用版本文档为准;升级后行为变化时,优先阅读发行说明再改配置。

「只有浏览器能上网」或「某个软件永远直连」

若关 TUN、只开系统代理时也是如此,多半不是 TUN 坏了,而是应用自身不走系统代理。TUN 本应改善这一点,但若该软件使用固定 IP、自有协议、RAW socket、或绑定物理网卡,仍可能绕过虚拟接口。

另一类情况是 UWP 应用回环限制:部分商店应用在本地回环访问上有限制,表现为代理工具日志有连接,但界面仍空白。此类问题要在系统策略或专用工具层面处理,单纯反复切换 TUN 往往无效。

若你主要使用图形客户端,例如 Clash Verge Rev,建议把「TUN 开关、服务模式、是否以管理员启动」作为一组变量记录:很多「偶发断网」来自权限或服务状态在重启后没有自动恢复,而不是规则突然坏了。

防火墙、筛选器驱动与日志里能看到的线索

Windows Defender Firewall 与其他 LSP/WFP 筛选器,有时会与虚拟网卡的入站/出站配置文件不一致。若仅特定网络环境(办公网、校园网)出问题,留意是否弹出过「是否允许专用/公用网络」的对话框而被误点拒绝。

进阶排障可以结合客户端日志与系统事件查看器:关注驱动加载失败、接口创建失败、路由添加失败三类关键词。看到明确错误码后,用官方文档或发行版 FAQ 反查,比在社交平台上随机搜「断网」更高效。

做一组「最小变量」对照实验

为了避免同时改动订阅、规则、DNS、TUN 四件事后无法归因,推荐固定下面的基线流程:① 更新客户端到稳定通道;② 用一份已知可用的最小配置(仅测试节点 + 最简规则);③ 先关 TUN 验证连通;④ 再开 TUN,仅调整栈模式或 DNS 其中一类。延迟与策略组问题可对照《Clash 提速技巧》把「慢」与「不通」分开。

若基线配置在 TUN 下仍完全不可用,而换一台同版本 Windows 正常,则回到硬件驱动、企业策略与第三方安全软件方向;若多机均可复现,则回到内核版本与具体 YAML 字段。保持一次只动一个旋钮,你很快就能定位是驱动层、路由层还是 DNS 层的问题。

合规与边界

本文仅讨论在合法授权网络环境中,使用开源代理客户端进行故障排查的一般技术思路,不构成对任何地区法律法规的规避建议。请在你所在地法律允许的范围内使用相关技术,并遵守服务提供商条款与他人权益。

小结

Windows 上 Clash 的 TUN 模式,本质是Wintun 虚拟网卡 + 系统路由/DNS + 内核分流逻辑的协同。安装失败优先查权限、残留驱动与安全软件;开启后断网优先查默认路由、DNS 自锁与多网卡度量;部分应用仍直连则不要把问题误判为「TUN 没生效」,而要回到应用网络栈与权限模型。

相比在碎片帖子里反复试「玄学开关」,使用与 Mihomo 同步迭代、对 Windows 权限与服务模式有清晰引导的 Clash 发行版,通常能把这类问题控制在可预期范围内。若你准备在一台主力机上长期开启 TUN,建议先到本站下载页获取对应系统的稳定构建,用小配置验证驱动与路由都 OK 后,再逐步叠加规则与 DNS 策略。→ 立即免费下载 Clash,开启流畅上网新体验