Mihomo 项目在 2026 年 7 月 18 日发布稳定版 v1.19.29。此次更新与使用 Mihomo 内核的 Clash 兼容客户端、旁路网关和自建服务直接相关:它修复了 WireGuard 单 peer 的 reserved 参数被忽略、TUIC 建流失败后计数无法释放、特定 CNAME 查询返回空答案,以及全角字符 IP-SUFFIX 规则导致进程崩溃等问题。完整变更可在 MetaCubeX 官方 v1.19.29 发布页核对。
合理做法不是看到新版本就覆盖升级:如果你正在使用上述配置或遇到相符现象,应先备份配置、当前内核与客户端设置,再优先评估 v1.19.29;如果连接一直正常且图形客户端尚未提供该稳定内核,可以等待客户端自身的正式更新。升级后至少确认内核版本、配置加载、DNS 应答和常用节点连接,出现回归时恢复旧内核并保留日志。
这次更新的关键点
- 这是稳定版:官方发布页将 v1.19.29 标为 Latest,而不是 Pre-release。
- WireGuard:修复每个 peer 单独设置的
reserved值未被采用的问题。 - TUIC:修复建流失败时
openStreams计数泄漏,避免失败累积后健康连接仍返回流数量过多。 - DNS 与规则:修复 hosts 域名重写场景的 CNAME 空答案、
DOMAIN-WILDCARD忽略嗅探主机名,以及含全角字符的IP-SUFFIX规则触发 panic。 - OpenVPN:增加 TLS rekey 修复、data-ciphers 协商、
tls-crypt-v2和 TLSAuth 支持,并修复服务器 soft reset 后重连。
哪些用户应该优先升级
WireGuard 配置依赖 per-peer reserved
如果同一个 WireGuard 出站包含多个 peer,而且各 peer 使用不同的 reserved,v1.19.29 的修复与你直接相关。旧行为是 peer 级值可能被忽略,并不等同于所有 WireGuard 连接都会失败。先确认配置中是否真的存在该字段,再决定优先级;Windows 上的 WireGuard 分流思路可同时参考站内的 WireGuard 分流规则教程,但不要把分流问题与握手参数问题混为一谈。
TUIC 在失败后逐渐无法新建连接
官方合并记录解释了具体失败链:只有成功创建的流会在关闭回调里减少计数;如果 OpenStream() 失败,旧实现会永久漏掉一次计数,累积到一定程度后,即使底层连接健康也会返回 TooManyOpenStreams。这支持“失败次数越多、之后越难恢复”的故障判断,但不代表所有 TUIC 断线都由它造成。丢包、路径 MTU 和服务端限制仍需分别检查,可结合 VPN MTU 与 MSS 排查方法缩小范围。
使用 hosts 重写或复杂规则集
当 hosts 条目把一个域名改写到另一个域名时,特定 CNAME 查询在旧实现中可能得到成功状态却没有 Answer 记录。项目的 PR #2965说明,处理函数曾把 CNAME 记录写入原请求对象,而最终返回的是另一个消息对象。若表现为“某些域名偶发解析为空”,升级具有明确价值;一般 DNS 泄漏或上游 DoH 不通则属于不同问题,可先看 Fake DNS、远程 DNS 与 DoH 配置指南。
v1.19.29 还修复了 DOMAIN-WILDCARD 对嗅探主机名的匹配,以及全角字符进入 IP-SUFFIX 时的 panic。编辑中文规则时尤其要检查全角逗号、句号和空格。规则不命中也可能来自顺序、GeoIP 或 DNS 映射,站内的 代理规则优先级排查提供了更完整的判断路径。
新协议能力不等于需要立即启用
发布说明列出了 shadowquic、JLS、Restls、ShadowTLS 及 OpenVPN TLS 相关能力。这些是官方列明的实现变化,但发布页没有承诺所有图形客户端已经提供对应界面,也没有给出跨实现兼容保证。本文的编辑判断是:已有稳定配置的读者不应仅为“新协议”重写生产配置;只有服务端、客户端和配置文档都明确匹配时,才在隔离环境测试。
同样,Mihomo 内核更新不等于客户端整体更新。Clash 兼容客户端可能固定内核版本、延后打包,或者使用自己的更新通道。先在客户端“关于”、日志开头或内核管理页面确认实际版本;仅看到客户端版本变化,不能证明内核已是 v1.19.29。订阅导入方法可参考 Clash 导入订阅教程,但升级内核时不要同时大改订阅和规则,否则难以定位回归。
升级、核验与回滚清单
- 记录当前客户端版本、Mihomo 内核版本、运行平台和安装来源。
- 导出本地配置与客户端设置;保留当前可执行文件或确认客户端提供可用的回滚入口。订阅地址和密钥不要写入公开日志。
- 只从客户端正式更新通道或 MetaCubeX 官方发布页获取文件,并按平台、CPU 架构选择资产;不要用匿名网盘重打包文件。
- 升级后重新启动内核,从日志或版本命令确认显示
v1.19.29,而不是只看下载文件名。 - 运行配置校验,检查是否有未知字段、重复 listener 名称或规则语法错误。先保持原配置不变完成基线测试。
- 分别测试直连、代理、DNS 与受影响协议。WireGuard 检查握手及 peer 路由;TUIC 观察重复失败后能否恢复;hosts 重写用系统 DNS 工具查询 CNAME 与 A/AAAA。
- 比较升级前后相同网络、相同节点的日志。本文不提供性能结论,单次延迟变化不能证明版本更快或更慢。
- 若出现新回归,恢复旧内核和原配置,保存脱敏后的错误时间、版本、最小配置与日志,再向项目反馈。
常见问题
Mihomo v1.19.29 是测试版吗?
不是。MetaCubeX 在 2026 年 7 月 18 日发布 v1.19.29,官方 GitHub 页面将其标记为 Latest;Alpha 页面则单独标记为 Pre-release。下载时仍要核对标签,避免把持续更新的 Alpha 资产当成稳定版。
所有 Clash 用户都必须马上升级吗?
没有官方依据支持“所有用户立即升级”。使用受影响功能或出现对应故障的人优先级较高;由图形客户端托管内核、当前运行正常的人,可以等待该客户端提供经过整合的稳定更新。无论哪种情况,都应先准备回滚。
升级能解决所有 TUIC 断线吗?
不能。官方 PR #2959只证明一种明确路径:建流失败会泄漏计数,最终触发 TooManyOpenStreams。网络丢包、服务端容量、证书、时间误差或 MTU 问题仍需独立排查。
更新后 DNS 仍返回空答案怎么办?
先确认运行中的确是 v1.19.29,再区分普通域名查询与“hosts 条目把域名改写为另一个域名”的 CNAME 场景。随后绕过客户端向上游 DNS 查询,对比系统缓存、Fake DNS 映射和规则命中日志。PR #2965 修复的是特定代码路径,不是所有空答案的通用修复。
可以直接启用 JLS、Restls 或 shadowquic 吗?
发布页表明内核加入了相关支持,但这不足以证明你的 GUI、服务端和订阅转换器都兼容。先查对应组件的正式文档与版本,使用不含重要业务的测试配置验证;不要仅凭字段名称推断安全性、隐私性或性能。
官方来源与核验入口
- MetaCubeX,Release v1.19.29 · MetaCubeX/mihomo,2026 年 7 月 18 日:查看稳定版发布说明、版本状态与变更列表。
- MetaCubeX,fix: leaked openStreams on failure in TUIC client by AaronChen0 · Pull Request #2959 · MetaCubeX/mihomo,2026 年 7 月 10 日:核验 TUIC 计数泄漏的触发条件和合并记录。
- MetaCubeX,fix: CNAME query matching a hosts domain-entry returns an empty answer by AaronChen0 · Pull Request #2965 · MetaCubeX/mihomo,2026 年 7 月 11 日:核验 hosts 域名重写下 CNAME 空答案的原因与修复。