Mihomo v1.19.31 修复 Tailscale 分域 DNS 失败:升级核验指南

Mihomo v1.19.31 修复 tsnet 模式下,上游为 tailnet 节点时的分域 DNS UDP 查询失败。本文说明适用条件、内核升级核验、同路径复测方法,以及 MagicDNS 和出口节点的排查边界。

2026 年 9 月 14 日发布的 Mihomo v1.19.31,修复了 tsnet 模式下、上游 DNS 是 tailnet 节点时,Split DNS 的 UDP 查询静默失败问题。如果你使用 Mihomo 内置 Tailscale 出站,遇到特定内部域名解析超时,这项更新值得核对。官方 v1.19.31 发布说明明确列出了触发条件,但没有给出完整的受影响旧版本范围。

针对 Mihomo Tailscale DNS 解析失败,合理顺序是先确认查询确实经过这条路径,再备份配置、通过官方渠道更新内核,并以相同域名复测。本文的升级与排查建议适用于自己管理或获准访问的网络;仅使用独立 Tailscale 客户端,或普通公网 DNS 查询失败,不能据此判定命中同一缺陷。

先判断:你的故障是否符合这次修复

  • 实际运行的是 Mihomo,且相关访问使用内置的 Tailscale 出站。
  • 查询走 tsnet 的分域 DNS 路径,上游 DNS 服务由 tailnet 中的节点提供。
  • 失败涉及 UDP DNS 查询,而不只是网页打开慢、证书报错或服务端拒绝连接。
  • 升级前后保留同一测试对象和配置,避免同时更换上游而无法判断原因。

这些条件来自发布说明对修复范围的描述,不是自动诊断规则。尤其是“内部域名打不开”只能作为线索:它可能发生在解析、路由、服务监听或访问授权的不同环节。官方没有宣称所有 DNS 超时都由这项缺陷造成,也没有宣布所有旧版均受影响。

编辑建议:如果前三项都符合,优先安排一次可回退的内核升级验证;如果连使用哪一个解析器都不清楚,先确认路径。此前版本的其他变更可以参考站内的Mihomo v1.19.30 更新核验指南,不要将不同版本的修复条件混在一起。

分域 DNS、MagicDNS 与代理规则不是同一层

Tailscale 官方把只负责特定域名查询的解析服务器称为 restricted nameserver,这就是 Split DNS。例如,管理员可以让一个内部域名后缀交给内部解析器处理。MagicDNS 则为 tailnet 设备提供名称;官方说明它不能任意添加自定义记录。两者功能不同,不能因为设备名称能解析,就推断所有业务域名也能解析。参见Tailscale 的 DNS 与分域解析文档

Mihomo 官方文档还说明,Tailscale 在这里是一个可选出站,只有被规则、策略组等方式选中的流量才会使用它。因此,配置里出现 type: tailscale,并不等于当前测试已经进入该出站。核验时应查看实际连接与规则命中情况,而不能只看配置文件中有没有这一段。依据是Mihomo Tailscale 出站说明

这也是为什么不建议一开始就把内部域名改交给公共解析器:你会改变原本想验证的解析路径。需要补齐基础概念时,可先阅读远程办公 VPN 的 Split DNS 与内网访问边界;涉及其他客户端的 DNS 方案时,再参考Fake DNS、远程 DNS 与 DoH 的区别

升级前记录什么,升级后验证什么

第一步:保留能够比较的故障记录

以下是编辑建议的核验清单,并非官方提供的自动修复流程。记录当前内核版本、操作系统、客户端名称、失败域名的完整名称、查询时间,以及预期使用的内部 DNS。选择管理员确认存在的记录作为测试对象,另选一个正常域名作对照。对外反馈时隐去账号、登录密钥和敏感业务域名。

把“没有收到回答”“收到域名不存在的回答”“收到地址但业务连接失败”分别记录。它们需要不同的后续检查,不应统一写成“DNS 坏了”。如果管理员能够查看内部 DNS 日志,可同步核对同一时间是否收到查询、是否生成响应;这些记录有助于缩小范围,但单独一条日志不足以证明内核缺陷。

第二步:确认真正替换了运行中的内核

保留现有配置及可用的回退版本,再从Mihomo v1.19.31 官方发布页选择适合系统与处理器的构建。使用图形客户端时,应遵循该客户端的内核更新方式;这里核验的是 Mihomo 修复,不能由界面软件的版本号推断内核已更新,也不能推断所有客户端都已提供这一个版本。

完成更新并重新启动相关服务后,查看当前运行实例报告的内核版本。不要只根据下载文件名或更新按钮的完成提示下结论。如果客户端尚未支持相应内核,先保留现状与故障记录,等待其正式更新路径,不要随意替换来源不明的二进制文件。

第三步:沿原路径复测,再检查业务连接

保持域名、上游和规则一致,重新发起原来失败的查询,并记录响应、时间和命中路径。若改为直接向上游发送测试查询,应注明这是“上游对照”,它不能单独验证 tsnet 内部转发是否恢复。测试工具与浏览器是否走同一路径也需要单独确认,不同平台不能只凭一条命令的结果互相替代。

确认解析结果符合管理员预期后,再访问原业务服务。解析恢复只说明这一阶段取得进展;若地址已经返回而服务仍无法访问,就继续检查业务端口、路由与授权。建议验收记录同时包含内核版本、解析结果、实际使用的出站以及业务访问结果,便于之后回溯。

更新后仍失败,按条件继续缩小范围

先确认不是初始化阶段。Mihomo 官方文档说明,出站在首次匹配连接时才开始连接,第一次访问 Tailscale 节点可能超时;应等待加载并重试,避免把首次连接现象直接认定为持续故障。同一文档还指出 udp 默认值为 false。如业务需要 UDP,应核对实际配置,但不能据此推断开启这个选项就能替代 tsnet DNS 缺陷的修复。参见Tailscale 出站的初始化和 UDP 选项

如果配置使用了出口节点,还要核对 DNS 策略。Tailscale 官方文档描述了出口节点会影响所用解析器,以及 nameserver 的 Use with exit node 选项。这里应把它作为检查线索:该文档描述的是 Tailscale 行为,不能未经核验就承诺每个 Mihomo 客户端界面有相同开关。应结合自己的部署与实际查询记录判断。

仍无法定位时,向维护者提供最小化、脱敏的复现信息:运行版本、是否内置 Tailscale 出站、是否使用出口节点、上游是否为 tailnet 节点,以及升级前后同一查询的差异。不要用“换了节点就好了”代替路径说明,也不要为排错扩大原有访问权限。

常见问题

只安装独立 Tailscale 客户端,需要升级 Mihomo 吗?

不能仅根据这项修复决定。v1.19.31 的条目限定了 tsnet 分域 UDP 查询和 tailnet 上游条件。若没有使用 Mihomo 的相关路径,应先查独立客户端及其 DNS 设置,而不是把 Mihomo 的修复说明套到另一个运行实例。

MagicDNS 能用,内部业务域名仍失败,矛盾吗?

不矛盾。设备命名与自定义域名的分域解析承担不同任务。根据 Tailscale 官方文档,MagicDNS 不支持随意添加记录;应检查业务域名实际由哪个 nameserver 负责,而不只测试设备名称。

更新图形客户端后,是否就能确认问题已修复?

不能。先确认实际运行内核包含该修复,再沿原故障路径复测。官方发布页证明 v1.19.31 列入了修复,但不能证明某个第三方客户端已经集成,也不能证明你的本地故障只有这一个原因。

这次修复是否意味着此前内部 DNS 查询泄露了?

不能这样推断。官方条目描述的是特定路径的查询失败,没有据此报告 DNS 泄露。超时、错误回答与泄露是不同问题;若怀疑查询走了非预期解析器,应另行核对实际流向,不应把超时本身当作泄露证据。

官方来源与核验入口

关于作者

下一步怎么用?

需要节点、客户端或稳定 VPN 方案,可以直接从下面入口继续。

查看免费节点 下载客户端 VPN 试用优惠 检测泄露
客户端技术教程

sing-box for Desktop 正式版怎么用?Windows/Linux 下载与升级检查

2026-9-13 12:47:34

实用教程

初始化属于自己的 Hexo 博客

2023-7-28 1:20:44

搜索