这次比对结论很明确:截至 2026-05-24,SagerNet/sing-box 的 GitHub releases 列表顶部是 v1.14.0-alpha.25,但它是 prerelease;GitHub 的稳定版 Latest 仍指向 v1.13.12。v1.13.12 release notes 只写了 naiveproxy 更新和 fixes/improvements,没有声明新的 DNS 或 route 迁移项。
所以这篇不是把 alpha 内容当成稳定版升级通知,而是给自维护 JSON 的用户一张比对表。你要确认自己看的 release 类型,再决定是否按官方 Migration 页面处理 DNS server、DNS rule、route rule action 和 domain_resolver。如果你还在补基础配置,可先看 sing-box 下载与配置入门。
今天比对到哪个版本?
| 比对入口 | 2026-05-24 结果 | DNS/route 结论 |
|---|---|---|
| GitHub releases 列表顶部 | v1.14.0-alpha.25,发布时间为 2026-05-22 | 顶部不是稳定版;release notes 主要写 Tailscale endpoint 字段回退和 fixes/improvements |
| GitHub Latest release | v1.13.12,发布时间为 2026-05-15 | release notes 没有新的 DNS/route 迁移大项 |
| 官方 Migration 页面 | 列出 1.14.0 与 1.12.0 等迁移章节 | DNS/route 配置改动要从这里逐项确认 |
| 官方 changelog | v1.14.0-alpha.21 曾列出 TUN DNS mode、mDNS DNS server、preferred_by、route rule action 支持 | 这些属于 alpha 链路,生产配置先单独测试 |
这张表的用法是先排除误读:不要看到 v1.14.0-alpha.25 就把所有 1.14.0 migration 当成稳定版已落地,也不要因为 v1.13.12 没写迁移就忽略自己配置里还没处理的 1.12.0 旧字段。
为什么不能只看 release notes?
sing-box 的 release notes 经常很短,尤其是 patch 版本。v1.13.12 的公开说明只有 naiveproxy 版本更新和 fixes/improvements,无法覆盖历史迁移项,也不会替你判断旧 JSON 是否还在使用 deprecated 字段。
真正要看的顺序是三步,看 GitHub release 类型,再看官方 changelog 是否有同版本能力变化,最后看 Migration 页面是否出现与你配置字段同名的迁移章节。DNS 和 route 这类配置项尤其要这样比对,因为旧字段常常还能短期运行,但下一次大版本可能变成启动时报错。
DNS 迁移要查哪几个关键词?
官方 Migration 里,DNS 相关的高优先级关键词有 DNS servers、independent_cache、store_rdrc、ip_version、query_type、match_response、evaluate 和 FakeIP。
1.12.0 的重点是 DNS server 新格式。旧写法常见是把 address 写成 1.1.1.1、tls://1.1.1.1、https://1.1.1.1/dns-query 或 fakeip;新写法改成按类型拆开,例如 type: udp、type: tls、type: https、type: fakeip,再用 server、tag、inet4_range 等字段描述细节。
1.14.0 的重点更偏行为变化。官方 Migration 写到,ip_version 和 query_type 在 DNS rule 里的评估范围会变化;如果还混用旧地址过滤字段、旧 strategy DNS rule action option,或旧 rule_set_ip_cidr_accept_empty,配置可能在启动阶段被拒绝。站内已有 sing-box 1.14 legacy DNS rule-set 迁移清单 可以和官方字段交叉比对。
route 迁移要查哪几个关键词?
route 相关先搜 domain_resolver、default_domain_resolver、resolve、hijack-dns、route-options 和 Route Rule Action。这些词比“规则分流失效”更直接,因为它们对应官方字段。
1.12.0 以后,legacy outbound DNS rule items 可以迁移到 domain_resolver。这类变更容易被误判成 DNS 小改动,实际影响的是出站拨号解析:某个 outbound 自己解析域名时,要不要指定本地 DNS、重写 TTL、带 client_subnet,都可能从 dns.rules 移到 outbound 或 route options。
旧的 special outbounds 也要看 route rule actions。比如 DNS 出站不再只是保留一个特殊 outbound 标签,官方示例把 DNS 流量匹配到 hijack-dns 等 action。你如果维护的是服务端、旁路由或多出站 JSON,这一类迁移比图形客户端用户更容易踩到。
release 变更比对表怎么用?
| 比对项 | 在哪里看 | 命中后怎么处理 |
|---|---|---|
| release 是否为 prerelease | GitHub releases 列表或 API 的 prerelease 字段 | alpha 版本只进测试 profile,不直接覆盖长期使用配置 |
| 稳定版 Latest 是哪个 tag | https://github.com/SagerNet/sing-box/releases/latest | 以该 tag 判断普通用户是否需要升级 core |
| release notes 是否点名 DNS/route | 当前 tag 的 notes | 没点名时,不自行推断为迁移大版本 |
| Migration 是否出现同名字段 | 官方 Migration 页面搜索字段名 | 命中 deprecated、rejected at startup 时,备份再改配置 |
| changelog 是否有 alpha 能力 | 官方 changelog 搜 TUN DNS、mDNS、preferred_by | 只在测试环境验证,不写进生产配置模板 |
比对路径是先打开 GitHub releases,再打开 /releases/latest,最后在 Migration 页面搜 DNS、route、domain_resolver 和 query_type。这个顺序可以避免一个常见误差:把 alpha changelog 的能力项,误写成稳定版 patch release 的迁移要求。
哪些配置现在最该自查?
第一类是还在用旧 DNS server address 形式的配置。比如 address: "https://dns.google/dns-query"、address: "fakeip" 这类写法,要按 1.12.0 Migration 对照新 server 类型。
第二类是 DNS rule 里用了 ip_cidr、ip_is_private、query_type 或 ip_version 的配置。尤其是引用了只包含 IP CIDR 的 rule-set 时,要看是否需要用 evaluate 先拿 DNS response,再用 match_response 匹配。
第三类是为 outbound 单独指定解析策略的配置。旧的 outbound DNS rule items、domain_strategy 和新 domain_resolver 不是同一个层级的概念,不能只做字符串替换。
第四类是 TUN 和 DNS 劫持相关配置。v1.14.0-alpha.21 changelog 提到 TUN DNS mode、接口 DNS hijack、mDNS DNS server 和 preferred_by,这些对桌面、Android 和软路由的表现都可能不同;没有单独测试前,不要把 alpha 示例当成长期模板。遇到日志层面的判断,可以配合 sing-box TUN/DNS/route 日志排查 做最小化复现。
升级前怎么验证没有改坏?
保存当前 JSON 和客户端内置 core 版本。命令行用户至少记录 sing-box version、启动命令、配置路径和第一条启动错误;图形客户端用户则记录客户端版本、core 版本、导入的 profile 名称。
再用最小配置验证 DNS。只保留一个 DNS server、一个 direct outbound 和一条可观察的 DNS rule,确认日志里没有 deprecated、unknown field、rejected at startup、invalid rule 这类关键词。
最后再合并 route。把 domain_resolver、default_domain_resolver、resolve、hijack-dns 这几类改动分批加入,每加一批就启动一次。DNS 与 route 同时改,出错时很难判断是解析规则、出站拨号还是 rule action 写法导致的。
这篇不确认什么?
本文只比对到 2026-05-24 的 GitHub releases、GitHub Latest、官方 Migration 和官方 changelog。v1.14.0-alpha.25 之后如果又发布 alpha 或稳定版,结论要重新看对应 tag。
本文也不替代你的客户端兼容性测试。SFA、Windows GUI、OpenWrt 包、Docker 镜像和 systemd 服务读取配置的路径不同,core 能解析某个字段,不代表图形界面已经提供对应开关。
相关阅读
- sing-box 1.14 DNS 规则集迁移 — DNS 配置变更时看这篇
- sing-box 路由规则集迁移 — 路由规则变化时参考
- sing-box 规则集缓存失败 — 规则集下载和缓存相关问题