Mihomo DNS 怎么设置才能解决无法连接?
简答:Mihomo 无法连接时,先判断失败的是订阅域名、节点域名还是目标网站,再配置对应 DNS 字段。排障可先使用最小配置:启用 DNS、设置 nameserver 和 proxy-server-nameserver,暂时关闭 IPv6 与 TUN;确认日志恢复后,再逐项启用 Fake-IP、规则 DNS 和 TUN。若日志显示节点已过期、协议参数错误或端口冲突,DNS 设置无法修复这些问题。
定义:Mihomo DNS 配置是内核用于解析 DNS 服务器、代理节点域名、直连域名和目标网站域名的一组参数,常见字段包括 default-nameserver、nameserver、fallback、proxy-server-nameserver 与 direct-nameserver。
先试这一步:恢复到最小 DNS 配置
如果你已经导入配置但出现网页打不开、节点连接失败或日志中的 dns resolve failed,先备份当前配置,再只修改 dns 区块。下面的模板参考了 Mihomo DNS 官方配置说明中的字段含义,示例地址只是配置示例,不代表任何 DNS 在所有网络环境下都一定可用。
| 字段 | 用途 | 先怎么处理 |
|---|---|---|
default-nameserver | 解析 DNS 服务器自身的域名 | 填写 IP 地址,避免解析加密 DNS 时再次依赖域名解析 |
nameserver | 普通域名的默认解析服务器 | 先保留 1—2 个可访问的 DNS,避免配置过于复杂 |
fallback | 备用解析服务器 | 只有确认需要备用结果时再启用 |
proxy-server-nameserver | 只负责解析代理节点域名 | 节点域名解析失败时优先检查这一项 |
direct-nameserver | 直连出口使用的解析服务器 | 直连域名异常时再增加,不要一开始同时改多个字段 |
可先粘贴下面的无注释配置,然后保存并重新载入。若你的网络无法访问示例中的加密 DNS,请把它们替换为当前网络可用、且你能核验来源的 DNS 服务。
dns:
enable: true
ipv6: false
enhanced-mode: redir-host
default-nameserver:
- 223.5.5.5
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
proxy-server-nameserver:
- https://doh.pub/dns-query
这份配置暂时不启用 respect-rules、prefer-h3、复杂的 nameserver-policy 和 TUN 劫持,目的是先判断基础解析是否正常。官方文档明确说明,启用 respect-rules 时需要配置 proxy-server-nameserver,并不建议与 prefer-h3 一起使用,可参考DNS 字段说明核对兼容关系。
按失败对象判断:该改哪个 DNS 字段
| 现象或日志 | 优先检查 | 下一步 |
|---|---|---|
| 订阅链接打不开或更新失败 | 系统 DNS、网络连接、订阅地址本身 | 先在浏览器或命令行确认订阅域名能否解析;不要把它当作节点 DNS 问题 |
节点域名出现 no such host、dns resolve failed | proxy-server-nameserver | 为节点域名提供独立解析;确认域名拼写、订阅是否过期,再重新载入 |
| 节点已建立连接,但目标网站打不开 | nameserver、fallback、规则和 Fake-IP | 先切换到 redir-host,关闭复杂规则 DNS,查看请求是否命中代理组 |
日志显示 timeout | DNS 上游可达性、TUN 路由、IPv6 | 临时关闭 TUN 与 IPv6,单独测试普通 DNS;恢复后一次只启用一个选项 |
connection refused 或端口占用 | 本地监听端口、客户端进程、系统代理 | 检查端口是否被其他程序占用;这通常不是更换 DNS 能解决的问题 |
判断原则:节点域名解析失败,先看 proxy-server-nameserver;普通目标域名解析失败,先看 nameserver 和 fallback;如果 DNS 查询已经成功但代理仍连接失败,应转向节点有效期、协议参数、端口和规则排查。
完成编辑后按固定顺序操作:备份配置 → 编辑 dns → 保存 → 使用客户端的配置校验功能 → 重新载入 → 查看日志 → 访问一个可确认结果的网页。每次只改一个变量,并记录改动前后的日志关键词。
Fake-IP、redir-host、IPv6:先用稳定模式验证
Mihomo 的 enhanced-mode 可使用 fake-ip 或 redir-host。官方文档说明,Fake-IP 会为域名返回 Fake-IP 映射,fake-ip-filter 可让匹配的局域网或特殊域名不使用 Fake-IP;如果刚开启 Fake-IP 后出现局域网访问、应用登录或部分域名异常,先改回 redir-host 验证。
排障时可以使用下面的逐步方案:
- 先设置
enhanced-mode: redir-host,保留ipv6: false。 - 确认普通网页和节点连接恢复后,再单独改为
fake-ip。 - 如果 Fake-IP 导致局域网设备异常,再增加与你局域网实际域名匹配的
fake-ip-filter,例如*.lan;不要无依据地把大量域名加入过滤列表。 - 如果开启 IPv6 后出现连接超时或部分应用打不开,暂时保留
ipv6: false,确认 IPv4 路径正常后再测试 IPv6。
不要把 fake-ip、respect-rules、prefer-h3 和 TUN 一次全部打开。这样即使故障出现,也很难判断是解析模式、规则回环、HTTP/3 连接还是路由接管导致的。
开启 TUN 后无法连接:检查 DNS 模式和权限
TUN 不只是“开关代理”,还可能接管系统路由和 DNS。根据 Mihomo TUN 官方文档,dns-mode 有 disabled、native 和 hijack 三种行为;hijack 会在 native 基础上拦截其他网卡发往 53 端口的 DNS 请求。Windows 使用 DNS 劫持时需要配合 strict-route,Linux 使用自动重定向时需要配合 auto-redirect。
建议按以下顺序验证:
- 先关闭 TUN,只保留系统代理或客户端的普通代理模式,测试节点和网页是否恢复。
- 如果关闭 TUN 后恢复,重新开启 TUN 时先使用
auto-route: true、auto-detect-interface: true,不要同时改 MTU。 - Windows 检查
strict-route和防火墙是否允许 Mihomo 内核;macOS 注意 TUN 网卡名称需符合系统要求;Android 检查“私人 DNS”,官方文档说明开启私人 DNS 时无法自动劫持 DNS 请求。 - 查看日志是否出现 DNS 请求、规则命中和代理连接三类记录。只有 DNS 成功、规则命中正确、节点连接建立后,才说明 TUN 路径基本正常。
如果 TUN 开启后完全断网,撤销方法是关闭 TUN、恢复备份配置、重新载入,再检查系统代理和 DNS 是否被遗留设置接管。
Windows、macOS、Android 的验证方法
Windows:打开 PowerShell,执行 nslookup example.com,观察是否返回地址和 DNS 服务器信息。若命令本身超时,先关闭 TUN,再测试系统网络;若系统解析正常而 Mihomo 日志仍报节点域名失败,重点检查 proxy-server-nameserver。
macOS:打开“终端”,执行 dig example.com。如果返回状态正常但客户端请求仍失败,检查是否启用了错误的系统代理、TUN 网卡或规则;macOS 默认情况下 TUN 的 DNS 模式行为与 Windows、Linux 不完全相同,应按官方 TUN 文档核对。
Android:先关闭“私人 DNS”或设为自动,再测试 Mihomo 的 TUN;官方文档说明,Android 开启私人 DNS 时无法自动劫持 DNS 请求。若关闭后恢复,说明问题集中在系统 DNS 接管层,而不一定是节点失效。
验证闭环应至少包含:客户端日志没有新的 DNS 解析错误;节点域名可以解析;请求命中了预期规则或代理组;浏览器能够打开目标网页;关闭 TUN 后系统网络仍能恢复。若只有某一个应用失败,还要检查该应用是否启用了独立的 Secure DNS 或自身代理。
哪些问题不是 DNS 能解决的
DNS 只能处理域名解析链路,不能修复订阅失效、节点过期、协议类型或密码错误、端口冲突、规则误拦截、服务端不可用、套餐权限或设备限制。出现这些情况时,即使 nslookup 或 dig 正常,Mihomo 仍可能无法连接。
- 订阅更新失败:核对账户后台中的订阅地址、有效期和返回内容。
- 所有节点同时失败:检查配置是否完整、代理组是否有可用节点、系统时间是否正确。
- 单个节点失败:检查节点域名、端口、协议参数和该节点状态。
- 只有一个网站失败:检查规则命中、目标域名解析和 Fake-IP 过滤。
- 开启 TUN 才失败:优先检查权限、DNS 劫持、严格路由和防火墙。
本文是第三方使用指南,不代表任何客户端或服务品牌的官方说明;品牌服务的订阅、状态和账户规则应以你当前登录的账户后台及其官方信息为准。
常见问题
Mihomo 的 nameserver 和 proxy-server-nameserver 有什么区别?
nameserver 用于普通域名解析,proxy-server-nameserver 专门用于代理节点域名解析。节点域名出现 no such host 时,应优先检查后者;目标网站打不开但节点已经连上时,再检查 nameserver、fallback 和规则。
Mihomo 一定要开启 fake-ip 才能连接吗?
不一定。Fake-IP 和 redir-host 都是 Mihomo 支持的 DNS 处理模式。排障时可先使用 redir-host 建立最小变量环境,确认基础连接后再测试 fake-ip;局域网或特定应用异常时,还要检查 fake-ip-filter。
为什么开启 TUN 后反而无法上网?
TUN 会影响路由和 DNS 接管。应先关闭 TUN确认普通代理是否正常,再检查 dns-mode、dns-hijack、strict-route、auto-route、系统权限、防火墙和 Android 私人 DNS。官方文档指出,Android 开启私人 DNS 时无法自动劫持 DNS 请求。
respect-rules 可以直接打开吗?
不建议直接打开后再排查其他问题。Mihomo 官方文档说明,respect-rules 需要配置 proxy-server-nameserver,并且不建议与 prefer-h3 一起使用。应先完成基础 DNS 验证,再单独启用并查看日志。
DNS 正常但节点仍然连接失败怎么办?
检查节点是否过期、订阅是否失效、协议参数和端口是否正确、代理组是否选择了可用节点,以及本地端口是否冲突。这些问题不属于 DNS 能修复的范围。