sing-box 1.14.3 新特性解读:Snell 协议、远程面板与升级要点

sing-box 1.14.3 新特性解读:Snell 协议、远程面板与升级要点

背景

sing-box 是一个开源的通用代理平台,用途很广泛:既可以在 VPS 上跑作服务端(VLESS、Trojan、Hysteria2 等入站),也可以在电脑、手机上跑作客户端(路由、分流、TUN 透明代理)。国内很多自建节点的玩家用的就是它。

2026 年 8 月底,sing-box 1.14.0 正式版发布;10 月 9 日,1.14.3 发布,这是目前最新的稳定版(1.13.x 已进入旧稳定分支)。1.14 是个大版本,协议、面板、DNS 都动了。如果你 VPS 上的 sing-box 还停留在 1.13,是时候看看要不要升了。

前置知识:需要一台能自己装软件的 VPS(Debian/Ubuntu 最常见),以及能用 SSH 登录。以下操作都在服务端完成。

值得关注的 6 个变化

1. 支持 Snell 协议(outbound 和 inbound 都有)

Snell 是 Surge 出品的私有代理协议,一直闭源。官方文档的原话是:闭源并不能真的让它在 2026 年继续"隐蔽",加上 Snell 在随机流量协议里确实有优势(完整 TCP 语义的多路复用、流量特征多样性),sing-box 决定用 Go 重新实现它,而不是造新轮子。

实际影响:

  • 客户端侧(outbound)新增 snell 类型,支持 v4 和 v6 两个版本(v5 的 QUIC 模式官方实现没做,sing-box 也不支持)。
  • 服务端侧(inbound)也有对应的 snell 入站,可以直接替换官方 Snell 服务端。
  • v4 支持 HTTP 混淆(obfs_mode: http),v6 改成流量整形模式(mode),PSK 长度要求 12~255 字节。

如果你之前同时维护了 sing-box 和官方 Snell 二进制,现在可以只留一个了。

2. 新增 API 服务和 Web 面板

1.14 引入了 gRPC 的 API 服务,用于观察和控制正在运行的 sing-box 实例:服务状态、日志、出站分组(选择和测速)、Clash 模式、连接跟踪、网络质量测试等——和图形客户端本地用的同一套接口。

配套还有了一个 Web 版控制台 sing-box Dashboard,通过 API 服务的 dashboard 选项直接在监听地址上对外提供。图形客户端也能连远程实例。

这意味着:在 VPS 上跑 sing-box,现在可以用浏览器远程看连接状态、测速,而不用再靠 SSH 翻日志了。

3. Hysteria2 客户端默认模仿 Chrome QUIC 握手

1.14 起,Hysteria2 客户端默认会模仿 Chrome 的 QUIC 握手特征,让流量更难被握手指纹识别。

但注意一个坑:Chrome 不声明支持 Ed25519 曲线。如果你的服务端证书用的是 Ed25519,升级后客户端会握手失败。解决方法是把证书换成 ECDSA P-256,或在客户端配 disable_chrome_parrot: true。这是升级后"莫名连不上"的常见原因,先检查这个。

同时还加了 bbr_profile、hop_interval_max,以及新的 gecko QUIC 流量混淆(和 salamander 并列,可配 min_packet_size/max_packet_size)。

4. DNS 规则语义修正(有破坏性变更)

1.14 修正了规则集匹配语义中一个长期存在的不明确之处。同时,DNS 规则引入了 evaluate 动作和 Response Match Fields(response_rcode、response_answer 等),允许按解析结果再匹配规则。

注意:旧的 Legacy Address Filter Fields(ip_cidr、无 match_response 的 ip_is_private)和 Legacy strategy 选项已经被标记为废弃,将在 1.16.0 移除。现在升级 1.14 还能用,但建议趁早迁移到新写法,否则下次大版本升级会炸。

5. TUN 性能与 stack 选项

1.14 对 TUN 做了不少优化。顺带提一句:开发版 1.15.0-alpha 已经换上全新的自研 TCP/IP 栈,stack 选项被标记废弃、1.17.0 移除。客户端如果显式配了 stack: gvisor 之类,目前还能用,升级前先知道有这事。

6. iOS 客户端重新上架 App Store

换了新的苹果开发者账号,iOS/tvOS 客户端以 sing-box MT 的名字重新上架。老用户注意:之前那个 sing-box VT 要重新装 MT,配置和设置不会继承,需要迁移。

升级步骤(Debian/Ubuntu 实测)

正式版的升级很简单,但建议按这个顺序走:

# 1. 先备份当前配置
cp /etc/sing-box/config.json /etc/sing-box/config.json.bak

# 2. 升级二进制(以官方安装脚本为例)
bash <(curl -fsSL https://sing-box.app/deb-install.sh)

# 3. 升级前先校验配置
sing-box check -c /etc/sing-box/config.json

# 4. 重启服务
systemctl restart sing-box

# 5. 确认版本和状态
sing-box version
systemctl status sing-box

几点经验:

  • sing-box check 一定要在重启前跑,它能提前报出配置里的问题(比如废弃字段),比重启失败再回滚省时间。
  • 升级前记住旧版本号(sing-box version),出问题时方便降级:重装旧版 deb 包 + 恢复备份配置即可。
  • 如果你配了 Snell 入站/出站,记得服务端客户端一起升,版本对不上可能连不通。
  • Hysteria2 用户升级后第一时间测试连通性,失败先看上面的 Ed25519 坑。
  • 之前发过一篇 sing-box 升级 1.14 前必须处理的 6 个配置翻车点,那篇讲的是旧字段删除(升级门槛),这篇讲的是新特性(升级收益),建议对照着看。

Snell 客户端配置示例

升级后想把某个出站换成 Snell,配置写法如下(参考官方文档):

{
  "type": "snell",
  "tag": "snell-out",
  "server": "你的服务器地址",
  "server_port": 8388,
  "version": 4,
  "psk": "你的PSK",
  "obfs_mode": "http",
  "obfs_host": "www.bing.com"
}
  • version 只能填 4 或 6;v4 混淆用 obfs_mode/obfs_host,v6 改成 mode(default/unshaped/unsafe-raw)。
  • v6 的 psk 长度必须在 12~255 字节之间,否则启动报错。
  • 服务端是官方 Snell v4 的话,客户端用 version: 4 即可兼容(v5 的非 QUIC 部分与 v4 线路协议相同,sing-box 按 v4 处理)。

注意把上面示例里的地址、端口、PSK 换成你自己的,示例中的值都只是占位。

升级建议

  • 在用 1.13.x 稳定运行、没遇到问题:可以升,1.14.3 是成熟稳定版,收益主要是 Snell 支持和远程面板;但记得先处理 DNS 规则废弃字段。
  • 在用 Hysteria2 + Ed25519 证书:升级前先把证书换了或准备好 disable_chrome_parrot,否则升完就断连。
  • iOS 用户:顺手换成 sing-box MT,别再用旧版 VT。

1.15 开发版已经在测试新 TCP/IP 栈和 MASQUE 协议支持,喜欢尝鲜的可以关注 beta 分支,但生产节点建议还是守着稳定版。


*参考:sing-box 官方更新日志、Snell outbound 文档,版本号与配置字段均以 2026-10-21 查阅时的官方文档为准。*