Mihomo TUN 模式打不开网页:先恢复连接,再按四层定位
简答:Mihomo TUN 模式打不开网页时,先关闭 TUN,改用 Mixed、HTTP 或 SOCKS 代理测试节点;如果普通代理正常,再只启用最小 TUN 配置,并根据日志和连接记录判断是权限、路由、DNS 还是规则问题。不要一开始同时修改 TUN、DNS、Fake-IP、IPv6 和 MTU。
定义:Mihomo 的 TUN 模式是通过虚拟网络接口和系统路由接管应用流量的功能,不等同于普通 HTTP/SOCKS 代理,开启后网页异常通常要从核心启动、流量接管、DNS 解析和系统路由四层排查。
先试这一步:关闭 TUN,确认节点和普通代理是否正常
本文是第三方使用指南,不是 Mihomo 或任何客户端的官方页面。以下步骤按 Mihomo 官方文档核验,界面菜单名称会因客户端和版本不同而变化;涉及字段时,应以当前核心文档和客户端实际配置为准。
最快判断路径:
- 关闭 TUN,同时关闭客户端里的系统代理或保留一个明确的 Mixed、HTTP、SOCKS 代理入口。
- 在浏览器或系统网络设置中只使用该普通代理,打开一个平时可访问的网页。
- 查看 Mihomo 连接记录:如果浏览器请求能出现,并且规则、代理组和节点都有结果,说明核心和节点至少完成了普通代理链路。
- 普通代理正常后,只恢复 TUN 的最小配置;普通代理也失败,则先不要继续改 TUN,应回到订阅、节点、核心启动和基础网络检查。
普通代理能打开网页,只能说明代理入口链路可用,不等于 TUN 的系统路由、DNS 接管和所有应用都正常;连接记录出现请求,也不等于目标网页最终加载成功。
| 现象 | 优先判断 | 下一步 |
|---|---|---|
| TUN 一开启客户端就报错或自动关闭 | 配置校验、权限、虚拟网卡或旧进程 | 看启动日志,撤回新增字段,再检查管理员权限和网卡 |
| TUN 已开启,但所有网页都打不开 | 自动路由、出口网卡、系统代理或其他 VPN 冲突 | 关闭其他 VPN/过滤器,恢复网络后只保留最小 TUN |
| 只有域名打不开,IP 或部分应用正常 | DNS、Fake-IP、DNS 劫持或规则 | 查看 DNS 日志和连接记录,暂时减少 DNS 变量 |
| 只有部分网站或应用失败 | 规则、IPv6、UDP、MTU 或应用自身代理设置 | 先确认请求是否进入 Mihomo,再逐项测试 |
最小 TUN 配置:先只改两个字段
为了避免把多个变量混在一起,第一轮只保留 TUN 开关和自动路由:
tun:
enable: true
auto-route: true这段配置不是所有客户端都能直接粘贴使用的完整配置文件,而是用于核对核心字段的最小示例。Mihomo 文档将 TUN 作为系统流量接入口,并说明 auto-route 用于自动设置全局路由;完整配置仍需要搭配你的代理、DNS、规则和其他必要部分。Mihomo TUN 配置文档
保存前先备份当前配置。若客户端提供配置校验功能,先校验再启用;若客户端没有统一的校验入口,可使用该客户端日志中的核心启动结果,或在你能直接运行 Mihomo 核心的环境中执行其对应的配置测试命令。不要把订阅地址、密钥或完整配置发布到公开 issue、截图或日志中。
第一轮停止条件:只要最小配置能让 TUN 启动,但网页仍打不开,就不要马上加入 dns-hijack、strict-route、Fake-IP、IPv6 或 MTU;先看连接记录和系统路由,确认流量到底有没有进入 Mihomo。
需要 DNS 接管时,再单独增加 DNS 变量
Mihomo 文档区分了 dns-mode 和 dns-hijack:前者描述系统 DNS 的配置方式,后者描述把匹配到的 DNS 请求转入内部 DNS 模块。文档还注明,hijack 在 Windows 上需要配合 strict-route,Linux 上需要配合 auto-redirect;macOS 和 Windows 对发往本地网络的 DNS 请求也存在不能自动劫持的边界。它们是条件性行为,不应直接当作所有设备都适用的固定模板。Mihomo TUN 字段和平台差异
因此,DNS 排查建议一次只增加一个字段,并在每次改动后观察:网页是否恢复、DNS 日志是否出现请求、连接记录是否出现对应域名。如果只是域名失败,先检查 DNS;如果所有连接都失败,优先回到路由、权限和出口网卡。
按四层定位:启动、接管、DNS、路由
第一层:TUN 是否真正启动
- permission denied:可能是权限不足、服务模式未运行或客户端没有完成系统授权。先以系统要求的管理员权限启动客户端,或重新执行客户端提供的授权流程。
- cannot create TUN:可能是虚拟网卡不可用、旧进程占用、其他 VPN/过滤器冲突,或当前平台不支持该配置。先退出其他网络接管软件,再重启客户端。
- YAML、配置解析错误:先删除最近新增的字段,恢复上一份可用配置;不要凭经验替换字段名,因为不同核心版本和客户端生成配置的方式可能不同。
- timeout:可能是服务、网卡或出口接口初始化没有完成。记录完整日志中的上下文,不要只截取单个单词。
如果客户端无法启动核心,浏览器能否打开网页没有诊断价值。先以核心启动成功、配置校验通过或客户端明确显示运行状态为停止条件。
第二层:浏览器请求是否进入 Mihomo
打开客户端的连接记录或控制面板,刷新一个网页并观察是否出现对应域名、目标地址、规则命中、代理组和节点结果。官方控制面板项目说明其连接追踪和实时日志可用于查看请求与日志流,但不同客户端的入口名称不一定相同。MetaCubeX 官方控制面板说明
- 没有任何请求:可能是 TUN 没接管、系统路由未生效、浏览器使用了独立代理设置,或请求被其他网络软件接走。
- 有请求但规则显示直连:先检查规则和模式,不要直接判断节点失效。
- 有请求且命中代理,但连接超时:再检查节点、协议、出口网络、MTU 或 UDP/TCP 差异。
- 有 DNS 请求但网页仍失败:继续看域名解析结果、连接目标和后续 TCP/TLS 日志。
第三层:DNS 是否是单独故障
在 Windows 上,可先用系统的 nslookup 查询同一个域名,再与 Mihomo 日志中的 DNS 请求对照;如果系统能解析、TUN 下不能解析,DNS 接管或规则是排查方向。如果两边都不能解析,则先检查本地网络或上游 DNS。不要把一次 nslookup 成功当作网页一定可用,因为解析成功后仍可能在路由、TCP、TLS 或规则阶段失败。
在 macOS 中,DNS 服务器可从“系统设置—网络—选择网络服务—详细信息—DNS”查看或调整。Apple 的官方说明也提示,VPN、安全软件、过滤器和配置文件可能影响网络连接;排查时应检查这些项目是否同时接管流量。Apple:更改 Mac 的 DNS 设置 Apple:网络连接问题与 VPN、安全软件排查
第四层:路由、网卡和其他网络软件
TUN 会影响系统级流量,自动路由如果选择了错误的出口接口,可能出现客户端显示已开启但网页完全打不开。多网卡、虚拟机、容器、企业 VPN、游戏加速器、防火墙和网络过滤器都可能改变路由或拦截连接。Mihomo 文档建议在多出口接口环境中明确检查或指定出口接口,并说明 strict-route 可能影响某些虚拟化软件。Mihomo TUN 路由与接口说明
Windows 可先运行:
ipconfig
route print
nslookup example.com这些命令只能帮助观察网卡、路由和 DNS 结果,不能单独证明 Mihomo 已正确接管流量。Microsoft 的 TCP/IP 排查指南也建议先确认网络适配器状态,再区分系统连接、驱动和 TCP/IP 栈问题。Microsoft:TCP/IP 通信排查指南
macOS 可在网络设置中检查活动网络服务、DNS、VPN、过滤器和配置文件;Linux 则应结合发行版的网络管理工具查看接口和路由。本文不提供一条适用于所有 Linux 发行版的命令,因为 NetworkManager、systemd-networkd 和桌面环境的操作入口可能不同。
三种常见情况的处理顺序
| 情况 | 建议顺序 | 不要先做什么 |
|---|---|---|
| TUN 无法启动 | 备份配置 → 删除最近新增字段 → 看完整启动日志 → 检查权限、旧进程和虚拟网卡 | 不要先改 DNS、MTU、Fake-IP 和 IPv6 |
| TUN 启动后全网打不开 | 关闭 TUN 恢复网络 → 关闭其他 VPN/过滤器 → 只启用 enable 与 auto-route → 看路由和连接记录 | 不要同时打开 strict-route、DNS 劫持和自定义路由 |
| 只有部分域名打不开 | 检查 DNS 日志 → 对照 nslookup → 看规则命中和解析结果 → 再测试 Fake-IP、IPv6 或 MTU | 不要把单个网站失败直接归因于节点或服务商 |
配置恢复原则:每次只恢复一个变量,修改后重新启动或重新加载配置,并记录结果。只要某一步让问题重新出现,就撤回该变量,而不是继续叠加更多选项。
排查完成后的回滚与复测
- 先关闭临时全局模式、TUN 和测试用的 DNS 接管选项。
- 确认系统代理恢复到你原来的状态;如果客户端异常退出,重新打开客户端,检查是否提供“恢复网络”或类似的路由清理功能。
- 关闭不再使用的 VPN、过滤器和虚拟网卡接管,避免多个程序同时修改默认路由。
- 恢复原来的规则模式和代理组,不要把临时直连或全局设置长期保留。
- 分别测试普通代理、TUN、DNS 解析和目标网页,并记录每一步的结果。
如果关闭 TUN 后系统仍然无法联网,问题可能是残留代理、路由、DNS、虚拟网卡或第三方网络软件造成的,不应继续修改 Mihomo 配置。Windows 可继续参考 Microsoft 的 TCP/IP 排查流程;macOS 则检查 VPN、过滤器、配置文件和网络位置。若问题只在某个客户端出现,记录核心版本、客户端版本、操作系统、完整错误信息和复现步骤,再向对应项目提交,不要公开订阅地址或密钥。
补充说明:哪些字段应放到最后测试
stack、strict-route、dns-mode、dns-hijack、Fake-IP、IPv6、MTU 和自定义路由都可能改变排查结果,但它们不是第一轮都要打开的“万能修复项”。当前官方文档对不同平台、依赖条件和冲突项有明确限制,例如 DNS 劫持与严格路由、Linux 自动重定向之间存在条件关系,严格路由也可能影响某些虚拟化场景。最稳妥的做法是先用最小 TUN 配置确认基本接管,再按单变量原则增加设置。Mihomo 官方 TUN 文档
本文未给出某个客户端的固定菜单路径,也没有把某个版本字段写成永久不变的配置模板,因为客户端可能重新组织界面,核心字段也可能随版本变化。若页面中找不到对应选项,应优先查看当前客户端的配置编辑器、日志和核心版本信息,而不是照抄其他版本的截图或 YAML。
如果你需要的是某个具体客户端的菜单操作,请先确认客户端名称、操作系统和 Mihomo 核心版本;这些信息缺一项,菜单位置和权限处理都可能不同。
常见问题
Mihomo TUN 模式打不开网页,第一步应该做什么?
先关闭 TUN,改用 Mixed、HTTP 或 SOCKS 普通代理测试。同一节点和代理组下,如果普通代理能打开网页,再继续排查 TUN;如果普通代理也失败,应先查核心、订阅、节点和基础网络。
TUN 已经显示开启,为什么浏览器还是打不开?
“已开启”只说明客户端尝试建立了 TUN,不代表路由、DNS 和浏览器请求都已正确接管。应查看连接记录中是否出现浏览器请求,再检查规则、代理组、出口接口、DNS 和其他 VPN 或过滤器。
要不要直接打开 strict-route 和 dns-hijack?
不建议第一步同时打开。先用仅包含 enable 和 auto-route 的最小配置确认基本接管;需要 DNS 接管时再单独增加相关字段,并按照当前 Mihomo 文档核对平台依赖。
Windows 上怎么判断是 DNS 问题还是路由问题?
先用 nslookup 查询同一域名,再看 Mihomo DNS 日志和连接记录。如果解析失败,DNS 是排查方向;如果解析成功但连接仍失败,应继续检查路由、规则、节点、TCP/TLS 或防火墙。单次 nslookup 成功不能证明网页一定能打开。
macOS 开启 TUN 后断网,应该检查什么?
先关闭 TUN 恢复网络,再检查系统设置中的网络服务、DNS、VPN、过滤器和配置文件,同时退出其他可能接管流量的软件。macOS 的 TUN 接口、系统授权和本地 DNS 行为可能受客户端版本影响,不能直接套用 Windows 的菜单或命令。
排查失败后如何恢复网络?
关闭 TUN、恢复系统代理和规则模式,退出其他 VPN 或过滤器;如果客户端提供“恢复网络”功能,优先使用该功能。若仍无法联网,再按操作系统的网络排查流程检查残留路由、DNS、虚拟网卡和网络服务。