← 返回 96110.buzz 本地视觉备份 首页

Mihomo DNS泄漏怎么处理?按路径定位并复测

更新于 2026-10-30 · 96110.buzz

简答:如果 DNS 检测显示了本地运营商、路由器或非预期解析器,先确认 Mihomo 当前是系统代理还是 TUN 模式,再检查 dns.enable、tun.dns-hijack、enhanced-mode 和浏览器或系统的加密 DNS。最稳妥的处理顺序是:备份配置→只开启一条 DNS 接管路径→重启 Mihomo 与应用→复测解析器和实际查询路径。

定义:Mihomo DNS 泄漏,是指域名查询没有按预期进入 Mihomo 的 DNS 模块或指定上游,而是被系统、浏览器、应用、IPv6 或局域网 DNS 直接处理。

先试这一步:确认你到底在用哪条 DNS 路径

不要一开始就同时修改 Fake-IP、DNS 上游、TUN、IPv6 和浏览器设置。先打开 Mihomo 当前配置或客户端状态页,记录三项:是否开启 tun.enable、是否有 dns.enable: true、当前使用的是系统代理还是 TUN。Mihomo 官方文档将 fake-ip 与 redir-host列为两种 DNS 增强模式,并说明 TUN 可用于自动路由和 DNS 劫持。查看 Mihomo DNS 配置说明 查看 Mihomo TUN 配置说明

检测现象与优先处理动作
检测或现象优先怀疑先做什么
代理网页能打开,但检测显示本地解析器浏览器 Secure DNS、系统 DNS 或应用内 DoH 绕过 Mihomo临时关闭浏览器自定义 Secure DNS,重启浏览器后复测
系统代理模式正常,TUN 模式才出现异常dns-hijack、strict-route 或 TUN 权限没有生效先回到系统代理验证,再单独启用 TUN 和 DNS 劫持
Windows 或 macOS 仍显示局域网 DNS系统发往局域网的 DNS 请求未被自动劫持查看 Mihomo 日志;不要把端口监听误认为已经接管系统 DNS
Android 开启 TUN 后仍有旁路Private DNS、应用内 DNS 或 IPv6 路径暂时将 Private DNS 设为 Automatic 或按场景关闭,再重启应用复测
改成 Fake-IP 后个别局域网应用失效需要真实地址的域名没有加入过滤列表只为具体域名增加 fake-ip-filter,不要使用过大的通配符

在线检测页面显示的解析器只能说明某次查询结果,不等于所有应用、IPv4、IPv6 和浏览器请求都走了同一条路径。验收时至少要分别检查:域名能否打开、Mihomo 日志是否出现查询、检测结果中的 resolver 是否符合预期。

最小改动排查顺序:备份、单变量、回滚

  1. 备份:复制当前 YAML 或导出客户端配置,保留原文件名和时间。不要直接覆盖唯一配置。
  2. 建立基线:先关闭 TUN,仅保留系统代理,测试一个普通域名和一个原本显示泄漏的域名。
  3. 检查内置 DNS:确认 dns.enable 没有被设为 false。官方说明指出,关闭该字段后会使用系统 DNS。Mihomo DNS 官方字段说明
  4. 检查接管入口:启用 TUN 时,确认配置中有适合当前系统的 dns-hijack,并检查权限、auto-route 和必要时的 strict-route。
  5. 一次只改一个变量:先改浏览器 Secure DNS,仍异常再改 TUN;不要同时更换上游、Fake-IP 和 IPv6,否则无法判断是哪项变化起作用。
  6. 重载并重启:重载配置后,完全退出并重新打开浏览器或应用,清理该应用的 DNS 缓存,再进行同一条件下的复测。

如果改动后无法联网,立即恢复备份配置,关闭 TUN,回到系统代理模式。恢复连通后,再逐项开启功能。不要把“端口能监听”或“网页能打开”单独当作 DNS 已经接管的证明。

Mihomo 基础 DNS 配置:先用可核对的字段

下面是用于字段核对的基础示例,不是适用于所有网络的完整成品配置。上游地址、分流策略、代理组名称和局域网需求应按你的环境替换;如果你的客户端不支持某字段,应以该客户端内置 Mihomo 版本对应的文档为准。

dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 fake-ip-filter-mode: blacklist fake-ip-filter: - '*.lan' - '*.local' - 'time.windows.com' - 'stun.l.google.com' nameserver: - https://doh.pub/dns-query fallback: - tls://1.1.1.1 proxy-server-nameserver: - https://doh.pub/dns-query

官方文档说明,fake-ip-filter支持域名通配和域名集合;但排障时建议先写具体域名,避免把大范围规则误当成修复方案。局域网域名是否需要真实解析,应根据实际使用情况逐条添加。fake-ip-range是 Fake-IP 地址段,不是远端节点地址,也不能据此判断 DNS 查询已经通过代理。

如果你不需要 Fake-IP,或者某个应用与 Fake-IP 不兼容,可以只把 enhanced-mode 改为 redir-host 做对照测试。切换后要重启相关应用并清理缓存;如果问题随模式切换消失,说明故障可能与应用对虚拟地址的处理有关,而不能直接归因于“DNS 上游泄漏”。

TUN 模式下重点检查 dns-hijack 与 strict-route

启用 TUN 后,重点不是盲目增加 DNS 地址,而是确认 DNS 请求是否真正进入 Mihomo。官方文档将 dns-mode区分为 disabled、native 和 hijack;其中 hijack会进一步拦截发往其他接口 53 端口的请求,但文档也明确提示:Windows 和 macOS 无法自动劫持发往局域网的 DNS 请求,Android 开启 Private DNS 时也无法自动劫持。TUN 的 DNS 劫持限制

tun: enable: true auto-route: true auto-detect-interface: true strict-route: true dns-hijack: - any:53 - tcp://any:53

这段配置只表示要尝试接管 53 端口,不代表所有应用的 DNS 都会被拦截。Windows 上的 strict-route可用于减少系统多网卡 DNS 旁路,但官方同时提示它可能影响部分虚拟机或特殊网络软件,因此启用后应立即验证办公 VPN、虚拟机和局域网访问,异常时恢复为原配置。

如果 macOS 或 Windows 的系统解析器仍绕过 Mihomo,先不要继续扩大 fake-ip-filter。可暂时关闭 TUN,使用系统代理验证 Mihomo 基础 DNS,再查看系统 DNS 设置、浏览器 Secure DNS 和客户端日志。macOS 的系统解析器行为还可能受系统版本和网络接口影响,无法仅凭 YAML 字段推导出必然结果。

浏览器、Windows 与 Android 的旁路检查

浏览器 Secure DNS 或应用内 DoH

Chrome 官方说明,Secure DNS 开启后会加密 DNS 查询;自定义提供商不会按普通模式自动回落到未加密查询。排查时进入 Chrome 设置中的“隐私和安全”→“安全”→“使用安全 DNS”,先暂时关闭或改回系统提供商,再完全重启 Chrome。Chrome 官方 Secure DNS 说明如果关闭后检测结果恢复正常,说明浏览器原先可能使用了独立 DNS 路径;这不等于 Mihomo 配置本身一定错误。

Windows DNS over HTTPS 与 IPv6

Windows 的网络设置可以为 DNS 指定加密或未加密方式,并提供是否允许失败后回落到明文的选项。排查时记录当前 DNS 服务器、DoH 状态和 IPv6 状态;一次只关闭其中一个变量,然后重启网络连接再测试。Microsoft Windows 网络设置说明

Android Private DNS

Android 官方帮助显示,Private DNS 位于“设置”→“网络和互联网”→“私人 DNS”,可选择关闭、自动或指定提供商主机名;该功能只保护 DNS 问答,不会覆盖其他网络流量。排查 Mihomo TUN 时,如果 Private DNS 与 Mihomo 同时接管,先记录原设置,再临时切换到“自动”进行对照测试,完成后根据需要恢复。Android 官方 Private DNS 说明

如何确认修复,而不是只看检测站变绿

  1. 固定条件:保持同一网络、同一节点、同一浏览器和同一域名,避免切换 Wi-Fi、移动网络或代理组。
  2. 看 Mihomo 日志:访问测试域名时,确认是否出现 DNS 查询或对应的连接记录;如果日志完全没有相关请求,优先检查应用是否绕过系统代理或使用独立 DoH。
  3. 检查系统命令:Windows 可用 nslookup example.com观察系统当前解析器;macOS 或 Linux 可用 dig example.com。这些命令默认测试系统解析路径,不等于一定经过代理,因此只能作为旁证。
  4. 复测多个场景:分别测试浏览器、目标应用和一个局域网域名。浏览器正常不代表应用内 DNS 正常,外网域名正常也不代表局域网解析应当使用 Fake-IP。
  5. 检查 IPv6:如果关闭 IPv6 后异常消失,说明需要继续检查 IPv6 路由、TUN 接管和应用是否走独立 IPv6 DNS;不要仅凭这一现象断定是某个 DNS 地址导致泄漏。

更可靠的验收标准是三项同时满足:预期应用可以正常连接;Mihomo 日志或抓包能够证明查询进入预期路径;重复测试时解析器结果保持一致。若只满足其中一项,应标记为“部分修复”,继续定位旁路。

常见问题

1. DNSLeakTest 显示本地解析器,但网页访问正常,算不算泄漏?

从排查角度看,这表示至少有一次 DNS 查询使用了你未预期的解析器,但不能仅凭检测页面判断所有流量都泄漏。先关闭浏览器 Secure DNS,确认当前是系统代理还是 TUN,再查看 Mihomo 日志;网页能打开只能证明该次连接成功,不能证明 DNS 路径符合预期。

2. Fake-IP 能不能直接解决 Mihomo DNS 泄漏?

不能直接这样判断。Fake-IP 是 Mihomo 的 DNS 处理模式,不等于所有应用查询都会自动进入 Mihomo。若浏览器、应用或系统使用独立 DoH、Private DNS 或 IPv6 旁路,仍可能绕过。应先确认接管入口,再比较 fake-ip 与 redir-host。

3. 为什么开启 TUN 后反而不能联网?

常见原因包括 TUN 权限不足、strict-route影响特殊网络、DNS 劫持与系统 Private DNS 冲突,或配置中的接口和地址不适合当前系统。先关闭 TUN 恢复系统代理,确认基础连接,再只启用 TUN、重启并查看日志;不要同时改 DNS、MTU 和路由。

4. fake-ip-filter 应该写哪些域名?

先写确实需要真实地址的具体域名,例如局域网后缀或某个时间同步、连通性检测域名。不要直接添加过大的 stun.*.* 等泛化规则;每增加一条都要验证对应应用是否恢复,并保留删除该条的回滚方式。

5. 关闭 Android Private DNS 后一定能修好吗?

不一定。它只是排除一个可能的 DNS 接管者。若仍异常,还要检查 Mihomo 的 TUN 权限、dns-hijack、应用内 DNS 和 IPv6。修复后应在同一网络条件下重新启动 Mihomo 和目标应用,再重复检测。

本文是 96110.buzz 本地视觉备份整理的第三方使用指南,不代表任何客户端或品牌官方。配置字段和菜单会随客户端内置 Mihomo 版本变化,实际操作前请以对应版本文档和页面显示为准。

推荐:如果你已确认是线路或跨境办公连接问题,可了解边界云加速的相关办公网络方案,再根据自己的系统和客户端逐项核验。

常见问题

DNSLeakTest 显示本地解析器,但网页访问正常,算不算泄漏?

这说明至少有一次查询使用了未预期的解析器,但不能代表所有流量都如此。先检查浏览器 Secure DNS、应用内 DoH、系统代理与 TUN,再看 Mihomo 日志。

Fake-IP 能直接解决 Mihomo DNS 泄漏吗?

不能直接保证。Fake-IP 只是 DNS 处理模式,浏览器、应用、Private DNS 或 IPv6 仍可能绕过 Mihomo。

开启 TUN 后不能联网怎么办?

先关闭 TUN 恢复系统代理,确认基础连接,再单独启用 TUN、dns-hijack 和 strict-route,并逐项查看日志和权限。

fake-ip-filter 应该写哪些域名?

优先写具体局域网、时间同步或连通性检测域名,避免直接使用过大的通配符;每条规则都应可单独删除和复测。

相关阅读

参考资料

  1. Mihomo 官方 DNS 配置说明
  2. Mihomo 官方 TUN 配置与 DNS 劫持说明
  3. Google Chrome 官方 Secure DNS 说明
  4. Microsoft 官方 Windows 网络与 DNS 设置说明
  5. Android 官方高级网络设置与 Private DNS 说明