CreamData

Mihomo DNS 配置教程:从最小配置到逐层排查

更新于 2026-10-31 · naiyovpn.top

简答:Mihomo DNS 配置主要写在当前配置文件的 dns 字段中。新手先启用 enable、选择 enhanced-mode、填写 default-nameserver 和 nameserver;如果使用 TUN,再按需配置 dns-hijack。保存后不要只看“已连接”,还要分别验证配置是否加载、DNS 是否被接管、域名是否按预期解析以及最终连接是否成功。

定义:Mihomo DNS 配置是由 dns 字段控制的域名解析模块,用于指定上游 DNS、Fake-IP 或 redir-host 模式、节点域名解析和按域名选择解析路径。

先试这份最小配置:只改 dns,不引入未定义规则

本文为第三方使用指南,适用于已经安装 Mihomo 或使用 Mihomo 内核前端的读者。配置字段可能随安装版本变化,复制前应以当前版本的 --help、配置校验入口和对应版本官方 DNS 文档为准。

先备份当前配置,再在配置文件顶层加入以下内容。这个示例不依赖 rule-set、geosite 或额外代理组,适合先确认 DNS 模块能否启动。

dns:
  enable: true
  ipv6: false
  enhanced-mode: redir-host
  default-nameserver:
    - 1.1.1.1
    - 8.8.8.8
  nameserver:
    - https://1.1.1.1/dns-query
    - https://dns.google/dns-query
  1. 备份:复制当前配置文件,保留原文件名和位置。
  2. 修改:确认 dns: 与顶层配置对齐,不要把它缩进到 proxy-groups 或其他字段下面。
  3. 校验:使用当前前端提供的配置检查功能;如果直接运行 Mihomo,则先查看当前版本支持的命令参数,不要套用其他版本命令。
  4. 重载:重新载入配置或重启 Mihomo,观察日志中是否出现 YAML、DNS 上游或字段解析错误。
  5. 验证:先用浏览器访问一个普通域名,再用系统的 nslookup 或 macOS/Linux 的 dig 查询;两者都成功,才说明基础解析路径暂时可用。

停止条件是:配置校验失败、Mihomo 未能重新载入,或日志明确提示未知字段。此时先回滚到备份,不要继续叠加 fallback、Fake-IP 和 TUN 参数。

字段怎么选:nameserver、节点解析与直连解析不是一回事

default-nameserver 用于解析 DNS 服务器自身的域名,官方文档说明这里应使用 IP 地址,也可以使用加密 DNS;nameserver 是普通域名的主要解析服务器;fallback 是备用解析路径,是否需要取决于你的网络和分流需求。具体字段定义可查看Mihomo DNS 配置说明。

字段作用新手建议
enable启用 Mihomo DNS 模块;关闭后使用系统 DNS先设为 true
listen让 Mihomo 在指定地址和端口监听 DNS 请求只有需要被其他设备或 TUN 接管时再配置
default-nameserver解析 DoH、DoT 等上游服务器地址优先填可直接访问的 IP 或加密 DNS
nameserver主要域名解析上游先配置一到两个稳定上游
proxy-server-nameserver专门解析代理节点域名节点域名解析失败时再加
direct-nameserver直连出口使用的解析服务器存在直连分流且需要区分解析路径时再加
nameserver-policy按域名或规则匹配指定解析服务器确认基础配置稳定后再使用

如果订阅中的节点地址是域名,普通网页可以解析但节点仍无法连接,可能是节点域名使用了不同解析路径。此时可尝试增加独立的 proxy-server-nameserver,并观察日志是否从“节点域名解析失败”变为能够发起连接。该字段只负责节点域名解析,不代表节点本身一定可用。

dns:
  enable: true
  default-nameserver:
    - 1.1.1.1
  nameserver:
    - https://1.1.1.1/dns-query
  proxy-server-nameserver:
    - https://1.1.1.1/dns-query

这里的验证边界是:节点域名能够解析,只能证明 DNS 解析阶段通过;端口、协议、认证、路由和远端服务仍需单独排查。

Fake-IP 和 redir-host 怎么选

Mihomo 官方文档列出的 enhanced-mode 可选值是 fake-ip 和 redir-host,默认值为 redir-host。两者都属于 DNS 处理模式,但排查方式不同。

模式工作特点适合情况常见注意点
redir-host返回真实解析地址首次配置、兼容性优先、需要观察真实 IP部分分流或域名识别场景可能不如 Fake-IP 直接
fake-ip为域名返回 Fake-IP,并由 Mihomo 维护映射TUN 或需要更完整域名接管的场景局域网、NAS、打印机、本地域名和部分应用可能需要加入过滤

建议先用 redir-host 验证基础解析和连接,再切换到 fake-ip。如果切换后局域网设备、打印机或 NAS 无法访问,可先恢复 redir-host;若确认问题只在 Fake-IP,再按域名补充 fake-ip-filter,不要一开始把大量域名加入过滤列表。

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-filter:
    - '*.lan'
    - '*.local'
    - 'localhost'

fake-ip-filter 的匹配规则和模式说明以官方 DNS 字段文档为准。过滤后应重新测试局域网地址、普通网页和需要代理的域名,确认变化来自 Fake-IP 而不是其他配置。

桌面代理、TUN 和路由器场景的配置差异

DNS 配置是否真正接管请求,不只取决于 dns.enable。还要看流量从哪里进入 Mihomo,以及系统或应用是否绕过了它。

仅使用系统代理

适合先做基础验证。先启用 dns 模块并保持 redir-host,在前端开启系统代理,然后测试浏览器和命令行工具。浏览器能打开网页不代表所有应用都使用系统代理,也不代表 DNS 请求全部经过 Mihomo。

使用 TUN

TUN 用于捕获系统流量,通常还会配合 DNS 接管。官方 TUN 文档说明,dns-mode 可选 disabled、native 和 hijack;dns-hijack 可将匹配的 DNS 请求导入内部 DNS 模块,但 Windows、macOS 和 Android 对本地网络 DNS、系统设置及 Private DNS 存在限制。详见Mihomo TUN 官方文档。

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

这段只适合在确认当前版本支持相应字段、且前端有权限启用 TUN 时使用。若开启后断网,立即关闭 TUN 或恢复备份配置,再单独检查路由、系统防火墙和 DNS 模式。

路由器或 OpenWrt

路由器场景需要额外确认 Mihomo 的监听地址、局域网访问权限、防火墙和端口转发。listen 只表示 DNS 服务监听,不能单独证明局域网设备已经把 DNS 请求发送到 Mihomo;还要在客户端或路由器上检查实际 DNS 地址。

DNS 不生效时,按四层结果定位

不要把“配置文件保存成功”“端口正在监听”“浏览器能打开网页”和“DNS 已被 Mihomo 接管”混为一个结论。按下面顺序排查,每层失败就停在当前层。

验证层级怎么查结果如何解释
配置加载前端配置校验、重载日志、当前配置预览失败说明 YAML、字段或版本兼容有问题
服务监听查看前端日志或系统端口监听信息监听存在不等于请求已经进入 Mihomo
域名解析使用 nslookup 或 dig 查询,并对照 Mihomo 日志能返回地址不等于使用了预期上游
最终连接分别测试直连域名、代理域名和节点域名连接失败可能来自路由、端口、协议或节点本身
  • 配置报错:删除最近新增的字段,保留最小配置,再逐项恢复。
  • 节点域名失败:检查 proxy-server-nameserver,同时查看节点地址是否为域名、端口是否可达。
  • 局域网异常:先切回 redir-host,再检查 fake-ip-filter 和 TUN 的 DNS 接管方式。
  • 浏览器正常但其他应用失败:检查应用是否使用自带 DNS、DoH 或独立代理设置;系统代理不一定覆盖所有应用。
  • DNS 请求绕过 Mihomo:检查 TUN 是否启用、dns-hijack 是否适用于当前系统,以及浏览器内置安全 DNS 是否另行启用。

如果需要抓包或提交日志,先删除订阅地址、节点密码、访问令牌和个人 IP 等敏感信息。无法确认请求是否经过 Mihomo 时,应写成“尚未核实”,不要仅凭一次网页访问下结论。

回滚与维护:先保证能恢复,再做高级分流

DNS 配置适合按变量逐项修改。每次只改变一个因素,例如先切换 enhanced-mode,再增加 proxy-server-nameserver,最后才考虑 fallback 或 nameserver-policy。

  1. 保留最近一次可用配置和当前测试配置。
  2. 记录 Mihomo 版本、前端名称、系统、是否启用 TUN 和修改过的字段。
  3. 出现断网时先关闭 TUN 或恢复备份,不要同时更改 DNS、规则和节点。
  4. 恢复后重新验证配置加载、DNS 请求路径和最终连接。

DoH、DoT、DoQ 和普通 UDP 都是 Mihomo 文档支持的 DNS 类型,具体写法可参考官方 DNS 类型说明。选择上游时应优先考虑当前网络能否稳定访问、是否需要加密传输、是否需要 IPv6,以及是否与直连和代理分流目标一致;不要把某个上游地址的单次成功解析当作长期可用性结论。

结论:新手的最短路径

先备份配置,使用 enable: true、default-nameserver、nameserver 和 enhanced-mode: redir-host 完成基础验证;普通解析成功后,再根据节点域名、TUN、局域网或分流需求增加 proxy-server-nameserver、fake-ip-filter 和 nameserver-policy。每次修改后都要分别确认配置已加载、请求已被接管、域名解析符合预期,以及最终连接没有其他故障。

常见问题

Mihomo DNS 配置应该写在哪里?

通常写在当前生效配置文件的顶层 dns 字段中,而不是代理组、规则或节点字段内部。使用前端时,应先确认当前 Profile 或配置覆写位置,因为不同前端的入口名称可能不同。

Mihomo 的 Fake-IP 和 redir-host 哪个更好?

没有对所有环境都更好的固定答案。首次配置和兼容性排查建议先用 redir-host;需要更完整的域名接管或使用 TUN 时,再测试 fake-ip,并为局域网、本地域名和异常应用逐项设置过滤。

为什么开启 DNS 后,节点还是连接失败?

DNS 模块只负责解析,不负责保证节点端口、协议、认证和线路可用。若普通域名正常而节点域名失败,可检查 proxy-server-nameserver;若节点域名已解析仍连接失败,应继续查看端口、协议和路由日志。

开启 TUN 后 DNS 反而不稳定怎么办?

先关闭 TUN或恢复备份,确认基础 DNS 配置可以工作,再检查 dns-mode、dns-hijack、auto-route、系统防火墙以及浏览器或 Android Private DNS 是否绕过 Mihomo。

相关阅读

参考资料

  1. Mihomo 官方 DNS 配置文档
  2. Mihomo 官方 DNS 类型说明
  3. Mihomo 官方 TUN 配置文档
  4. Mihomo 官方 DNS 解析流程说明