Sing-box教程:跨平台内核与客户端的选择与配置思路

Sing-box教程很容易写成配置文件大全,机场牛换个写法:先讲它是什么、该不该用,再讲配置的思路。结论先放这:sing-box 不是“又一个 Clash”,它是一个通用代理平台(内核),官方客户端覆盖 iOS、安卓和 macOS,配置是 JSON 文件,门槛比 Clash 系客户端高一档。想先跑通的新手,建议先用现成的 Mihomo 系客户端;已经有 sing-box 格式订阅,或者就想自己掌控分流,再往这边走。

sing-box 是什么:内核、配置和客户端三层

很多人对 sing-box 的第一反应是“它是个软件”。更准确的说法是三层东西叠在一起:

层 是什么 例子
内核 真正转发流量的程序,开源,可以命令行运行,也可以被客户端内嵌 sing-box 本体
配置 一份 JSON 文件,描述流量从哪进、往哪出、怎么分流、DNS 怎么解析 config.json
客户端 把内核和配置包装成界面的应用 官方客户端,以及第三方图形界面

它支持的协议覆盖面很广,常见的 Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC、WireGuard 都在,较新的版本还陆续加入了 ShadowTLS、AnyTLS 等,具体以你所用版本的官方文档为准。项目的源码和更新说明在 sing-box 官方仓库。

它既能当客户端,也能当服务端。机场牛这里只讲客户端侧,自建服务端的取舍,看 机场和自建节点。

官方 Sing-box客户端:SFI、SFA、SFM 分别在哪

官方为不同平台各做了一个客户端,名字用的是缩写,常被并称为 SFI SFA,再加上 macOS 的 SFM:

简称 平台 获取渠道 要点
SFI iPhone、iPad 官方文档给出的渠道,通常是 App Store,是否可见取决于地区 借助系统的 VPN 机制工作,配置以 Profile 形式管理,iOS 上的整体选择见 iOS机场教程
SFA 安卓 以官方文档说明的渠道为准 注意安装包架构和 VPN 权限,见 安卓机场教程
SFM macOS 以官方文档说明的渠道为准 首次启用会有系统权限确认,见 Mac客户端教程

Windows 和 Linux 上,据官方文档的说明,主要提供命令行版本,图形界面多由第三方项目提供。渠道会随项目调整,机场牛不写具体的上架情况,请以官方仓库和文档为准;下载只走官方渠道,不碰网盘、群文件和“修改版”。

配置文件长什么样:先看懂五个大块

一份配置通常是一个 JSON 对象,最顶层有这几块,下面是结构示意,不能直接运行:

{
  "log": {},
  "dns": {},
  "inbounds": [],
  "outbounds": [],
  "route": {}
}
字段 作用 你可以这样理解
log 日志级别与输出位置 排错时的黑匣子
dns DNS 服务器和解析规则 域名先问谁
inbounds 入口,流量从哪进来,比如虚拟网卡、本地代理端口 大门
outbounds 出口,包括各个节点、直连,以及选择器、自动测速这类分组 出口名单
route 路由规则,决定哪类流量走哪个出口 交通指挥

桌面端用命令行版本时,有两条命令值得记住,一条检查配置,一条运行:

sing-box check -c config.json
sing-box run -c config.json

先 check 再 run,是省时间的好习惯,报错信息通常会指出是哪个字段有问题。

有一个坑要提前说:字段的写法和结构随版本调整过,比如早期靠地理数据库做分流,后来改为规则集的方式,DNS 相关的写法也有变化。所以旧教程里的整份配置,放到新版本上可能报错或提示弃用,以你所用版本的官方文档为准。也不要整份复制来路不明的配置,里面的出口信息、规则和 DNS 设置,你未必看得懂,出了问题更难查。

机场订阅怎么用在 sing-box 上

配置是 JSON,而多数机场给的是通用格式或 Clash 格式,所以“订阅怎么进来”是 sing-box 上手的第一道坎。常见的三条路:

路径 做法 取舍
机场直接提供 sing-box 格式订阅 在官方客户端里新建远程配置,填入链接 最省事,前提是机场确实提供,先问客服
订阅转换 把通用或 Clash 订阅转换成 sing-box 能读的配置 链接会经过转换工具,风险和做法见 订阅转换,转出来的结果也要自己核对
手写 outbounds 从订阅里取节点参数,自己写进配置 最灵活,也最费劲,节点变动要手动改

官方客户端的远程配置通常可以设置自动更新,具体选项以界面为准,间隔怎么定见 订阅更新频率。订阅链接等同于账号凭证,处理泄露的办法见 机场订阅链接安全。

协议和内核版本也要对得上,节点用的协议内核不认,表现就是节点被跳过或连不通。各协议的设计思路和客户端支持,见 VLESS、Trojan、Hysteria2 的区别,较新的协议可以看术语页 AnyTLS是什么。

sing-box 和 Clash 系怎么选:别按名气,按订阅格式和需求

维度 sing-box Clash 系(Mihomo 内核)
配置格式 JSON YAML
订阅生态 多数订阅需要转换,或由机场专门提供 多数机场直接给对应订阅
客户端 iOS、安卓、macOS 有官方客户端 桌面端主要靠社区的图形客户端
上手难度 偏技术,需要读配置 以图形界面为主
规则写法 路由规则加规则集 规则、规则集加策略组

决策路径:

  1. 想先用起来:从 Clash Verge下载 那一篇开始,或者看另一款客户端 Mihomo Party,把订阅、规则模式、系统代理走通;
  2. 手机上想用官方客户端:看上表中的 SFI 和 SFA,先确认订阅格式;
  3. 手里的订阅本来就是 sing-box 格式:直接用它,不必为了统一而转成 Clash;
  4. 想自己掌控 DNS 与分流:sing-box 的配置自由度高,但备好耐心,别指望一次配成。

这篇 Sing-box教程 的适用人群:谁适合直接上,谁先别碰

适合直接上的人:

  • 能读懂 JSON,愿意对着官方文档查字段;
  • 订阅格式匹配,或者愿意承担转换的麻烦;
  • 需要多个平台用同一套内核和配置思路;
  • 排错时会看日志,而不是只会重装。

先别碰的人:

  • 刚接触机场,连节点、订阅、规则模式还分不清,请先看 机场节点是什么;
  • 只想“点个导入就能用”,没有折腾的打算;
  • 机场只给 Clash 格式,又不愿意转换。

这不是门槛歧视,是体力分配:把精力花在对的地方,比硬上难度高的工具更实在。

从 Clash 概念翻译到 sing-box:同一件事在两边怎么叫

如果你已经用过 Clash 系客户端,入门的捷径不是从头读文档,而是先做一张“翻译表”,把熟悉的概念对到 sing-box 里。下表只是帮你建立直觉,两边的设计并不一一对应,具体字段以所用版本的官方文档为准。

你在 Clash 系里熟悉的 sing-box 里大致对应 说明
节点 outbounds 里的一项,带具体的协议类型 每个节点就是一个出口
手动选择的策略组 selector 类型的出口 把多个出口放进一组,由你手动切换
自动测试的策略组 urltest 类型的出口 按定时测试的结果自动挑选,依据的是握手类指标
规则列表 route 里的规则 通常自上而下匹配,先命中的先生效
规则集 rule_set 写法随版本变化较大,以所用版本为准
兜底的 MATCH 规则 route 里的 final 没命中任何规则的流量走哪个出口
本地代理端口 inbounds 里的 mixed 之类入口 软件把流量送过来的地方
TUN inbounds 里的 tun 入口 虚拟网卡接管流量,需要相应权限
DNS 设置 dns 块,加上路由里与 DNS 相关的规则 写法随版本调整过,是最容易出错的部分
订阅 官方客户端里的远程配置 前提是订阅返回的是 sing-box 能解析的配置

用这张表要记住两点:它帮你找到对应的位置,不帮你搬运配置。Clash 的 YAML 和 sing-box 的 JSON,结构差别很大,把 Clash 配置逐行“翻译”成 JSON,很容易漏掉语义。稳妥的做法是先理解概念,再用官方文档的写法重新组织。想回头巩固 Clash 一侧的规则与策略组概念,看 分流规则;TUN 的基本概念,见术语页 TUN模式。

第一次跑 sing-box 之前的自查清单:十一条逐项勾

sing-box 的坑,多数出在“一上来就写太多”。下面这份清单的思路是:每一步都留退路,每一步都能验证。

  • 程序来自官方仓库或官方文档指向的渠道,仓库名称核对过;
  • 弄清了自己用的版本,查文档时对照同一版本,而不是搜到哪篇看哪篇;
  • 确认了订阅的格式:能不能直接作为远程配置,还是需要转换;
  • 先写一份最小配置:一个入口、一个出口、一条兜底路由,跑通了再加别的;
  • 每次修改之后先用 check 命令校验,通过了再 run;
  • 日志级别调到能看见报错信息,出问题先看日志,再动配置;
  • 改配置之前把旧文件复制一份,文件名带上日期,随时能回退;
  • 订阅链接、节点密码这类敏感信息,不写进公开仓库,也不贴在求助帖里,求助前先替换成占位符;
  • 需要虚拟网卡的场景,已确认系统权限和客户端提示,并且知道怎么关掉;
  • 没有同时开着另一个代理客户端,避免两边抢系统代理或虚拟网卡;
  • 想放弃的时候,知道怎么还原:关闭系统代理、停止进程、撤销虚拟网卡。

sing-box 上手的五个常见误区:为什么不对,该怎么做

误区一:网上搜到的配置,整份复制就能用。

  • 为什么不对:配置里装着出口信息、DNS 和路由,字段写法随版本不同而不同,来路不明的配置还可能把流量引向你看不懂的地方;
  • 正确做法:先读懂配置的五个大块,再借别人的片段,每借一段就用 check 命令校验一次。

误区二:sing-box 比 Clash 系“更先进”,所以应该换。

  • 为什么不对:两者是并行的体系,各有取舍。“先进”没有统一的标准,换工具的成本却是实打实的;
  • 正确做法:按订阅格式和需求选。订阅本来就是 Clash 格式,就先用 Mihomo 系客户端,有了明确的理由再考虑迁移。

误区三:协议支持越多越好,所以必须追最新版本。

  • 为什么不对:节点用不到的协议,内核再新也没有意义;新版本还可能调整字段写法,让旧配置报错或提示弃用;
  • 正确做法:先看节点实际用的协议,核对所用版本是否支持,升级之前把配置备份好。协议之间的差别见 VLESS、Trojan、Hysteria2 的区别。

误区四:官方客户端在每个平台都有图形界面。

  • 为什么不对:据官方文档的说明,官方客户端主要覆盖 iOS、安卓和 macOS,Windows 与 Linux 以命令行内核为主,图形界面多由第三方提供,情况也可能随项目更新而变;
  • 正确做法:以官方仓库和文档为准。用第三方图形界面时,先核对仓库来源和最近的更新记录。

误区五:订阅转换只是点一下的小事,随便找个在线工具就行。

  • 为什么不对:订阅链接等同于账号凭证,交给第三方转换,就是把凭证交了出去;转换的结果还可能漏掉部分节点,或者把策略组弄乱;
  • 正确做法:先问机场有没有现成的 sing-box 格式订阅,实在要转换,先读 订阅转换 里的风险说明,转换后核对节点是否齐全、分流是否符合预期。

今天就能做的三件事

  1. 先确认你手里订阅的格式,再决定是走 sing-box 还是 Mihomo 系;
  2. 要试 sing-box,就先在一台设备上跑一份最小的配置,用 check 命令校验通过,再逐步加 DNS 和分流;
  3. 想对比不同机场的资料、再决定买哪家,去 机场推荐排行榜 和 机场对比 看。写这篇 Sing-box教程 的目的,是让你选工具之前心里有数,不是让每个人都去写 JSON。

软件功能、字段写法和上架情况会随版本变化,一切以项目官方文档为准。使用代理服务请遵守所在地法律法规,机场牛不提供法律意见。

Sing-box教程常见问题

sing-box 和 Clash 是什么关系?

两者没有从属关系,是并行的两套体系。Clash 系现在的主流内核是 Mihomo,配置是 YAML;sing-box 是另一个独立项目,配置是 JSON,自称通用代理平台。两边都支持常见协议,也都有 TUN 能力,差别主要在配置格式、订阅生态和客户端分布。

sing-box 能直接导入机场给的订阅吗?

看订阅格式。官方客户端的远程配置要求返回的是 sing-box 能解析的配置,机场只给通用格式或 Clash 格式时,一般需要转换或让机场提供对应格式。转换会让订阅链接经过第三方,最好先问机场有没有现成的 sing-box 格式订阅。

配置文件里的字段看不懂,网上的教程为什么在新版本里跑不起来?

项目更新较快,字段的写法和结构在不同版本之间调整过,旧教程里的配置在新版本上可能报错或提示弃用。排查办法是先用官方的检查命令校验,再对照你所用版本的官方文档修改,不要整份复制来路不明的配置运行。

Windows 上有官方的图形客户端吗?

据官方文档的说明,官方客户端主要覆盖 iOS、安卓和 macOS,Windows 与 Linux 上以命令行内核为主,图形界面多由第三方提供。具体情况可能随项目更新而变,请以官方仓库和文档为准,下载只走官方渠道。

新手应该直接学 sing-box 吗?

不建议直接上。先用 Mihomo 系的图形客户端把订阅导入、规则模式和系统代理跑通,理解节点、订阅、分流这些概念,再看 sing-box 的配置结构,学习曲线会平缓很多。已经拿到 sing-box 格式的订阅,或者需要官方移动端客户端时,再考虑它。

延伸阅读

还没想好选哪家?先看夯到拉榜

机场牛把 28 家机场按资料透明度分成夯到拉完了六档,价格、线路和来源一页摆清楚。打开机场推荐排行榜,或者直接看便宜机场、专线机场、优惠码。