本页目录(9)
一句话结论:sing-box 是一个通用代理内核,官方为 Android、Apple 平台和 Windows / Linux 都提供了图形客户端。它只认自己的 JSON 配置,所以使用前先确认机场提供 sing-box 订阅;导入方式是“远程配置 + 自动更新”,遇到报错优先检查版本是否匹配。
这篇 sing-box 使用教程不会教你从零手写一份几百行的配置,而是解决实际用机场时最常遇到的三个问题:该装哪个官方客户端、机场订阅怎么导入、配置里哪些地方最容易出错。如果你只是想“导入订阅就能用”,Clash 系客户端可能更合适,文末 FAQ 有对比。
sing-box 是什么
sing-box 由 SagerNet 开发,项目地址是 github.com/SagerNet/sing-box,官方文档在 sing-box.sagernet.org。它和 Xray、mihomo 一样属于“内核”,负责协议实现和流量路由,支持 Shadowsocks、VMess、VLESS(含 Reality)、Trojan、Hysteria2、TUIC、AnyTLS 等协议。不少第三方客户端也把它当作内核使用。
sing-box 的配置统一使用 JSON,结构清晰、性能不错,同一份配置可以在不同平台的官方客户端里运行,这是它吸引进阶用户的地方。代价是门槛比 Clash 高,而且版本迭代时会主动移除旧字段。
对机场用户来说,可以把 sing-box 理解成“和 Clash 同一层级、但配置语言不同的另一套体系”。机场给 Clash 客户端的订阅是 YAML,给 sing-box 的则是 JSON,两者不能互相直接使用。很多人第一次用 sing-box 卡住,原因不是软件难用,而是拿着 Clash 订阅去导入。所以在下载客户端之前,先登录机场用户中心看看有没有 sing-box 订阅按钮,这一步能帮你省掉大部分折腾。
sing-box 官方图形客户端与下载渠道
| 平台 | 官方客户端 | 下载渠道 |
|---|---|---|
| Android 5.0+ | sing-box for Android(SFA) | Google Play、F-Droid、GitHub Releases |
| iOS 15.0+ / tvOS 17.0+ | sing-box for Apple platforms | 非国区 App Store(官方 1.14 说明称以 sing-box MT 名称上架) |
| macOS 13.0+ | sing-box for Apple platforms(SFM) | 独立版:GitHub Releases 或 Homebrew brew install sfm |
| Windows 10+ / Linux | sing-box for Desktop | GitHub Releases |
需要注意几点:
- iOS 需要非中国大陆区 Apple ID,切换方式可以参考 Shadowrocket 教程里“准备非国区 Apple ID”一节。按官方说明,旧的 App Store 应用 sing-box VT 的用户需要安装新应用,配置和设置不会自动迁移。
- macOS 版已不在 Mac App Store 提供,官方说明原因是权限限制,请使用独立版。
- 小心“套壳”客户端:官方文档明确表示不收录声称使用 sing-box 的第三方项目,并提醒这类项目可能质量较差、带有广告。下载时以官方文档的客户端页面为准。
机场订阅怎么导入 sing-box
这是新手最容易卡住的一步:sing-box 官方客户端不解析 Clash 订阅,也不解析 Base64 通用订阅,它只运行完整的 sing-box JSON 配置。所以你需要先确认订阅格式,具体区别见订阅链接是什么,也可以用本站订阅解析工具查看订阅内容。
情况一:机场提供 sing-box 订阅
最省事。在机场用户中心复制 sing-box 订阅链接,按下面的步骤以远程配置导入即可。
情况二:只有 Clash / 通用订阅
需要先转换成 sing-box 配置,或者直接换用 Clash 系客户端。不要把订阅随手粘贴到来路不明的在线转换网站,订阅链接等同于你的账号凭证。
以远程配置导入(各平台大同小异)
- 新建配置:打开客户端,进入配置(Profiles)页面,新建一个配置。
- 选择远程类型:配置类型选择远程(Remote),而不是本地(Local)。
- 填写地址:名称随意,URL 粘贴 sing-box 订阅链接,并开启自动更新,间隔设为一天左右即可。
- 启动:回到主界面选中该配置并启动。Android 和 iOS 会弹出系统的 VPN 授权,允许即可;桌面端使用 TUN 时需要管理员权限。
sing-box 配置要点:看懂这几块就够了
即使配置由机场生成,看懂结构也能帮你排查问题。一份 sing-box 配置的顶层大致是这样(仅为结构示意,省略了节点细节):
{
"log": { "level": "info" },
"dns": { "servers": [ ... ], "rules": [ ... ] },
"inbounds": [
{ "type": "tun", "address": ["172.19.0.1/30"], "auto_route": true }
],
"outbounds": [
{ "type": "selector", "tag": "proxy", "outbounds": [ "节点A", "节点B" ] },
{ "type": "direct", "tag": "direct" }
],
"route": {
"rules": [
{ "action": "sniff" },
{ "protocol": "dns", "action": "hijack-dns" },
{ "rule_set": ["geosite-cn", "geoip-cn"], "outbound": "direct" }
],
"rule_set": [ ... ],
"final": "proxy",
"auto_detect_interface": true
}
}
- inbounds:流量从哪里进来。手机和桌面全局接管一般用
tun;只想给浏览器用可以加一个mixed端口。 - outbounds:流量往哪里去。机场节点、
selector(手动选择组)、urltest(自动测速组)、direct(直连)都在这里。客户端里能切换的节点,就是 selector 里的成员。 - route:分流规则。新版本用“规则动作”来做嗅探(
sniff)和 DNS 劫持(hijack-dns);国内直连依靠rule_set规则集;final决定没匹配到规则的流量去向。 - dns:DNS 写错是“能连上但网页打不开”的常见原因。一般思路是国内域名用国内 DNS,其他走代理解析。如果国内网站打开变慢,也往往是国内域名被错误地交给了海外 DNS 解析。
版本升级时最容易踩的坑
sing-box 每隔几个版本就会移除已废弃的写法,旧配置在新客户端上可能直接报错。根据官方的弃用说明:
| 旧写法 | 弃用版本 | 移除版本 | 新写法 |
|---|---|---|---|
| GeoIP / Geosite 数据库 | 1.8.0 | 1.12.0 | rule_set 规则集 |
| block / dns 特殊出站 | 1.11.0 | 1.13.0 | 规则动作(reject、hijack-dns) |
| 入站里的 sniff 等旧字段 | 1.11.0 | 1.13.0 | 路由规则动作 sniff |
| 旧版 DNS 服务器写法 | 1.12.0 | 1.14.0 | 带 type 字段的新格式 |
这也是为什么不建议从网上随便复制一份“万能配置”:它很可能是按旧版本写的,在新客户端上无法启动,或者能启动但 DNS 行为与预期不同。
所以遇到“unknown field”“已移除”之类的报错,先看客户端内核版本,再看配置是否为对应版本生成。机场订阅支持按版本输出时,选择与你客户端一致的版本;用 v2rayN 调用 sing-box 内核的用户,也要注意 v2rayN 对内核版本的适配说明,详见 v2rayN 使用教程。
新手推荐的上手路线
sing-box 的学习曲线比 Clash 陡,建议按下面的顺序循序渐进,而不是一上来就手写完整配置:
- 先确认订阅:问清楚机场是否提供 sing-box 订阅、对应哪个内核版本。没有的话,直接用 Clash 系客户端是更省时间的选择。
- 用远程配置跑起来:先让机场生成的配置在官方客户端里正常工作,确认节点可用、网页能打开。
- 再读懂配置:在客户端里查看配置内容,对照上面的结构说明理解 inbounds、outbounds、route、dns 各自的作用。
- 最后才自定义:真需要改规则时,复制一份配置作为本地配置修改,保留远程配置作为可用的备份,改坏了随时切回去。
- 官方客户端覆盖 Android、Apple 平台、Windows 和 Linux
- 一份 JSON 配置多平台通用,结构清晰
- 协议支持全面,跟进新协议较快
- 不能直接导入 Clash 或通用订阅
- 大版本升级会移除旧字段,旧配置可能失效
- 出错时需要读日志、读文档,对新手不友好
如果你想在客户端里像 Clash 那样切换策略组,配置中通常需要包含 selector 出站;部分配置还会启用 experimental 里的 Clash API,便于配合网页面板查看连接和切换节点。是否启用取决于机场生成的配置,新手不必手动添加。
sing-box 常见问题排查
- 远程配置下载失败:订阅域名被干扰时,先用其他方式连上代理再更新,或换备用订阅地址,参考订阅更新失败怎么办。
- 启动后能连上但网页打不开:重点检查 DNS 部分和
hijack-dns规则,再换节点测试,参考连上了却打不开网页。 - 协议相关问题:Hysteria2、TUIC 基于 UDP,在 UDP 受限的网络里可能不稳定,可以切换到 TCP 类协议的节点。协议特点见 Hysteria2 协议介绍和 VLESS Reality 介绍。
常见问题
sing-box 可以直接导入 Clash 订阅或 V2Ray 订阅吗?
导入配置后提示 unknown field 或启动失败是怎么回事?
iPhone 上的 sing-box 去哪里下载?
sing-box 和 Clash(mihomo)选哪个?
相关教程
Clash Verge Rev 使用教程:下载安装、导入机场订阅、TUN 模式设置
目前 Windows/macOS 上最省心的机场客户端。本文手把手讲完安装、导入订阅、选节点、TUN 模式与常见报错。
客户端教程FlClash 使用教程:Windows / macOS / Android 下载、导入订阅与 TUN 设置
手机电脑同一套界面的 mihomo 客户端,下载、导入订阅到 TUN 设置一篇讲完。
客户端教程