← 返回 天枢互联 | 简单易用 与世界互联 首页

Mihomo DNS怎么设置?从基础配置到连接排查

更新于 2026-11-03 · tianshuhl.shop

简答:Mihomo DNS设置的核心是:把dns放在配置文件顶层,先启用基础解析,再根据是否使用TUN选择Fake-IP和DNS劫持。建议先备份并合并下面的最小配置,重载后查看运行配置与日志;如果仍打不开网页,再按节点域名、端口、Fake-IP和系统DoH逐项排查。

定义:Mihomo DNS配置是内核对域名查询、上游DNS、Fake-IP或redir-host返回方式,以及TUN流量接管规则的统一设置。

先做这三步:备份、合并、确认运行配置

本站是第三方使用指南站,不代表任何客户端或订阅服务的官方页面。本文按 2026-11-03 检索到的 Mihomo 文档整理,字段是否可用仍取决于当前内核版本、客户端合并方式和配置上下文。

  1. 备份:先复制当前配置文件,保留原文件作为回滚版本。不要直接用一段DNS配置覆盖整份订阅配置。
  2. 合并:把下面的dns:段放在YAML顶层,与proxies:、proxy-groups:、rules:保持同级。已有dns:段时,应逐项合并,而不是重复写两个顶层dns:。
  3. 应用:使用客户端提供的配置校验、重载或重启功能。成功后查看客户端展示的运行配置、DNS状态或日志,确认不是只修改了订阅原文。

官方文档将dns.enable定义为是否启用 Mihomo DNS;关闭时会使用系统DNS。Mihomo DNS配置文档同时说明,listen是DNS服务监听地址,支持UDP和TCP。

现象先检查处理方向
配置加载失败缩进、重复顶层字段、字段拼写恢复备份,逐项加回配置
节点域名解析失败default-nameserver和proxy-server-nameserver先使用纯IP形式的引导DNS,再检查节点域名解析
网页打不开Fake-IP、规则、TUN和浏览器DoH先关闭TUN或切换redir-host做对照测试
局域网设备异常fake-ip-filter、局域网网段和监听地址为局域网域名保留真实IP,避免开放监听

基础DNS配置:先用保守模板验证

如果你只是想让 Mihomo 接管域名解析,可以先从以下片段开始。它没有把监听地址绑定到所有网卡,适合先在本机验证;端口是否被客户端占用,要以当前运行环境为准。

dns:
  enable: true
  listen: 127.0.0.1:1053
  default-nameserver:
    - 223.5.5.5
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
  enhanced-mode: redir-host

default-nameserver用于解析其他DNS服务器的域名。官方说明要求它可以使用IP,也可以使用加密DNS;为了减少引导解析依赖,初始配置优先使用纯IP地址。nameserver是常规域名解析服务器,支持UDP、TCP、DoT、DoH和DoQ等类型,具体格式以Mihomo DNS类型文档为准。

这里选择127.0.0.1:1053只是较保守的本机监听示例,不等于所有客户端都必须使用这个端口。如果客户端已经占用1053,或者客户端要求由界面生成DNS监听配置,应改用未占用端口或按客户端界面设置。不要把0.0.0.0:1053当作新手默认值,因为它可能让其他网络接口也能访问该DNS服务;监听范围和防火墙影响需要单独核对。

如果已有dns:段,不要机械复制整段。保留已有的nameserver-policy、proxy-server-nameserver等字段,再根据需要补充缺少项。一个配置文件中重复的同级键可能导致后面的内容覆盖前面的内容,最终行为应以客户端显示的运行配置为准。

Fake-IP和redir-host怎么选

enhanced-mode控制 Mihomo DNS返回地址的处理方式。官方文档列出的可选值是fake-ip和redir-host,默认值为redir-host。

模式基本行为更适合的情况需要留意
redir-host返回解析得到的真实IP先验证兼容性、局域网较多或应用对真实地址更敏感部分分流和域名识别场景可能不如Fake-IP直接
fake-ip为域名分配Fake-IP映射,再由内核关联原域名需要更稳定地按域名分流,且应用兼容Fake-IP局域网、游戏平台、推送或特殊应用可能需要过滤

切换到Fake-IP时,可以先加入最小过滤项:

dns:
  enable: true
  listen: 127.0.0.1:1053
  enhanced-mode: fake-ip
  fake-ip-filter-mode: blacklist
  fake-ip-filter:
    - '*.lan'
    - 'localhost'

官方文档说明,fake-ip-filter用于指定不接收Fake-IP映射的域名,并支持通配符;fake-ip-filter-mode可使用blacklist、whitelist或rule。不要一次加入大量未经确认的例外,否则很难判断到底是DNS、规则还是应用自身解析导致问题。假如某个局域网设备只能通过主机名访问,可先把其域名后缀加入过滤列表,再重新连接。

nameserver、fallback和分流字段分别做什么

这些字段不是同一个层级,建议按“谁需要解析、使用什么上游、是否按域名分流”来理解。

如果你没有明确的分流需求,不建议一开始同时加入fallback、复杂规则集、respect-rules和多个策略字段。先确认基础DNS能正常工作,再一次增加一个字段,并在每次修改后重载和复测。

需要注意,DoH或DoT只是DNS传输方式,不等于自动开启代理,也不等于所有应用都会使用 Mihomo DNS。浏览器内置DoH、应用自带解析、系统私有DNS以及部分基于HTTPS的解析请求,都可能绕过普通UDP 53端口。此时应在浏览器或应用设置中关闭其独立解析,或按实际需求配置,而不是只修改nameserver。

TUN模式下怎么设置DNS劫持

TUN和DNS是两个相关但不同的层次:dns:定义 Mihomo 内部如何解析;tun:决定系统流量如何进入内核。官方文档建议普通用户使用顶层TUN配置,并将dns-hijack作为把匹配到的DNS连接导入内部DNS模块的字段。

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

上面只是TUN接管示例,不代表所有平台都能直接照抄。官方说明中,dns-mode的可选值为disabled、native和hijack:disabled不设置系统DNS,native把TUN地址设置为系统DNS,hijack则在此基础上拦截其他接口发往53端口的流量。Windows使用hijack需要strict-route,Linux相关自动重定向场景需要auto-redirect;这不是所有系统都必须开启的统一组合。详情应以Mihomo TUN配置文档中对应平台说明为准。

因此,tun.dns-mode和tun.dns-hijack不要混为一谈:前者描述系统DNS如何设置,后者描述哪些DNS连接被导入内部模块。某些客户端还可能提供额外的界面覆写项,最终运行行为不能只根据订阅原文判断。

安全上,先保持DNS监听绑定到本机或明确的局域网地址。只有在你确实要给其他设备提供DNS服务、并已配置访问控制和防火墙时,才考虑扩大监听范围。

修改后如何验证、复测与回滚

  1. 先看配置状态:在客户端执行配置校验或重载。若报YAML错误,优先检查缩进、冒号、列表短横线、重复顶层键和字符串引号。
  2. 再看运行配置:确认运行配置中确实存在dns.enable、enhanced-mode和实际监听地址。订阅原文存在某字段,不代表客户端最终启用了它。
  3. 测试本机解析:在系统终端使用系统自带的DNS查询工具,指定本机监听地址和端口进行查询;如果客户端没有开放可查询的本地端口,就使用客户端内置DNS测试或日志查看请求是否进入内核。命令格式会因系统工具不同而变化,不要把某个平台命令直接复制到其他系统。
  4. 清理缓存:修改Fake-IP、上游DNS或TUN后,重启 Mihomo 和受影响的浏览器、应用;必要时清理系统DNS缓存。否则旧缓存可能让你误判新配置未生效。
  5. 做对照测试:先关闭TUN,仅保留普通系统代理;再切换fake-ip与redir-host。如果只有Fake-IP失败,重点检查过滤列表;如果只有TUN失败,重点检查权限、路由、dns-hijack和平台条件。
  6. 回滚:出现全局无法联网、局域网异常或核心启动失败时,恢复备份文件,关闭TUN,重启客户端,再逐项加回配置。

不要把“能打开一个网页”当成DNS已经完全生效。至少应分别验证:普通域名解析、节点域名解析、直连网站、代理规则命中和局域网地址。Mihomo官方还提供DNS解析流程说明,可结合DNS解析流程文档理解不同查询路径。

常见故障排查

节点域名无法解析

先检查default-nameserver是否为可用的引导解析器,再检查节点域名是否被错误地交给需要代理的解析路径。若配置了proxy-server-nameserver,确认该字段中的上游能在当前网络下建立连接。不要仅凭网页打不开判断节点失效。

开启Fake-IP后部分应用异常

先切换回redir-host做对照。如果问题消失,再为具体局域网域名、设备域名或应用要求真实地址的域名增加fake-ip-filter例外。不要直接关闭全部DNS功能,因为这会让系统回到自己的解析路径。

开启TUN后没网

先关闭TUN恢复网络,再检查系统权限、路由、网络接口选择和防火墙。Windows重点确认strict-route与DNS劫持条件;Linux重点确认auto-route和需要时的auto-redirect。这些选项的适用范围以官方TUN文档为准。

怀疑DNS泄露

先确认系统DNS是否已指向 Mihomo、TUN是否真正接管53端口,再检查浏览器DoH、系统私有DNS和应用自带解析。若浏览器仍使用独立DoH,仅修改 Mihomo 的nameserver无法改变浏览器的解析路径。

局域网设备打不开

先关闭TUN或切回redir-host验证,再检查局域网网段、主机名和fake-ip-filter。同时确认DNS监听没有误绑定到外部接口,避免把本机DNS服务暴露给不需要访问的网络。

常见问题

Mihomo DNS配置应该放在哪里?

放在配置文件顶层的dns字段中,与proxies、proxy-groups、rules等保持同级。已有dns字段时应合并内容,不要重复写两个顶层dns,也不要用DNS片段覆盖整份订阅配置。

default-nameserver和nameserver有什么区别?

default-nameserver主要用于解析DNS服务器等引导域名;nameserver是普通域名查询使用的默认上游。前者解决“先找到DNS服务器”,后者负责日常域名解析。

dns-mode和dns-hijack是不是一回事?

不是。dns-mode描述系统DNS如何设置,可选disabled、native和hijack;dns-hijack描述哪些DNS连接被导入 Mihomo 内部DNS模块。两者都属于TUN相关设置,但作用层次不同。

Fake-IP一定比redir-host好吗?

不一定。Fake-IP更适合需要按域名分流且应用兼容的场景;redir-host返回真实IP,通常更适合作为兼容性验证起点。遇到局域网或特殊应用异常时,可以先切回redir-host做对照。

为什么改了nameserver,浏览器还是没有使用 Mihomo DNS?

浏览器可能启用了独立DoH,或者系统、应用使用了自己的解析机制。需要同时检查浏览器DoH、系统私有DNS、TUN接管和客户端运行配置,不能只看订阅原文。

Mihomo DNS监听为什么不建议直接写0.0.0.0?

0.0.0.0表示监听多个网络接口,可能让局域网或其他可达网络访问该DNS端口。除非你明确需要为其他设备提供服务并已配置防火墙,否则先绑定本机地址进行验证。

相关阅读

参考资料

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