查看 2026-05-29 15 分钟 进阶 4 步

Mihomo TUN 模式 Windows 配置详解:从驱动安装到排错(2026)

Windows 上开 Mihomo TUN 模式最容易卡在 Wintun 驱动加载、管理员权限和路由表冲突三步。本文按驱动检查、YAML 参数逐项拆解、三种模式对比、常见错误码和回滚方式组织,每项都给了设备管理器或命令行验证方法。把准备材料、配置差异和上线后的收尾动作放在一起,减少照搬旧教程带来的误判。

你打开 Clash Verge Rev 或 Mihomo Party 的系统代理,浏览器、Telegram 这些支持代理设置的程序都能正常工作。然后你试着玩了一把游戏,发现延迟还是直连的;打开命令行跑 curl api.github.com,也返回了连接超时。

这就是系统代理的天花板——它只对主动读取 Windows 代理设置的程序生效。游戏、命令行工具、Windows Store 下载的 UWP 应用、Docker Desktop、WSL 里的 Linux 子系统,这些程序完全不吃系统代理那一套。

Mihomo 的 TUN 模式就是干这个的:在 Windows 网络栈里插入一张虚拟网卡,把所有流量(TCP、UDP、ICMP)引到这张网卡上,由 Mihomo 内核决定哪些走代理、哪些直连。不依赖程序是否支持代理设置,不要求每个软件单独配置。

但这套东西在 Windows 上的实现依赖一个叫 Wintun 的驱动(来自 WireGuard 项目),从驱动加载到路由表写入,中间有四五个容易翻车的节点。这篇文章按配置顺序把每个参数和每个可能的报错拆开。

Windows 上跑 TUN 和 Linux/macOS 有什么不一样

Linux 有 /dev/net/tun,macOS 有 utun,都是操作系统内置的虚拟网络接口。Windows 没有这层原生能力,必须靠第三方驱动——Mihomo 用的就是 Wintun。

Wintun 做的事情很简单:注册一个内核级虚拟网卡,把从 IP 层发来的包交给用户态程序(Mihomo 内核)处理。问题在于 Windows 对内核驱动加载有三重限制:

  1. 管理员权限。加载任何内核驱动都需要管理员 token,少这一步 TUN 直接创建失败。
  2. 驱动签名强制。Windows 10/11 默认要求内核驱动有数字签名。Wintun 有 WireGuard LLC 的有效签名,但部分企业 IT 策略会额外拦截非白名单驱动。
  3. 杀毒软件和 Defender。Wintun 的行为签名(创建虚拟网卡、注入路由表)容易触发启发式检测,Defender 可能静默拦截驱动加载。

这三重限制意味着:同一份 TUN 配置在个人 Windows 11 上跑得好好的,换到公司的 Windows 10 加入域的机器上就可能完全打不开。这篇文章的排错部分会逐一覆盖这三种情况。

TUN 配置参数:每个参数到底控制什么

Mihomo 的 TUN 配置在 YAML 顶层 tun: 键下,以下是核心参数:

参数控制什么Windows 上的推荐值不推荐的后果
enableTUN 模式总开关true无 TUN,等于白写这一节
stack网络栈实现方式:system(Wintun)/gvisor(用户态)/mixed(TCP 进 system + UDP 进 gvisor)mixedsystem 性能最高但 UDP 可能触发某些游戏反作弊;gvisor 纯用户态但带宽掉 20-30%
device虚拟网卡在系统中的显示名称Mihomo不设就自动生成,排查路由表时不好辨认
dns-hijack劫持哪些地址的 53 端口 DNS 查询,写入 Mihomo 的 DNS 模块处理[any:53]不设的话部分程序会用硬编码 DNS 服务器绕开代理 DNS,导致 CDN 解析到国内节点
auto-route是否自动设置路由表让流量进入 TUNtruefalse 等于 TUN 网卡创建了但没有路由指向它,流量不进 TUN。手工写路由表出错率极高
auto-detect-interface是否自动检测默认物理网卡并排除其路由,防止回环truefalse 可能导致 TUN 收到的包又经由物理网卡发给 TUN 自身,造成流量死循环
strict-route路由表策略是否严格按规则执行,不自动添加兜底路由falsetrue 对高级用户有用(配合手工路由),普通用户开 true 容易导致部分流量被错误丢弃
mtu虚拟网卡的最大传输单元(字节)1500设太小(如 1280)分片过多降低吞吐;设太大(如 9000)遇到不支持巨型帧的路由器会丢包
inet4-addressTUN 虚拟网卡的 IPv4 地址/子网172.19.0.1/30不需要改,除非你家里或办公室局域网恰好也用这个地址段。冲突时换一个私有地址段如 10.99.0.1/30
endpoint-independent-natUDP NAT 类型:是否启用端点无关 NAT(Full Cone)true游戏联机和 P2P 传输关闭这个参数会导致 NAT 类型变为 Restricted Cone,匹配成功率显著下降

YAML 配置示例

下面是一份在 Windows 11 + Clash Verge Rev + Mihomo v1.18+ 上验证可用的 TUN 配置段:

tun:
  enable: true
  stack: mixed
  device: Mihomo
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true
  strict-route: false
  mtu: 1500
  inet4-address: 172.19.0.1/30
  endpoint-independent-nat: true

这段配置保存后,客户端开启 TUN 开关即可生效。如果使用的是 Mihomo Party,界面里有一个「TUN 配置」面板可以直接填写以上参数,不需要手动编辑 YAML。但建议先搞清楚每个参数的含义再填——盲目照抄容易在遇到网络环境差异时不知道怎么调。

怎么确认 TUN 驱动真的装好了

光看客户端开关变绿不够。TUN 开关显示绿色只说明 Mihomo 内核成功启动了 TUN 逻辑,不代表驱动加载完成、路由表写入正确。三步验证:

第一步:设备管理器看网卡。 右键开始菜单→设备管理器→展开「网络适配器」。应该能看到名称里带 Wintun 的条目,图标正常无黄色感叹号。双击进去→驱动程序页,提供商为 WireGuard LLC,驱动日期应该在你安装或更新 Mihomo 内核的时间附近。

如果设备管理器里完全没有 Wintun 相关条目:客户端第一次开启 TUN 时驱动没有加载成功。先到 Windows 安全中心的保护历史里看有没有 Wintun 的拦截记录。如果没有拦截记录但驱动仍然不出现,以管理员身份运行客户端,手动开启一次 TUN 再看设备管理器。

第二步:route print 看路由表。 以管理员身份打开 cmd,执行 route print -4。在输出顶部附近找目标网络为 0.0.0.0 且跃点数不是物理网卡最低值的条目,或目标为 198.18.0.0 网段指向 TUN 网卡接口 IP(通常是 172.19.0.x)的条目。有这些说明 auto-route 正常工作,流量确实被引向 TUN 网卡了。

第三步:nslookup 看 DNS 劫持。 在 cmd 里跑 nslookup google.com。如果返回的 IP 不是你家宽带 DNS 通常会解析的结果,说明 dns-hijack 成功把 DNS 请求截到了 Mihomo 的 DNS 模块里。再打开 Mihomo 客户端的 Logs 页面,过滤 DNS,应该能看到这条 google.com 的查询记录。

三步全部通过,TUN 才算真正跑起来了。缺任何一步,回到上面参数表里找对应的参数看是不是设错了。

系统代理、TUN、混合模式:什么时候该用哪个

Windows 上 Mihomo 有三种流量接管方式,它们的区别不只是「TUN 更底层」这么一句话能说清:

模式接管层覆盖范围需要管理员适用场景
系统代理应用层(HTTP/HTTPS/SOCKS5 代理)只有读取系统代理设置的程序,对 UWP、命令行、游戏无效不需要日常浏览器上网、聊天软件、轻量使用
TUN网络层(IP 包)整个系统的所有 TCP/UDP/ICMP 流量必须游戏加速、命令行工具、Docker、WSL、UWP 应用,追求无死角覆盖
混合(系统代理 + TUN 同时开)应用层 + 网络层所有流量全部覆盖必须很少有必要。个别场景下某些浏览器插件只认系统代理设置,同时开可以兼容,但日常没有收益

一个常见误判是把「开了系统代理但是某些程序没走代理」当成是规则写错了。先确认那个程序是否支持系统代理:所有 UWP 应用(Microsoft Store 下载的)、cmd/PowerShell、WSL、Docker CLI 都不吃系统代理。如果这些程序需要走代理,只能上 TUN。

另一个误判是「开了 TUN 所以所有流量一定走代理」。TUN 只是把流量引到虚拟网卡上,最终走代理还是直连,取决于你的分流规则。TUN 模式里如果没有写 DIRECT 规则或放行规则,默认行为取决于内核版本和配置——有可能全部走代理,也有可能在规则缺失时直连。上 TUN 之前建议先确认自己的规则集覆盖了常用国内网站的直连规则。

常见错误:从日志到修复

TUN 模式出问题的时候,打开 Logs 页面搜 TUNerror,通常能直接看到根因。以下是最常见的四个错误和对应的修复路径:

错误日志关键词原因修复步骤
cannot create TUN devicepermission denied没有管理员权限右键客户端→以管理员身份运行;长期使用建议在客户端设置里开启 Service Mode
Wintun driver not founddriver load failedWintun 驱动未安装、被 Defender 拦截、或注册表残留1) 安全中心→保护历史→允许 Wintun;2) 管理员 cmd 执行 sc delete wintun 清残留→重启客户端重试
CreateAdapter: The system cannot find the path specified (0x00000003)Wintun 驱动注册表条目损坏或过时管理员 cmd 依次执行 sc delete wintunnet stop <客户端服务名>net start <客户端服务名>,让客户端重新注册 Wintun 驱动
route conflict 或 TUN 开启后断网路由表与已有 VPN(公司 VPN、WireGuard、Tailscale)冲突暂时关闭其他 VPN 软件确认是否是冲突;长期方案:在 TUN 配置中确保 auto-detect-interface: true,或在规则中把公司内网 IP 段设为 DIRECT
TUN 开关反复回弹(点开→马上自动关闭)Wintun 初始化失败,最常见的原因是被安全软件拦截用 Process Monitor 抓一下 mihomo.exe 的驱动加载行为,看是否有 ACCESS DENIED;如果有,在 Defender 或第三方杀软的排除项里加入 Mihomo 的 exe 路径

如果所有错误都对不上

还有一个隐性故障源:其他虚拟网卡驱动的残留。深信服 EasyConnect、旧版 V2RayN、ZeroTier、OpenVPN 的 TAP 驱动卸载不干净,会在 Windows 网络栈里留下冲突的筛选器(filter driver),导致 Wintun 加载后无法绑定 IP 协议。

排查方法:以管理员身份打开 cmd,执行 netsh winsock show catalog,在输出里找非微软的 Layered Service Provider (LSP) 条目。如果看到不属于当前在用软件的 LSP(比如你要找的是 Wintun,却看到了 Sangfor 或 ZeroTier 的注册项),说明旧 VPN 的残留驱动在干扰。可以用 netsh winsock reset 重置整个 Winsock 目录——这之后所有 VPN 软件都需要重新安装,但能解决 90% 的驱动冲突。

想退回去怎么办

如果你试了一圈 TUN 发现不稳定、想回到只开系统代理的状态:

  1. 关掉 TUN 开关。Overview 页面的 TUN 开关拨到关闭位置,Mihomo 内核会自动删除虚拟网卡的路由条目。大部分情况下关掉就能恢复直连网络。
  2. 如果关掉后网络断断续续。以管理员身份开 cmd,执行 netsh winsock reset && netsh int ip reset 然后重启电脑。这会把 Windows 网络栈完全刷新,所有 VPN 软件配置清零。
  3. 想彻底删掉 Wintun 驱动。设备管理器→网络适配器→右键 Wintun/Mihomo 网卡→卸载设备→勾选「删除此设备的驱动程序软件」。下次再开 TUN 时客户端会重新从它的资源包里提取 Wintun 驱动并安装。
  4. 连客户端都想清理。卸载 Clash Verge Rev 或 Mihomo Party 后,手动删除配置目录:Clash Verge Rev 在 %USERPROFILE%\.config\clash-verge-rev\,Mihomo Party 在 %APPDATA%\mihomo-party\。删完之后所有回滚都干净了。

TUN 模式的配置和排错确实比系统代理多几层复杂度——驱动、路由表、DNS 劫持每个环节都要对。但一旦跑通,整个系统的网络流量都会被统一接管,不用再纠结「这个程序支持代理吗」。如果你手里的订阅节点在 TUN 模式下带宽跑不上去,一份兼容 Mihomo 全栈的 兼容 Clash / Singbox / V2Ray 的订阅 能减少协议层面的性能损耗。


本文基于 Mihomo v1.18+ 内核和 Windows 11 23H2 编写,设备管理器和 cmd 路径对应 2026 年 5 月的系统版本。Wintun 驱动的具体行为可能因 Mihomo 内核版本和 Windows 更新而变化,排查前先确认 TUN 参数与 Mihomo 官方 config 文档 的描述一致。

相关阅读

来源与时间

本文最后查看时间:2026-05-29。操作路径会随客户端版本变化,遇到按钮名称不一致时,优先按同义菜单和官方文档查看。

看更多教程:教程库 · 看客户端:客户端目录 · 看下载入口:下载中心