Mihomo TUN 模式没网怎么办?按症状排查 DNS、权限与路由
简答:Mihomo TUN 开启后没网,先关闭 TUN 和系统代理,确认普通网络恢复;再用同一节点通过 Mixed、HTTP 或 SOCKS 代理测试同一网址。普通代理可用而 TUN 不可用,优先检查权限、虚拟网卡、auto-route、strict-route 和 DNS,而不是先换节点。本文不覆盖具体客户端菜单名称、未核实版本差异或某个订阅服务的可用性。
定义:Mihomo TUN 模式是通过虚拟网卡和系统路由接管设备流量的工作方式,故障通常要区分节点、代理端口、TUN 接管、路由和 DNS 五个层次。
先恢复网络:三步判断是不是 TUN 接管导致
如果开 TUN 后整台设备都打不开网页,先不要连续修改 DNS、MTU 和规则。按下面顺序做一次对照,停止条件是普通网络已经恢复。
- 关闭 TUN。同时暂时关闭 Mihomo 的系统代理开关;如果客户端把 TUN 和系统代理分成两个开关,两个都关闭。
- 确认普通网络。打开一个平时能访问的网页,或使用系统自带网络诊断。这里仅能证明系统直连恢复,不能证明节点或订阅正常。
- 只开普通代理测试。重新启动 Mihomo,但先不开 TUN,用同一个节点和同一个网址测试 Mixed、HTTP 或 SOCKS 代理端口。代理端口、端口号和菜单名称以当前客户端实际显示为准。
| 测试结果 | 优先检查 | 暂时不要做 |
|---|---|---|
| 关闭 TUN 后仍没网 | 系统网络、代理残留、节点或订阅本身 | 不要先改 Fake-IP 或 MTU |
| 普通代理可用,TUN 一开就断 | 权限、虚拟网卡、auto-route、出口网卡、strict-route | 不要先连续更换节点 |
| 只有域名打不开,IP 测试正常 | DNS、dns-hijack、Fake-IP、浏览器自带 DNS | 不要把浏览器访问当成全设备验证 |
| 只有部分 App 或局域网设备异常 | 规则、fake-ip-filter、局域网地址和其他 VPN 冲突 | 不要直接删除所有分流规则 |
官方文档说明,TUN 会通过 auto-route 设置全局路由;strict-route 会强化路由约束,但在特定场景可能影响 VirtualBox 等应用。可查看 Mihomo TUN 参数说明。
TUN 无法启动:先查权限、网卡和配置结构
“TUN 开关点不开”与“开起来后没网”不是同一个问题。若日志出现 permission denied、cannot create TUN、设备创建失败或配置解析错误,先按下面顺序处理。
- 检查授权。Windows 通常需要管理员权限;Linux 需要具备创建 TUN 和配置网络的权限;macOS 可能需要系统授权。具体提示以客户端当前弹窗和日志为准。
- 检查虚拟网卡。确认系统没有残留的同类 TUN/VPN 接口,也没有同时运行其他 VPN、WireGuard、Tailscale、虚拟机网络或网络过滤软件。关闭其中一个后再测,避免一次改多个变量。
- 检查配置结构。如果你使用独立 Mihomo 核心,针对指定文件执行:
mihomo -t -f config.yaml。路径替换为实际配置文件路径。官方 MetaCubeXD 文档把mihomo -t作为配置激活前的校验步骤,相关项目代码示例也使用了-f指定文件。 - 重新启动并观察日志。配置检查通过只代表结构能被解析,不代表 DNS 服务器、代理出站、端口或运行环境实际可达。若校验失败,恢复备份后再逐项修改。
配置校验与运行时连通性必须分开:前者用于发现 YAML、字段或结构错误,后者要通过普通代理、DNS 查询和目标网址分别验证。官方控制面板文档明确将配置校验放在重启核心之前。
TUN 已启动但完全断网:检查路由接管和出口网卡
如果 TUN 显示已启动,但浏览器、桌面应用和命令行都无法联网,优先把问题看成“流量接管后没有正确出站”,而不是直接判断节点失效。
- 确认
auto-route是否启用。它负责把全局流量路由进 TUN;关闭它可能导致只有部分流量进入隧道,开启后若路由异常则可能整机断网。 - 确认
auto-detect-interface识别到的出口网卡是否正确。电脑同时连接 Wi-Fi、网线、虚拟网卡或 VPN 时,自动识别结果需要重点核对。官方文档建议多出口设备考虑手动指定出口接口。 - 临时关闭
strict-route做一次对照测试。若关闭后恢复,说明问题可能与严格路由、DNS 防泄漏或其他虚拟网络冲突有关;这只是定位线索,不代表应永久关闭。 - 暂时退出其他 VPN、WireGuard、Tailscale、Docker、WSL 或虚拟机网络,再只启动 Mihomo。每次只改一个变量,并记录“关闭后是否恢复”。
验证边界要分清:TUN 接口存在不等于代理出站成功,系统显示已连接也不等于网页能打开。若普通代理测试失败,应先回到节点、订阅、出站和代理端口层排查。
只有域名打不开:按 DNS、dns-hijack、Fake-IP 分流
如果使用 IP 地址的测试能够建立连接,但域名打不开,优先检查 DNS 链路。不要把公开 DNS 的 IP 地址直接当作通用 DoH 主机名测试;DoH 通常需要与证书匹配的主机名,具体写法应以 Mihomo 当前文档和实际服务端配置为准。
- 确认 DNS 模块已启用。检查配置中
dns.enable和实际监听状态,避免配置文件写了 DNS 但运行中的配置没有生效。 - 检查 TUN 的 DNS 接管。
dns-hijack会把匹配的 DNS 请求转入 Mihomo DNS 模块;官方说明指出,macOS 和 Windows 不能自动劫持发往局域网的 DNS,Android 开启 Private DNS 时也可能无法自动劫持。 - 对照 enhanced-mode。先记录当前是
fake-ip还是redir-host,不要同时更换模式、DNS 服务器和规则。Fake-IP 相关异常时,检查fake-ip-filter是否包含局域网、内网域名或设备发现所需域名。 - 检查浏览器独立 DNS。浏览器自身的安全 DNS 可能绕过系统解析路径,因此“浏览器能开”或“浏览器打不开”都不能单独证明全设备 DNS 正常。
官方 DNS 文档说明,fake-ip-filter 用于指定不返回 Fake-IP 的域名,且其匹配逻辑与规则配置有关。可对照 Mihomo DNS 配置说明。
部分 App、NAS 或打印机不通:先看局域网和规则
如果网页正常,但 NAS、打印机、局域网域名、公司内网或某些 App 不通,优先检查局域网地址是否被错误送进 TUN 或 Fake-IP,而不是把所有流量改成直连。
- 确认局域网地址段和内网域名是否有明确的直连规则。
- 检查
fake-ip-filter是否包含设备发现、局域网域名和公司内网后缀。 - 暂时关闭 Fake-IP 做一次单变量对照;如果恢复,再针对具体域名添加过滤,而不是清空全部配置。
- Windows 和 macOS 对局域网 DNS 自动劫持存在限制;Android 开启 Private DNS 时,DNS 接管也可能不完整。以系统实际 DNS 状态和 Mihomo 日志为准。
停止条件是局域网访问恢复且外部网页仍能使用;如果只恢复了局域网,却导致普通网页失效,应立即回滚刚才的单项改动。
安全回退:怎样关闭 TUN,避免越修越断网
当你无法判断是哪一项设置导致断网时,回退比继续叠加配置更安全。
- 先关闭 TUN,再关闭系统代理。
- 退出 Mihomo,等待系统网络恢复;如果仍异常,检查系统代理、VPN 配置和残留虚拟网卡。
- 恢复修改前的配置备份,不要直接覆盖所有配置文件。
- 重新启动 Mihomo,只开启普通代理测试;确认节点和代理端口可用后,再只开启 TUN。
- 每次只恢复一个参数:先是 TUN,再是 auto-route,再是 DNS 接管,最后才测试 strict-route、Fake-IP 或 MTU。
如果客户端没有明显的回滚按钮,建议在修改前复制一份原配置,并为每次改动记录时间、改动字段和测试结果。浏览器可访问只代表一个应用路径可用,不能替代全设备、DNS、局域网和代理出站验证。
Windows、macOS、Linux、Android 的边界提示
| 平台 | 优先检查 | 官方文档已明确的边界 |
|---|---|---|
| Windows | 管理员授权、TUN 网卡、strict-route、系统代理和其他 VPN | strict-route 可能影响部分虚拟化或特殊网络应用;DNS 劫持规则需结合实际配置。 |
| macOS | 系统网络授权、utun 接口、出口网卡和 DNS 路径 | 官方文档说明 macOS 不能自动劫持发往局域网的 DNS;TUN 设备名需符合系统要求。 |
| Linux | TUN 权限、auto-route、auto-redirect、iptables/nftables 和 systemd-resolved | auto-redirect 仅适用于 Linux,并要求配合 auto-route;防火墙规则可能影响 TUN 出站。 |
| Android | VPN 授权、Private DNS、其他 VPN 和应用分流 | 开启 Private DNS 时 DNS 请求可能无法自动劫持;TUN 的接管范围还受系统 VPN 行为影响。 |
这张表只用于确定排查优先级,不代表每个平台的固定菜单路径。Mihomo 官方 TUN 文档列出了 auto-route、auto-redirect、dns-mode、dns-hijack 和 strict-route 的平台差异,具体客户端界面仍需以当前版本实际显示为准。
本文是第三方使用指南,不是 Mihomo 或任何客户端的官方网站。版本、菜单和打包方式未在本文中统一指定,无法核实的版本结论不作判断。
常见问题
Mihomo TUN 一打开就完全没网,第一步是什么?
先关闭 TUN 和系统代理,确认普通网络恢复;然后使用同一个节点,通过 Mixed、HTTP 或 SOCKS 代理测试同一个网址。若普通代理可用而 TUN 不可用,再查权限、虚拟网卡、auto-route、出口网卡和 strict-route。
执行 mihomo -t 后显示通过,是不是说明 TUN 一定能用?
不是。针对配置文件执行 mihomo -t -f config.yaml 主要用于检查配置结构,不能证明 DNS 服务器、代理出站、端口、系统权限或路由实际可达。还需要分别做普通代理、DNS 和 TUN 启用后的运行时测试。
只有域名打不开,应该先换 DNS 吗?
不建议一开始就连续更换 DNS。先确认 DNS 模块是否启用,再检查 dns-hijack、Fake-IP 模式、fake-ip-filter 和浏览器独立 DNS。每次只改一个变量并记录结果,避免无法判断是哪项改动产生影响。
Mihomo TUN 开启后 NAS 或打印机无法访问怎么办?
先检查局域网地址和内网域名是否被错误送进 TUN 或 Fake-IP,再检查 fake-ip-filter 和直连规则。macOS、Windows 对局域网 DNS 自动劫持存在限制;Android 开启 Private DNS 时也可能影响 DNS 接管。
Windows、macOS、Linux、Android 的排查方法完全一样吗?
主线相同,都是先恢复普通网络,再区分代理、TUN、路由和 DNS;但权限、虚拟网卡、DNS 接管和 auto-redirect 的平台边界不同,不能照抄某个系统的菜单路径或命令。