GLaDOS Network

Mihomo DNS 设置与连接失败怎么办?

更新于 2026-10-31 · glados.lat

简答:Mihomo DNS 连接失败时,不要先反复更换 DNS:先确认失败的是订阅域名、节点域名还是目标网站。最快的排查顺序是:暂时关闭 TUN、固定一个节点、使用最小 DNS 配置并重载配置,再结合日志和 nslookup 判断是解析、节点还是路由问题。本文只覆盖 Mihomo 的 DNS 与连接排查,不代表所有客户端的菜单路径都相同。

定义:Mihomo DNS 设置是由内核负责域名解析、Fake-IP 或 redir-host 处理,以及为代理节点和直连流量选择解析服务器的一组配置。

先做三步:关闭 TUN、固定节点、确认失败对象

如果你现在无法连接,先不要同时修改 DNS、规则、TUN 和代理组。按下面顺序做一次最小化测试,目标是把问题缩小到 DNS、节点或路由其中一层。

  1. 暂时关闭 TUN:保留普通系统代理或客户端代理模式,避免 TUN、DNS 劫持和系统路由同时影响结果。Mihomo 文档说明,TUN 的 auto-route、dns-mode、dns-hijack 和 strict-route 会共同影响流量与 DNS 处理。查看 Mihomo TUN 配置说明
  2. 固定一个节点:不要使用自动选择、负载均衡或故障转移,避免测试期间节点不断变化。
  3. 记录失败的域名:分别判断是订阅地址打不开、节点的 server 域名无法解析,还是打开某个目标网站时失败。三者的处理路径不同。

停止条件:如果关闭 TUN 后普通代理可以访问,优先检查 TUN、DNS 劫持或系统路由;如果仍然失败,继续看日志中的具体域名和错误文字。一次浏览器访问成功,只能说明该次请求可用,不能证明所有域名和节点都正常。

Mihomo DNS 的最小配置与字段区别

先备份当前配置,再只替换 DNS 段进行测试。下面是结构示例,不保证适用于每个客户端的覆写页面,也不应覆盖订阅中已有的规则、代理和端口配置。

dns: enable: true ipv6: false enhanced-mode: redir-host default-nameserver: - 223.5.5.5 nameserver: - https://doh.pub/dns-query proxy-server-nameserver: - https://doh.pub/dns-query

default-nameserver 用于解析 DNS 服务器自身的域名,通常应填写 IP 或可用的加密 DNS;nameserver 是普通域名解析使用的默认服务器;proxy-server-nameserver 只用于解析代理节点域名。Mihomo 官方文档明确区分了这几个字段,不能因为普通网站能解析,就推断节点域名也一定能解析。查看 Mihomo DNS 字段说明

enhanced-mode 支持 fake-ip 和 redir-host。排障时建议先使用较少变量的配置;如果恢复连接,再单独测试 Fake-IP。使用 Fake-IP 时,局域网域名、路由器管理地址或特定应用可能需要加入 fake-ip-filter,不要一开始就大范围修改过滤列表。Mihomo 文档也提醒,respect-rules 会让 DNS 请求遵循路由规则,此时通常需要配置 proxy-server-nameserver,否则可能出现 DNS 请求依赖代理、代理域名又依赖 DNS 的循环问题。查看 DNS 解析流程与代理节点解析说明

修改后必须执行客户端提供的重载或重新载入配置,并确认当前激活的 Profile 确实是刚修改的配置。仅保存文件、看到端口监听或看到客户端显示“已连接”,都不能单独证明 DNS 配置已经生效。

按错误文字分流:解析失败不等于节点故障

现象或日志优先检查下一步
dns resolve failed失败域名、DNS 服务器可达性、当前 Profile先测试同一域名的系统解析,再重载最小 DNS 配置
no such host域名是否写错、订阅或节点地址是否过期、解析路径记录完整域名,区分订阅域名、节点域名和目标网站
i/o timeoutDNS 请求是否超时、TUN 路由、防火墙或网络出口关闭 TUN 后重试,并用系统工具单独测试 DNS
connection refused目标端口是否拒绝连接、节点协议或本地监听不要只改 DNS,继续检查节点配置与客户端日志

这些错误只能作为优先检查线索,不能单独证明故障原因。Mihomo 的 DNS 解析流程会根据域名匹配、直连或代理规则选择不同路径,因此同一设备上“普通网站能打开”并不能证明节点域名解析正常。查看 Mihomo DNS 解析流程图

三类域名分别怎么查

  1. 订阅域名失败:先确认浏览器或客户端更新订阅时使用的域名能否解析。若订阅更新失败但旧节点仍可用,问题可能在订阅地址、订阅服务或本机 DNS;不要直接据此判断所有节点失效。
  2. 节点域名失败:从日志中找出节点的 server 域名,再用系统 DNS 查询。若普通目标网站可以解析,但节点域名失败,优先检查 proxy-server-nameserver、节点域名本身和当前配置是否被客户端覆写。
  3. 目标网站失败:如果节点可连接,只有某个目标域名打不开,应继续检查规则、直连或代理分流、Fake-IP 缓存以及目标站点本身。不要把单个网站失败直接归因于 DNS。

Windows 可使用 nslookup example.com 查看系统解析结果,也可以指定 DNS 服务器进行对照。微软文档说明,nslookup 不使用客户端 DNS 缓存,适合用于单独测试配置的 DNS 解析路径;但它不等同于 Mihomo 内核实际采用的解析路径。查看 Windows DNS 客户端排查说明

TUN、Fake-IP 与私人 DNS 的边界

开启 TUN 后,DNS 问题可能来自系统路由而不是 DNS 字段本身。Mihomo 文档说明:dns-mode: hijack 会在设置 TUN 地址为系统 DNS 的基础上,进一步拦截发往其他网卡 53 端口的请求;Windows 使用时通常还涉及 strict-route,Linux 则涉及 auto-redirect。在 macOS 和 Windows 上,发往局域网的 DNS 请求不能被自动劫持;Android 开启私人 DNS 时,也可能无法自动劫持 DNS 请求。查看 TUN 的 DNS 劫持与严格路由说明

  • Windows:先关闭 TUN 做普通代理测试;如果普通代理正常、TUN 失败,再检查管理员权限、防火墙、strict-route 和 DNS 泄漏防护。
  • macOS:不要假设局域网 DNS 请求会被自动接管;先区分普通代理和 TUN 模式的差异。
  • Android:检查系统“私人 DNS”是否开启;Mihomo 文档明确指出,这会影响 DNS 劫持。关闭后应重新测试,完成排查再决定是否恢复。

MTU 不应作为 DNS 故障的第一修改项。官方文档将 MTU 描述为会影响极限状态下的速率,一般用户建议保持默认;只有在基础解析和代理连接已经正常、且出现特定网络分片或大包问题时,才适合单独测试。

恢复配置、清理缓存与回滚

  1. 保存原始配置或导出当前 Profile,记录修改前的 DNS、TUN 和 Fake-IP 设置。
  2. 每次只改一个变量:先关闭 TUN,再测试 DNS;确认 DNS 后,再恢复 TUN;最后再测试 Fake-IP、规则和自定义策略。
  3. 每次修改后执行重载,确认客户端显示的激活配置、日志时间和 DNS 设置已经变化。
  4. 如果恢复 TUN 后再次失败,回滚到关闭 TUN 时可用的配置,不要同时更换节点、DNS 和规则。
  5. 不要公开订阅地址、UUID、节点域名或包含完整节点信息的日志;对外求助时应先打码。

最终验证至少包括:一个已知可解析域名、一个实际通过代理访问的目标、一个关闭 TUN 后的对照结果。端口监听不等于代理出站,客户端显示已连接也不等于网页请求一定成功。

相关使用指南

如果 DNS 排查后发现问题并非解析层,可以继续按单一故障阅读本站相关指南:Mihomo Windows 节点为空适合检查订阅与 Provider;Mihomo Windows 导入订阅适合确认配置是否真正启用;若已经显示连接成功但网页打不开,可查看代理连接成功但打不开网页。

常见问题

Mihomo 只显示 dns resolve failed,应该先改哪个字段?

先不要直接改字段。先从日志确认失败的是订阅域名、节点域名还是目标网站,再检查当前 Profile 是否已生效。若失败的是节点域名,可重点核对 proxy-server-nameserver;若是普通网站,则继续检查 nameserver、规则和 TUN。

Mihomo 使用 Fake-IP 还是 redir-host?

排障初期建议先使用较少变量的配置,并记录原设置。Fake-IP 与 redir-host 都是 Mihomo 支持的增强模式,实际兼容性还取决于客户端、规则和应用;恢复基础连接后,再单独测试 Fake-IP 与 fake-ip-filter。

开启 TUN 后不能上网,但关闭 TUN 正常,怎么办?

优先检查 TUN 的 auto-route、dns-mode、dns-hijack 和 strict-route,并确认客户端有必要的系统权限。Android 还要检查私人 DNS,Windows 则要注意严格路由和防火墙影响。每次只改一个变量,确认结果后再恢复其他设置。

nslookup 能解析,为什么 Mihomo 仍然连接失败?

nslookup 主要反映系统 DNS 查询结果,不等同于 Mihomo 内核实际使用的 nameserver、proxy-server-nameserver、规则或 Fake-IP 路径。此时应查看 Mihomo 日志,并分别测试关闭 TUN、固定节点和最小 DNS 配置。

相关阅读

参考资料

  1. Mihomo 官方文档:DNS 配置
  2. Mihomo 官方文档:DNS 解析流程
  3. Mihomo 官方文档:TUN 配置
  4. Microsoft Learn:DNS 客户端排查
  5. wiki.metacubex.one
  6. wiki.metacubex.one