COCODUCK - 国际网络VPN加速服务提供商

Mihomo DNS 设置怎么配置:模板、Fake-IP 与排查方法

更新于 2026-10-24 · cocoduck.buzz

简答:Mihomo DNS 主要写在配置文件的 dns 段。新手可先用 redir-host 和基础 nameserver,确认核心能启动、域名能解析后,再按需启用 Fake-IP、nameserver-policy 或 TUN 的 DNS 劫持。

定义:Mihomo DNS 配置是通过 YAML 文件中的 dns 字段,指定解析服务、解析模式、域名分流和系统 DNS 接管方式。

先复制最小配置,再逐项确认是否生效

本文是与 Mihomo 项目及开发者无隶属关系的第三方使用指南。Mihomo 的 DNS 配置通常放在配置文件顶层的 dns: 节点下;具体编辑入口会因客户端不同而变化,客户端界面路径未在本文核实,优先使用客户端提供的配置文件编辑、覆写或配置查看功能。

先备份当前配置,只增加下面这一段,不要同时修改代理组、规则和 TUN。官方文档列出的基础字段包括 enable、listen、ipv6、enhanced-mode、nameserver 和 fallback。mihomo 官方 DNS 配置文档

dns:
  enable: true
  listen: 0.0.0.0:1053
  ipv6: false
  enhanced-mode: redir-host
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
  fallback:
    - tls://1.1.1.1
    - tls://8.8.4.4
  • 适用目的:先确认 Mihomo 可以启动,并具备独立 DNS 监听服务。
  • 判定正常:配置加载不报 YAML 错误,核心保持运行,客户端日志没有 DNS 初始化失败。
  • 注意:这里的域名解析服务仅作为示例,实际可用性和访问路径需要在你的网络环境中自行验证。

如果配置文件已有 dns:,不要再复制第二个同级字段;应在原有节点内修改。YAML 对缩进敏感,建议统一使用两个空格,不要混用 Tab。官方示例同样使用层级缩进表示字段关系。MetaCubeX mihomo 配置示例

这些 DNS 字段分别负责什么

字段作用新手建议异常时看什么
enable是否启用 Mihomo 内置 DNS;关闭时会使用系统 DNS。需要由 Mihomo 处理 DNS 时设为 true。设为 false 后,系统解析可能绕过 Mihomo。
listenDNS 服务监听地址和端口,支持 UDP、TCP。先使用未被其他程序占用的端口,例如 0.0.0.0:1053。若核心启动失败,检查端口是否已被占用。
ipv6是否解析 IPv6;设为 false 时,AAAA 查询返回空解析。没有验证 IPv6 链路前,可先保持关闭。只看 IPv4,不代表 IPv6 路径已经正常。
enhanced-mode选择 fake-ip 或 redir-host 两种 DNS 处理模式。先用 redir-host 验证基础连通性。切换模式后分别测试局域网、应用和域名解析。
nameserver默认域名解析服务器。先配置一到两个可验证的 DNS 地址。检查 DNS 地址格式和网络是否能访问。
fallback备用解析服务器;配置后会配合 fallback 过滤逻辑使用。基础配置正常后再增加。检查是否因过滤条件导致解析结果与预期不同。
proxy-server-nameserver只用于解析代理节点域名。节点地址是域名且经常解析失败时再配置。查看节点域名是否能先被解析。
direct-nameserver用于直连出口的域名解析。存在直连解析需求时再单独指定。检查直连域名是否被错误地交给其他解析器。

以上字段职责和可用值以 Mihomo DNS 官方文档为准;其中 enhanced-mode 的可选值是 fake-ip 和 redir-host,官方文档还说明了各类 nameserver 的使用范围。DNS configuration - mihomo docs

Fake-IP 和 redir-host 怎么选

redir-host 会保留较直观的真实解析结果,适合先排查 DNS、局域网设备、企业内网、NAS、游戏或部分依赖真实地址的应用。它的优点是故障定位更直观,缺点是需要结合规则和流量路径处理 DNS。

fake-ip 会为域名分配 Fake-IP 地址,常用于需要让 Mihomo 根据域名识别连接的场景。它可能让部分局域网、内网、游戏或特殊应用出现兼容性问题,因此不建议在尚未确认基础 DNS 正常时直接切换。官方文档说明,Fake-IP 相关配置包括 fake-ip-range、fake-ip-filter 和 fake-ip-filter-mode。mihomo DNS 字段说明

场景优先尝试原因
第一次配置 DNSredir-host变量较少,便于确认是 DNS 还是规则问题。
需要域名识别和分流fake-ip便于核心保留域名与连接的对应关系。
访问局域网设备redir-host 或增加过滤避免局域网域名被错误映射为 Fake-IP。
切换 Fake-IP 后应用异常临时切回 redir-host用单变量对照判断是否由 Fake-IP 引起。

如果确实需要 Fake-IP,可在确认核心能启动后再加入:

dns:
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter-mode: blacklist
  fake-ip-filter:
    - '*.lan'
    - '*.local'

示例中的过滤域名需要按你的局域网实际域名调整,不能把它当作适用于所有网络的完整清单。

nameserver、fallback 和域名分流怎么组合

可以把解析链路简单理解为:default-nameserver 负责解析 DNS 服务自身的域名,nameserver 负责常规域名解析,fallback 提供备用解析路径,nameserver-policy 则按域名或规则集合指定解析服务器。官方文档明确区分了这些字段的职责。mihomo DNS configuration

如果 DNS 服务使用 IP 地址,例如普通 UDP、DoT 的 IP 或直接可访问的地址,通常不需要为它额外解决域名;如果使用 DoH 域名,则要注意 DNS 服务域名本身不能依赖一个尚未建立的代理解析链路。

dns:
  enable: true
  default-nameserver:
    - 223.5.5.5
  nameserver:
    - https://doh.pub/dns-query
  fallback:
    - tls://1.1.1.1
  nameserver-policy:
    '+.lan':
      - system
    'rule-set:cn':
      - https://doh.pub/dns-query

上面的 nameserver-policy 只是结构示例。rule-set:cn 只有在配置中确实存在对应规则集合时才有意义;如果没有该规则集合,应删除这一项,避免把未定义的名称当成可用配置。

proxy-server-nameserver 只解决代理节点域名,direct-nameserver 只解决直连出口域名。不要为了“配置更完整”而盲目同时添加它们;先确认普通 nameserver 已能工作,再根据日志中出现的节点解析或直连解析问题单独增加。

TUN 和 DNS 劫持要不要一起开

只修改顶层 dns: 并不会自动接管所有系统应用的 DNS 请求。需要处理系统流量时,通常还要配置顶层 tun:,但这属于独立变量,建议在基础 DNS 已经验证成功后再开启。Mihomo 官方 TUN 文档列出了 dns-mode、dns-hijack 和 strict-route 的关系。TUN - mihomo docs

tun:
  enable: true
  auto-route: true
  strict-route: true
  dns-hijack:
    - any:53
    - tcp://any:53
  • 先确认适用性:这是系统级网络配置,可能影响其他网卡、虚拟机、局域网设备和企业网络。
  • Windows:官方文档说明,strict-route 可用于阻止 Windows 多网卡 DNS 解析造成的泄漏,但也可能使部分应用异常。
  • macOS 和 Windows:官方文档说明,不能自动劫持发送到本地网络的 DNS 请求。
  • Android:如果系统 Private DNS 已启用,DNS 请求可能无法被自动劫持;官方文档明确提示这一限制。

如果开启 TUN 后“能打开网页但局域网设备失效”,先关闭 dns-hijack 或临时停用 TUN,确认问题是否随开关变化,再根据实际需求增加局域网排除项。不要同时修改 MTU、规则和 DNS,否则很难判断是哪一项造成变化。

配置不生效时,按这个顺序验收

  1. 检查 YAML:确认只有一个顶层 dns:,字段名称使用半角冒号,列表项前有短横线,缩进统一。若核心直接退出,先回滚到备份文件。
  2. 检查监听端口:确认 listen 的端口未被其他 DNS 服务占用。若修改端口后核心能启动,说明原端口可能存在冲突,但不能仅凭这一点断定具体占用程序。
  3. 检查解析:在客户端日志或 DNS 面板中查看是否出现查询记录;再用系统工具查询一个常见域名。Windows 可运行 nslookup example.com 127.0.0.1,其中 example.com 仅为示例域名,请替换为你要测试的域名;若监听端口不是 53,应把命令中的 DNS 地址改成实际监听地址和端口。
  4. 检查代理节点域名:如果普通域名能解析,但订阅节点连接失败,单独检查节点域名是否需要 proxy-server-nameserver。该字段只用于代理节点域名解析,不能替代普通 nameserver。
  5. 检查直连域名:如果只有直连规则失败,再考虑 direct-nameserver;不要在普通 DNS 尚未验证时直接增加多个解析出口。
  6. 检查系统是否绕过:如果浏览器能访问但某个应用仍无法连接,先关闭浏览器内置 DoH、系统 Private DNS 或其他独立 DNS 设置,再测试 TUN 和 dns-hijack。
  7. 单变量回退:依次把 fake-ip 改回 redir-host、关闭 TUN、删除 fallback 和策略分流。每次只改一项,并记录“启动、解析、节点连接、局域网访问”四项结果。

DNS 类型的写法可以是 UDP、TCP、DoT、DoH、DoQ 或 system 等,具体格式应以 Mihomo 官方 DNS 类型文档为准。mihomo 支持的 DNS 类型

一份可直接套用的排查记录表

检查项操作正常表现异常后的下一步
核心启动重新加载配置没有 YAML 或 DNS 初始化错误回滚最近一次修改,检查缩进和字段拼写
DNS 监听查看客户端 DNS 状态或监听信息监听地址与端口存在更换未占用端口并重新加载
普通域名使用 nslookup 查询测试域名返回有效地址或符合预期的解析结果检查 nameserver 地址和网络可达性
代理节点连接一个节点并查看日志节点域名能够完成解析按需增加 proxy-server-nameserver
局域网访问路由器、NAS 或本地服务局域网地址可访问暂时切回 redir-host,再检查 Fake-IP 过滤
系统接管开启或关闭 TUN 做对照系统应用行为符合预期检查 dns-hijack、Private DNS 和浏览器独立 DoH

常见问题

Mihomo 的 DNS 配置应该写在哪里?

写在配置文件顶层的 dns: 节点下。如果客户端使用订阅配置、覆写配置或独立配置文件,具体入口会因客户端不同而变化,需在客户端的配置编辑或覆写功能中确认。不要重复添加两个同级 dns:。

Mihomo DNS 设置后核心无法启动怎么办?

先恢复备份,再检查 YAML 缩进、冒号、列表短横线、字段拼写和端口占用。每次只恢复一小段配置,确认核心能启动后再逐项增加。

Fake-IP 和 redir-host 应该选哪个?

首次配置或需要排查局域网、游戏、NAS、企业内网时,建议先用 redir-host。确认基础 DNS 和规则正常后,再按实际需求测试 fake-ip,并为局域网域名配置过滤。

配置了 nameserver,为什么代理节点仍然连不上?

普通域名解析正常不代表代理节点域名一定能解析。查看日志确认失败对象,如果问题只发生在节点域名,可按需配置 proxy-server-nameserver;同时检查节点地址是否为域名、端口是否正确。

开启 TUN 后 DNS 还是可能绕过吗?

可能。不同系统、网卡和应用的 DNS 行为不同;Android 的 Private DNS、浏览器独立 DoH、本地网络 DNS 以及系统多网卡都可能影响结果。应分别对照 TUN、dns-hijack、Private DNS 和浏览器设置。

相关阅读

参考资料

  1. DNS配置 - mihomo 官方文档
  2. DNS configuration - mihomo docs
  3. TUN - mihomo docs
  4. DNS type - mihomo docs
  5. Configuring example · MetaCubeX/mihomo Wiki