
背景:sing-box 是什么,为什么看这一篇
如果你是第一次打开这篇博客,先补一个背景:sing-box 是一个用 Go 编写的开源通用代理内核,可以同时做客户端和服务端,支持十几种协议(VLESS、VMess、Trojan、Hysteria2、WireGuard、TUN 等)。它的地位类似 Clash 内核,但设计更现代:一次配置可以在 Linux 服务器、安卓手机、iOS、Windows、macOS 上通用。
2026 年 10 月上旬,sing-box 发布了 1.14 大版本(最新稳定版 1.14.3,10 月 9 日推送),更新内容堪称"年度最满"的一次:新增了 Surge 闭源协议 Snell 的开源实现、OpenVPN/OpenConnect 客户端、内置的 Web 仪表盘和 gRPC API 服务。本篇实测思路:先备份备份升级,再逐个验证新特性,最后给出迁移注意事项。
前置知识:会用 SSH 登录自己的 Linux 服务器,了解 JSON 格式,看得懂基本的代理出站(outbound)配置即可。
第一步:备份与升级
升级前先备份旧配置,这是硬习惯:
cp /etc/sing-box/config.json /etc/sing-box/config.json.bak.$(date +%F)
sing-box version
如果版本低于 1.14,直接下载对应平台的二进制覆盖。官方更新日志和全部版本信息都在 sing-box 官方更新日志。
特别注意:1.14 要求 Go 1.25 编译环境(不再支持 go1.24),如果你是自己编译的,要先升级 Go 工具链。用官方预编译二进制则无此烦恼。
升级后校验配置格式是否仍然合法:
sing-box check -c /etc/sing-box/config.json
新特性一:自带 Web 仪表盘 + API 服务
这是 1.14 最值得普通用户升级的特性。以前想远程看流量、切换出站组、跑网络质量测试,要么用图形客户端,要么自己写脚本调实验性接口;现在 sing-box 原生提供了一个 gRPC API 服务,还自带一个 Web 仪表盘,浏览器打开就能管。
在配置里加一个 services 段:
"services": [
{
"type": "api",
"listen": "127.0.0.1",
"listen_port": 10086,
"secret": "<你的密钥>",
"dashboard": {
"enabled": true
}
}
]
说明几点:
listen建议先填127.0.0.1,只本机访问,需要远程管理再配 TLS 或反向代理,不要裸奔暴露公网。secret是 API 密钥,图形客户端和仪表盘用Authorization: Bearer <secret>头认证;留空则关闭认证,内网测试可以,公网必须填。dashboard.enabled: true后,sing-box 会自动下载官方仪表盘前端并监听在/dashboard/路径,浏览器访问http://127.0.0.1:10086/dashboard/即可。
仪表盘能做什么:看服务状态和日志、切换/测速出站组、切换 Clash 模式、看连接跟踪、做网络质量测试和 STUN 测试。图形客户端(iOS/macOS/安卓)也可以通过"远程控制"连这个 API 管远端实例。完整字段说明见 API 服务官方文档,公开演示实例地址是 http://sing-box-dashboard.sagernet.org。
配套的还有一个新的命令行客户端:sing-box api,用 CLI 就能做和图形客户端一样的操作,适合写脚本自动化。
新特性二:Snell 协议支持
Snell 是 Surge(iOS/macOS 上的知名代理软件)自家的私有协议,一直没有开源实现。Surge 官方的逻辑是"闭源+不扩散就能保持隐蔽",但 sing-box 官方在更新日志里直言:2026 年了,这种隐蔽性早已不存在;而 Snell 本身确实有别的"随机流量"协议没有的优点——支持多路复用、完整的 TCP 语义、流量特征多样性,所以干脆用 Go 重写实现了一遍。
覆盖情况:除 v5 的 QUIC 代理模式外全部实现,且行为尽量与官方实现一致,性能不低于官方。配置示例如下(对应 Snell v4):
{
"type": "snell",
"tag": "snell-out",
"server": "<你的服务器地址>",
"server_port": 6180,
"version": 4,
"psk": "<你的预共享密钥>",
"obfs_mode": "http",
"obfs_host": "www.bing.com"
}
字段要点(以 Snell 出站官方文档 为准):
version只能填4或6,必填。v4 支持 HTTP 混淆(obfs_mode: http+obfs_host),v6 改为流量整形(mode),且要求psk长度 12~255 字节。- v5 的线协议与 v4 实际相同(官方故意不支持 v5 的 QUIC 代理模式),所以没有单独的 v5 客户端。
obfs_mode默认none,obfs_host默认www.bing.com;reuse可开启连接复用。
适用场景:你或朋友有 Surge 的 Snell 服务端,以前只能用 Surge 客户端,现在 sing-box 也能接了,多平台配置终于统一。服务端也要配对应的 Snell 入站,两端版本和 psk 保持一致。
新特性三:OpenVPN / OpenConnect 客户端
1.14 新增了 OpenVPN 客户端和服务端、OpenConnect 客户端。OpenConnect 支持 Cisco AnyConnect、GlobalProtect、Fortinet、F5、Pulse Connect Secure、Juniper Network Connect 等企业 VPN 服务器,还支持 AnyConnect 的 SSO 登录和现有会话复用。
这对很多人是刚需:公司或学校的 AnyConnect/Fortinet VPN,以前必须装臃肿的官方客户端,现在可以在 sing-box 的统一配置里接管,配合分流规则实现"办公流量走 VPN、其他直连"。OpenVPN 兼容标准服务端,包括静态密钥模式、老旧加密套件、证书校验,细节见官方文档的 OpenVPN 章节。
顺带值得知道的几项
- Hysteria2 增强:客户端默认伪装 Chrome 的 QUIC 握手指纹(注意:如果服务端用 Ed25519 证书会握手失败,可用
disable_chrome_parrot关掉);新增gecko混淆类型、BBR 配置文件、跳跃间隔随机化;还有 Hysteria Realm 中转服务,解决 Hysteria2 服务端在 NAT 后面的穿透问题。 - L3 转发与 bridge 出站:TUN/WireGuard/Tailscale 的 L3 流量可以直接转发到 WireGuard/Tailscale 端点,不再经过 L3→L4 转换;新增
bridge出站,是 L3 版的direct。 - iOS 客户端回归 App Store:苹果平台客户端换了新的开发者账号,以 sing-box MT 之名重新上架(之前叫 sing-box VT 的老用户需要重新安装,配置不会自动继承)。
- Linux 发行版/网络命名空间:新增
network_namespaces,无 root 也能用unshare建命名空间跑 TUN。 - 越狱 iOS 包:提供 rootless iOS 15+ 的
.deb,支持 Tailscale SSH 服务端和按进程名/路径分流。
迁移注意事项与排错
- App Store 版迁移:老 VT 版用户装 MT 版后配置不会继承,提前导出订阅链接或配置备份。
- Hysteria2 + Ed25519 证书:升级后握手失败先查证书类型,确认是 Ed25519 就加
disable_chrome_parrot: true。 - DNS 规则语义变化:旧的地址过滤字段(
ip_cidr等)被标记为 Legacy,1.16 会移除,建议按迁移文档改用evaluate+match_response新写法。 - Android
auto_redirect全功能:需要图形客户端的 root 服务或 root shell,按 TUN 文档 操作。
结语
1.14 是 sing-box 近两年变化最大的一次:Snell 让它第一次"吃下"了 Surge 的私有协议,OpenVPN/OpenConnect 让它能接管企业 VPN,内置仪表盘则补齐了可观测性这块短板。如果你还在 1.13 或更早版本,花 10 分钟备份升级,回报很实在。下一期可以写 Dashboard + API 的深度玩法(比如用 sing-box api 做自动测速切换),有兴趣的话留言告诉我——评论区见。
