跳转到内容

Sing-box 完整教程 2026:从安装到规则分流的一站式指南

2024 年之后,科学上网圈悄然完成一次「内核换代」:Clash 生态式微,Sing-box 成为事实标准。你会发现,越来越多的机场订阅开始提供 sing-box 格式,各类「一键订阅」工具也把 Sing-box 作为首选输出。为什么?因为它把 代理协议、路由规则、DNS、TUN 虚拟网卡 全部整合进一个二进制程序,配置更简洁、性能更高、资源占用更低。

如果你还在用 Clash Verge / v2rayN,或者刚拿到一份订阅不知道怎么用,这篇 2026 年最新 Sing-box 完整教程 会带你从零走通:它到底是什么、和 Clash 有什么区别、全平台怎么装、订阅怎么导入、规则怎么分流、DNS 怎么防污染,以及如何用它聚合自建节点 + 机场订阅。


一、Sing-box 是什么

1.1 一句话定义

Sing-box 是一个通用的网络代理平台(通用代理内核),由 SagerNet 团队开发,用 Go 语言编写。它不像 Clash 那样「只做规则分流」,而是把 入站、出站、路由、DNS、协议转换 全部统一在单一配置模型中。

1.2 与 Clash / v2rayN 的本质区别

维度Clash / Clash.Metav2rayN (v2ray-core)Sing-box
架构规则引擎 + 多核适配v2ray-core 前端单一全能内核
协议支持依赖 meta 内核扩展依赖 v2ray/xray原生全套(VMess/VLESS/Trojan/Shadowsocks/Hysteria2/…)
规则系统rules.yaml + 规则集路由规则rule-set(二进制,加载快)
DNS独立 DNS 模块独立统一 DNS 模块,支持 DoH/DoT/直连
TUN 模式需 TUN 助手系统代理原生 TUN,无需辅助进程
资源占用低(单二进制)
配置复杂度YAML 较繁琐JSON 较繁琐JSON 但结构化更清晰

💡 核心差异:Clash 是「规则引擎 + 适配各种内核」,而 Sing-box 是「一个内核搞定所有」。后者在复杂网络环境(需分流 + 防污染 + 全局 TUN)时优势明显。

1.3 什么是 SFM 生态

SFM = Sing-box + FlClash / Mihomo 前端?不,更准确的理解是:Sing-box 作为底层内核,上层由各类「带 GUI 的客户端」调用。常见的有:

  • Windows:SFM(Sagernet For Windows / sing-box 官方 GUI)、hiddify-windows
  • macOS:SFM、sing-box 命令行 + GUI 壳
  • Android:SagerNet、sing-box for Android、hiddify
  • iOS:SFM(需外区账号)、shadowrocket(支持 sing-box 订阅)

二、核心概念速通

看懂这几个概念,配置就不难了:

概念含义类比
inbound(入站)本机如何接收流量(如 TUN、mixed 端口)家门口的收发室
outbound(出站)流量从哪个节点出去(代理/直连/阻断)快递发往哪个仓库
route(路由)根据规则把流量分到不同 outbound分拣中心
rule-set(规则集)批量规则(geoip / geosite)分拣清单
DNS域名解析策略,防污染关键查地址簿

一个典型流程:App 流量 → inbound(TUN) → route(按 rule-set 判断) → 国内直连 / 国外走代理 outbound → 出站节点 → 互联网


三、客户端安装(全平台)

3.1 Windows

方案 A:SFM(推荐)

  1. 到 GitHub 下载 SFMsing-box 官方 Windows 客户端
  2. 安装后打开,导入订阅(见第四章)
  3. 开启 TUN 模式即可全局代理

方案 B:命令行(极客)

powershell
# 下载 sing-box 并运行(示例,路径以官方为准)
winget install sing-box
sing-box run -c config.json

3.2 macOS

macOS 上由于签名限制,推荐用 GUI 壳 + 内核 方案:

  1. 安装 SFM for macOS 或从 Homebrew 安装内核
  2. 若用命令行:brew install sing-box
  3. 配置 TUN 需授权系统扩展(设置 → 隐私与安全 → 允许)

3.3 Android

最成熟:

  • SagerNet:原生支持 sing-box 内核,导入订阅即用
  • sing-box for Android:官方内核 + 简易 UI
  • hiddify:开箱即用,内置订阅转换

3.4 iOS / iPadOS

iOS 限制最多,但有两条路:

  1. SFM / sing-box iOS:需外区(美区/港区)Apple ID 下载
  2. Shadowrocket(小火箭):支持直接导入 sing-box 订阅链接,国内账号即可

国内 iOS 用户看这篇:iOS 代理完整指南 2026 获取外区账号与客户端方案。


四、订阅导入与转换

4.1 直接订阅(机场支持时)

多数现代机场在「订阅链接」里提供 sing-box 格式,复制链接,在客户端选「添加订阅 / URL」粘贴即可。客户端会自动拉取节点 + 规则。

4.2 订阅转换(机场只给 Clash/V2Ray 时)

sub-store(订阅转换) 把任意格式转成 sing-box:

工具说明
sub-store本地/在线订阅管理,支持输出 sing-box 格式
subconverter老牌转换,支持 target=singbox
一键订阅脚本部分机场自带「生成 sing-box 订阅」按钮
bash
# subconverter 示例(本地部署)
# 访问 http://127.0.0.1:25500 ,粘贴原订阅,target 选 sing-box,生成新链接

4.3 手动合并多个订阅

高级玩法:把「机场 A + 自建节点 + 另一个机场」聚合。这需要用脚本或订阅工具做 订阅聚合(见第九章实战)。


五、路由规则与 rule-set 分流

这是 Sing-box 的强项。rule-set 用二进制格式(.srs),加载快、占用小。

5.1 基础路由逻辑

json
{
  "route": {
    "rules": [
      { "rule_set": ["geoip-cn"], "outbound": "direct" },
      { "rule_set": ["geosite-cn"], "outbound": "direct" },
      { "rule_set": ["geosite-category-ads-all"], "outbound": "block" },
      { "rule_set": ["geosite-netflix"], "outbound": "proxy-stream" }
    ],
    "final": "proxy",
    "auto_detect_interface": true
  }
}

含义:

  • 国内 IP(geoip-cn)→ 直连
  • 国内域名(geosite-cn)→ 直连
  • 广告域名 → 阻断
  • Netflix 域名 → 走「流媒体专线」outbound
  • 其余 → 默认走代理

5.2 常用 rule-set 清单

规则集作用
geoip-cn中国大陆 IP
geosite-cn中国大陆域名
geosite-geolocation-!cn非中国大陆域名
geosite-netflix / geosite-disney流媒体定向
geosite-category-ads-all广告拦截
geosite-github / geosite-google指定服务走代理

💡 规则集文件(.srs)可从社区维护的仓库获取,如 MetaCubeX/meta-rules-dat 的 sing-box 版本。


六、DNS 配置与防污染

DNS 是「能不能稳定翻墙」的命门。Sing-box 的 DNS 模块统一处理,避免「代理开了但 DNS 泄露」的经典坑。

6.1 两种模式

模式原理适用
fake-ip返回假 IP(198.18.x.x),由内核拦截真实域名再代理通用、防泄露好
redir-host真实解析,依赖路由把 DNS 请求送代理某些 App 兼容更好

6.2 推荐 DNS 配置(fake-ip + 防污染)

json
{
  "dns": {
    "servers": [
      { "tag": "local", "address": "223.5.5.5", "detour": "direct" },
      { "tag": "remote", "address": "https://1.1.1.1/dns-query", "detour": "proxy" },
      { "tag": "block", "address": "rcode://refused" }
    ],
    "rules": [
      { "rule_set": "geosite-cn", "server": "local" },
      { "rule_set": "geosite-category-ads-all", "server": "block" }
    ],
    "final": "remote",
    "strategy": "prefer_ipv4"
  }
}

要点:

  • 国内域名走本地 DNS(223.5.5.5 / 119.29.29.29)
  • 国外域名走代理链路的 DoH(1.1.1.1)
  • 广告域名直接 refuse

七、Clash 配置迁移到 Sing-box

从 Clash 转过来,关键映射:

Clash 概念Sing-box 对应
proxiesoutbounds
proxy-groupsoutbounds(含 selector/urltest 类型)
rulesroute.rules
rule-providersrule-set
dnsdns
tuninbounds(type: tun)
mixed-portinbounds(type: mixed)

自动转换工具

不想手搓?用这些工具一键转:

  • subconvertertarget=singbox 直接输出
  • mihomo → sing-box 转换脚本:社区维护,GitHub 可搜

习惯 Clash 界面的用户,也可以继续用 Clash 客户端对比 里推荐的客户端,它们多已支持 sing-box 内核。


八、TUN 模式与全局代理

8.1 为什么需要 TUN

普通「系统代理」只接管浏览器等支持代理的 App,游戏、命令行、Docker、终端 不走代理。TUN 模式创建一个虚拟网卡,接管全系统流量,让任何程序都能翻墙。

8.2 开启方式

json
{
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "interface_name": "tun0",
      "inet4_address": "172.19.0.1/30",
      "auto_route": true,
      "stack": "system"
    }
  ]
}

开启后:

  • auto_route: true 自动改路由表
  • stack: system 用系统网络栈(macOS/Linux 兼容性最好)
  • Windows 需允许驱动安装

⚠️ TUN 模式下若「微信/银行 App 异常」,通常是规则没把它们的域名加直连。参见第五章把对应域名加入 geosite-cn 或单独 direct 规则。


九、实战:自建节点 + 订阅聚合

3X-UI 自建节点 和机场订阅聚合,既能省钱又能保底。

9.1 配置结构

json
{
  "outbounds": [
    { "type": "direct", "tag": "direct" },
    { "type": "block", "tag": "block" },
    {
      "type": "vless",
      "tag": "self-node",
      "server": "your-vps.com",
      "uuid": "xxxx-xxxx",
      "tls": { "enabled": true },
      "transport": { "type": "grpc" }
    },
    {
      "type": "selector",
      "tag": "proxy",
      "outbounds": ["self-node", "airport-A", "airport-B"]
    }
  ]
}

9.2 聚合订阅的两种方式

  1. 客户端手动加多个订阅:SagerNet / SFM 支持多订阅并存,selector 里切换
  2. 订阅转换服务聚合:用 sub-store 把多个订阅 + 手动节点合并成一个 sing-box 订阅链接,再导入

9.3 与 WireGuard 配合

如果需要「全局 VPN 级」体验(如整台路由器翻墙),可先用 WireGuard 自建 打通隧道,再在设备上用 Sing-box 做精细分流。两者互补:WireGuard 负责通道,Sing-box 负责规则。


十、常见问题

Q1:Sing-box 能联网但部分网站打不开?

通常是路由/DNS 问题:

  1. 确认 final outbound 指向有效的代理节点
  2. 检查 DNS 是否泄露——用 dnsleaktest.com 测试
  3. 把打不开的域名手动加入 proxy 或对应 geosite 规则
  4. 切换 fake-ipredir-host 试试
Q2:规则不生效,所有流量都走代理或都直连?

排查顺序:

  • route.rules 顺序从上往下匹配,先写直连/阻断,最后写默认代理
  • rule_set 文件是否正确加载(路径/URL 有效)
  • auto_detect_interface: true 是否开启,否则 TUN 路由可能错乱
  • 用客户端日志看每条连接命中了哪条规则
Q3:内存占用高 / 卡顿?

Sing-box 本身很轻量(常驻 30~80MB)。若卡顿:

  • 减少 rule-set 数量,只加载用到的
  • geoip/geosite.srs 二进制版,别用文本版
  • 关闭不必要的 inbounds(如同时开了 mixed + tun 可能冲突)
Q4:DNS 泄露怎么办?

DNS 泄露会让运营商看到你访问了什么。修复:

  1. fake-ip 模式
  2. 国外域名 DNS 必须 detour: proxy(走代理链路解析)
  3. dns.rules 里确保 geosite-cn 才走 local
  4. 测试:访问 dnsleaktest.com,显示的是代理节点 IP 而非本机 ISP 即正常
Q5:iOS 上没有 SFM 怎么办?

两条路:

  1. 换美区/港区 Apple ID 下载 SFM 或 sing-box
  2. 直接用 Shadowrocket 导入 sing-box 订阅(小火箭支持该格式),国内账号可购
  3. 详见 iOS 代理指南 2026
Q6:和 Clash Verge Rev 该选哪个?
  • 追求简单、GUI 友好、社区模板多 → Clash Verge Rev(仍可用,meta 内核)
  • 追求性能、低占用、原生 TUN、协议全家桶 → Sing-box

2026 年新设备建议直接上 Sing-box;老设备若 Clash 配置已稳定,不必强行迁移。

Q7:订阅经常失效 / 节点少?
  • sub-store 做订阅聚合,多机场互为备份
  • 自建节点保底(参考 3X-UI 教程
  • 定期更新 rule-set(geoip/geosite 数据会变化)
Q8:Docker / 终端 / 游戏怎么走代理?

这些不走系统代理的流量,必须开 TUN 模式(第八章)。TUN 接管全系统流量后,Docker 容器、命令行 curl、游戏客户端都自动走代理。


总结

Sing-box 在 2026 年已经成为科学上网的 「底层事实标准」:一个二进制搞定协议、路由、DNS、TUN,配置清晰、性能强、占用低。上手路径建议:

  1. 新手:用 SagerNet / SFM 客户端 + 机场 sing-box 订阅,开 TUN 即用
  2. 进阶:sub-store 订阅转换 + rule-set 精细分流
  3. 高阶:自建节点(3X-UI)+ 机场聚合 + DNS 防污染

从 Clash 迁移并不难,核心是把 proxies → outboundsrules → route.rulesrule-providers → rule-set 做映射,或直接用转换工具一键生成。

延伸阅读