sing-box 使用教程:下载、导入订阅、JSON 配置与常见错误
- 客户端
- sing-box
- 支持平台
- Windows / macOS / Android / iPhone / iPad / Linux / 路由器
- 价格
- 免费(开源)
- 官方地址
- 前往下载
- 下载
- 安装
- 导入订阅
- 设置
- 排错
sing-box 是 SagerNet 开发的开源通用代理平台,支持 Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC 等几乎所有主流协议。它既是一个命令行程序,也是很多图形客户端(如 v2rayN、NekoBox 等)使用的内核。
sing-box 官方提供以下几种使用方式:
| 平台 | 官方客户端 | 说明 |
|---|---|---|
| Android | SFA(sing-box for Android) | 图形界面 |
| iOS / iPadOS | SFI(sing-box for iOS) | 图形界面 |
| macOS | SFM(sing-box for macOS) | 图形界面 |
| Windows / Linux / macOS | 命令行程序 | 需要自行管理配置文件 |
和 Clash 系客户端最大的区别是:sing-box 使用自己的 JSON 配置格式,既不兼容 Clash 的 YAML,也不能直接使用 Base64 通用订阅。因此使用前请确认机场提供“sing-box 订阅”。如果机场只提供 Clash 订阅,建议改用 Clash 系客户端。
下载
只使用官方渠道:
- SFA(Android):GitHub 项目
SagerNet/sing-box的 Releases 页面提供 APK,也可以从 Google Play 安装。APK 一般按处理器架构区分,近年手机选arm64-v8a或通用包。 - SFI(iOS):在 App Store 搜索 sing-box 安装。它在部分地区的 App Store 中不可用,中国大陆区通常搜不到,需要使用自己的非中国区 Apple ID,不要使用来源不明的共享账号。
- SFM(macOS):可以从 Mac App Store 安装,GitHub Releases 中也提供独立安装包。
- 命令行版:GitHub Releases 中按“系统-架构”命名提供压缩包,例如 Windows 64 位、Linux amd64 / arm64 等;macOS 和部分 Linux 发行版也可以通过包管理器安装。
不要下载网上流传的“汉化版”“一键脚本整合包”等来路不明的版本。sing-box 本身免费开源,第三方修改版可能被植入后门。
安装
- SFA:下载 APK 后安装,若系统阻止,允许浏览器安装未知来源应用。
- SFI / SFM:从 App Store 安装即可,首次启动时按提示允许添加 VPN 配置或网络扩展。macOS 上可能需要到“系统设置”中批准网络扩展。
- 命令行版:解压得到
sing-box(Windows 上是sing-box.exe)可执行文件,放到固定目录即可。用sing-box version可以检查是否能正常运行。
导入订阅
以 SFA / SFI / SFM 为例,三者的操作逻辑基本一致(界面为英文或随系统语言,下面用功能描述):
- 在机场后台复制 sing-box 订阅链接;
- 打开客户端,进入 Profiles(配置)页面;
- 新建一个配置,类型选择 Remote(远程);
- 填写名称,在 URL 一栏粘贴订阅链接;
- 可以同时打开自动更新并设置间隔;
- 保存后客户端会下载配置,在配置列表中选中它。
机场提供的 sing-box 订阅实际上是一份完整的 JSON 配置文件,其中已经包含节点、分流规则和 DNS 设置,所以导入后可以直接使用。订阅链接相当于账号凭证,不要分享给他人,泄露后应在机场后台重置。
不清楚订阅原理的话可以先看 机场订阅是什么。
命令行版没有“导入订阅”按钮:需要把机场提供的 sing-box 配置下载为本地文件(例如 config.json),然后用该文件启动。可以先运行 sing-box check -c config.json 检查配置是否有语法错误。
添加节点
sing-box 官方图形客户端不支持直接粘贴 vless://、hysteria2:// 这类单个节点分享链接。只有单个节点时:
- 推荐向机场索取 sing-box 订阅;
- 或者自己编写 JSON 配置,在
outbounds中添加该节点,再在客户端中新建 Local(本地)类型的配置导入文件。
手写配置需要阅读 sing-box 官方文档,新手不推荐。想了解 Hysteria2 等协议,可以参考 Hysteria2 协议介绍。
导入配置并启动后,如果配置中包含可选择的策略组(selector),可以在客户端的 Groups(分组)页面切换节点,并进行延迟测试。
更新订阅
- 图形客户端:在 Profiles 页面打开对应配置,执行手动更新;如果创建时开启了自动更新,会按间隔自动拉取。
- 命令行版:重新下载最新配置文件覆盖旧文件,然后重启 sing-box。可以自行编写定时任务完成自动更新。
需要注意的是,sing-box 的配置格式会随版本演进,旧字段可能被弃用或移除。客户端升级到新版本后,如果启动报错,往往是机场下发的配置还没有适配新版本;反过来,客户端版本太旧也可能不认识新字段。遇到这种情况,先把客户端更新到最新正式版,再联系机场确认配置兼容的版本。
VPN 模式与系统代理
- SFA / SFI:在 Dashboard(仪表盘)页面点击启动按钮,首次会请求 VPN 权限,允许后即连接。手机端没有“系统代理”概念,统一通过 VPN 接管流量。
- SFM:启动后按配置决定是使用 TUN 还是设置系统代理。如果配置中的入站(inbound)启用了自动设置系统代理,启动时就会生效。
- 命令行版:运行
sing-box run -c config.json启动。命令行版是否设置系统代理完全由配置文件决定;若配置只开了本地 mixed / http 入站,需要自己在系统或浏览器中填写代理地址和端口。
TUN 模式
sing-box 的 TUN 是通过配置文件中的 tun 类型入站实现的:
- SFA / SFI:移动端图形客户端通过系统 VPN 接口建立隧道,本身就是 TUN 方式,无需额外开关;
- SFM:使用 macOS 网络扩展,同样以 TUN 方式工作;
- 命令行版:只要配置中包含
tun入站即会启用,但创建虚拟网卡需要管理员 / root 权限,Windows 上要以管理员身份运行终端,Linux 上通常以 root 或系统服务方式运行。
在 Linux 上长期使用时,可以把 sing-box 注册为 systemd 系统服务,实现开机自启和崩溃后自动重启。部分发行版的软件包已自带服务文件,具体方法以官方文档为准。
Windows 上 sing-box 官方没有图形客户端。Windows 用户如果想用 sing-box 内核又不想写命令行,可以使用 v2rayN 等集成了 sing-box 内核的图形客户端。
规则模式
sing-box 的分流规则写在配置文件的 route 部分,机场提供的 sing-box 订阅一般已经包含“国内直连、国外代理”的规则,启动后默认就是规则模式,不需要额外设置。
如果配置启用了 Clash API(experimental 中的相关字段),图形客户端的仪表盘中可能出现模式切换选项,可以在规则与全局之间切换;没有启用时则只能通过修改配置来调整。
全局模式
在支持模式切换的配置中,选择全局即可让所有流量走代理。对于不支持切换的配置,需要修改 route 规则(例如把最终出站设为代理),不建议新手手动改动。全局模式会拖慢国内网站,只适合临时排查。
常见错误
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 导入配置提示解析失败 | 用了 Clash 或通用订阅链接 | 改用机场的 sing-box 订阅链接 |
| 启动报字段未知或已弃用 | 配置文件与客户端版本不匹配 | 把客户端更新到最新版,并向机场确认配置适配的版本 |
| 命令行提示权限不足 | 启用了 TUN 但未以管理员 / root 运行 | 用管理员终端或 sudo 运行,或改为系统服务 |
| iOS 搜不到 sing-box | 当前 Apple ID 所在地区未上架 | 使用自己的非中国区 Apple ID |
| 连接成功但无法上网 | DNS 配置有误或节点失效 | 换节点测试;更新订阅;检查配置中的 DNS 部分 |
| 节点全部超时 | 套餐到期或流量用完 | 登录机场后台检查套餐状态 |
| Windows 不知道如何使用 | 官方无 Windows 图形客户端 | 使用命令行版,或改用集成 sing-box 内核的 v2rayN |
更多平台客户端对比见 客户端教程总览。
下一步
支持 sing-box 的机场
以下机场的订阅可以直接导入 sing-box,按综合评分排序。
✓ 实测支持 ◐ 部分节点