--- Sing-box 教程 - 新一代代理工具配置指南 | 小火箭ID账号

Sing-box 教程 - 新一代代理工具配置指南

Sing-box使用教程,新一代通用代理平台,支持SS/V2Ray/Trojan/Hysteria等多种协议。涵盖下载安装、JSON配置、TUN模式设置和Clash配置转换,全平台可用。

Sing-box 是由 SagerNet 团队开发的新一代通用代理平台,使用 Go 语言编写,以高性能、低资源占用和高度灵活的配置而著称。它可以作为 Clash 的现代替代品,支持 Shadowsocks、VMess、Trojan、VLESS、Hysteria2 等多种代理协议。

本教程将带你深入了解 Sing-box 的完整使用流程——从基础下载安装到配置文件的编写、订阅转换、服务启动,再到 TUN 模式等进阶功能。无论你是从 Clash 迁移过来的老用户,还是第一次接触 Sing-box 的新手,本文都能帮助你快速上手。Sing-box 的配置虽然以 JSON 格式为主,看似复杂,但掌握核心结构后会变得非常灵活和强大。

适用平台:全平台 开源免费 高性能低占用

什么是 Sing-box?

核心特点

  • • 使用 Go 语言编写,性能极高
  • • 内存占用极低(通常 < 50MB)
  • • 支持 SS、VMess、Trojan、VLESS、Hysteria2、TUIC 等
  • • 支持 TUN 模式(虚拟网卡全局代理)
  • • 灵活的路由规则系统
  • • 多平台支持(Windows/macOS/Linux/Android/iOS)

与 Clash 的对比

  • • 配置格式为 JSON,比 YAML 更严谨
  • • 无图形界面(需搭配 GUI 或命令行使用)
  • • 架构更清晰,分 in/out/route 三层
  • • 支持 Hysteria2 等新协议
  • • 社区规模小于 Clash,但增长迅速
  • • 更适合喜欢命令行和配置文件的用户
1

下载安装

Sing-box 提供多种安装方式,推荐从官方 GitHub Releases 下载预编译二进制文件,或使用包管理器一键安装。

Windows / macOS / Linux

  1. 访问 GitHub Releases
  2. 下载对应平台和架构的压缩包
  3. 解压后将二进制文件放入 PATH 目录
  4. 终端运行 sing-box version 验证

macOS (Homebrew)

  1. 安装 Homebrew(如已安装请跳过)
  2. 执行:brew install SagerNet/sing-box/sing-box
  3. 安装服务:brew services start sing-box
  4. 配置文件位于 /usr/local/etc/sing-box/

iOS / iPadOS

推荐使用 Sing-box for iOS(App Store 美区/港区可下载),或使用 Streisand 等第三方 GUI。

Android

推荐使用 Sing-box for Android(Google Play / GitHub 均可下载)。F-Droid 上也有上架。

💡 提示

Sing-box 本身是命令行工具,没有图形界面。如果你需要 GUI 管理,可以搭配 SFI(Sing-box for iOS)、SFA(Sing-box for Android)或 Hiddify Next 等第三方管理器使用。

2

配置文件结构

Sing-box 使用 JSON 格式配置,核心分为三大块:inbounds(入站)、outbounds(出站)、route(路由)。了解这个结构是配置 Sing-box 的关键。

📥 Inbounds(入站)

定义代理的监听端口和协议。例如 SOCKS5 入站监听 1080 端口,HTTP 入站监听 8080 端口,或 TUN 入站创建虚拟网卡。

📤 Outbounds(出站)

定义出站代理节点,包括协议类型、服务器地址、端口、加密方式等。可以定义多个出站,用于不同的分流策略。

🔄 Route(路由)

定义流量匹配规则,决定哪些流量走哪个出站。支持域名、IP、GEOIP、规则集等多种匹配方式,规则从上到下依次匹配。

最小配置文件示例:

{
  "log": { "level": "info" },
  "inbounds": [
    {
      "type": "socks",
      "tag": "socks-in",
      "listen": "127.0.0.1",
      "listen_port": 1080
    }
  ],
  "outbounds": [
    {
      "type": "vless",
      "tag": "proxy",
      "server": "example.com",
      "server_port": 443,
      "uuid": "your-uuid-here",
      "flow": "xtls-rprx-vision"
    },
    {
      "type": "direct",
      "tag": "direct"
    }
  ],
  "route": {
    "rules": [
      { "domain_suffix": "google.com", "outbound": "proxy" },
      { "domain_suffix": "cn.bing.com", "outbound": "direct" }
    ]
  }
}

📌 配置文件默认路径:Linux/macOS 为 /etc/sing-box/config.json,Windows 为运行目录下的 config.json。可使用 -c 参数指定配置文件路径。

3

订阅转换

大部分机场提供的是 Clash(YAML)格式或通用 Base64 格式的订阅链接,不能直接用于 Sing-box。你需要使用订阅转换工具将其转换为 Sing-box 支持的 JSON 格式。

① 在线转换工具

访问以下网站即可在线转换:

选择目标格式为 "Sing-box" 或 "SagerNet" 即可。

② 自建转换

使用 sing-box 自带的 sing-box merge 命令:

sing-box merge -c base.json -c subscription.json -o config.json

也可以搭配 subconverter 自建后端实现自动化转换。

💡 提示

转换后的配置文件可能需要进行微调,特别是路由规则部分。你可以手动编辑 JSON 文件来添加自定义规则(如特定网站直连、广告拦截等)。推荐在转换基础上保留一个基础配置模板,便于后续复用。

4

启动运行

配置文件准备好后,就可以启动 Sing-box 了。以下是不同平台的启动方式:

命令行启动(通用)

# 前台运行(调试用)
sing-box run -c /path/to/config.json

# 后台运行(Linux/macOS)
sing-box run -c /path/to/config.json &

# 作为服务运行(macOS Homebrew)
brew services start sing-box

# 检查配置文件是否有语法错误
sing-box check -c /path/to/config.json

Windows

下载 Windows 版本后,在 sing-box.exe 所在目录创建 config.json,然后双击运行或通过命令行执行 sing-box.exe run。也可注册为 Windows 服务实现开机自启。

iOS / Android

使用 GUI 版本(Sing-box for iOS / Android),在 App 内设置中导入 JSON 配置文件,然后点击连接按钮即可。GUI 版本会自动处理服务启动和后台保活。

⚠️ 首次运行时建议使用前台模式(不加 &),观察日志输出。如果日志中出现 error 信息,说明配置文件可能有问题,使用 sing-box check 命令校验。

5

TUN 模式

TUN 模式是 Sing-box 最强大的功能之一,它会在系统中创建一张虚拟网卡,将所有系统流量(包括游戏、UWP 应用、命令行、Ping 等)接管到 Sing-box 进行代理或路由。

在配置文件中添加 TUN 入站:

{
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "interface_name": "sing-tun0",
      "inet4_address": "172.19.0.1/30",
      "mtu": 1500,
      "auto_route": true,
      "strict_route": true
    }
  ]
}

参数说明

  • type: "tun" — 声明为 TUN 入站
  • interface_name — 虚拟网卡名称
  • inet4_address — 虚拟网卡 IP 地址
  • mtu — 最大传输单元
  • auto_route — 自动设置路由表
  • strict_route — 严格路由模式

⚠️ 注意事项

  • • 需要管理员/root 权限才能创建 TUN 设备
  • • Windows 下需要安装 WinTUN 驱动
  • • TUN 模式会接管所有流量,谨慎配置路由规则
  • • 启动 TUN 后其他 VPN 类应用可能无法同时使用
  • • 建议配置 fallback 出站避免断网

📌 进阶提示

配合 auto_route 和 strict_route 可以实现类似 Clash TUN 模式的体验。但要注意,strict_route 开启后会阻止非代理 DNS 查询,可能导致某些局域网设备(如打印机)无法访问。建议在路由规则中添加局域网 IP 段的直连规则。


❓ Sing-box 常见问题

两者各有优劣,根据你的需求选择:

  • 选 Sing-box 如果你:喜欢命令行、追求极致性能、需要 Hysteria2 等新协议、配置习惯 JSON、想要更灵活的路由系统
  • 选 Clash 如果你:需要图形界面(GUI)、更喜欢 YAML 配置、社区资源丰富、刚入门代理使用、需要快速部署
  • 两个都保留:很多用户同时安装两个客户端,日常用 Clash(简单方便),需要调试或特定场景用 Sing-box

总体来说,新手建议从 Clash 开始,熟悉代理原理后再尝试 Sing-box。高级用户和喜欢折腾的用户可以直接上 Sing-box。

排查配置文件错误的步骤:

  • 语法检查:运行 sing-box check -c config.json 检查 JSON 语法
  • 查看日志:前台运行时输出日志,观察 error 和 warn 级别的消息
  • 常见错误:缺少必填字段、类型不对(如 string 写成了 number)、端口被占用、uuid 格式错误
  • JSON 校验:使用在线 JSON 校验工具(如 jsonlint.com)检查格式
  • 官方文档:参考 Sing-box 官方配置文档

如果使用订阅转换工具生成的配置报错,可以尝试在转换工具中选择不同的模板或版本。Sing-box 版本更新后部分配置字段可能发生变化,注意版本兼容性。

各平台开机自启配置方法:

  • macOS (Homebrew):brew services start sing-box,Homebrew 会自动管理自启
  • Linux (systemd):systemctl enable sing-box,需先创建 systemd service 文件
  • Windows:使用 nssm 将 sing-box 注册为 Windows 服务,或创建启动快捷方式放入启动文件夹(shell:startup)
  • iOS/Android:使用 GUI App 自带的后台保活功能,一般不需要额外配置

注意:Windows 下使用 nssm 注册服务时,建议配置自动重启(如进程崩溃后自动重启)。macOS 下使用 launchd 也是另一种选择。

Sing-box 支持的协议非常丰富(截至最新版本):

入站(客户端)

  • Shadowsocks
  • VMess / VLESS
  • Trojan
  • Hysteria2
  • TUIC
  • SOCKS / HTTP
  • TUN / Redirect
  • Naive / ShadowTLS

出站(服务端)

  • Shadowsocks
  • VMess / VLESS
  • Trojan
  • Hysteria2
  • TUIC
  • Direct(直连)
  • Block(拒绝)
  • DNS

Sing-box 的协议支持非常全面,尤其是对 Hysteria2 和 TUIC 等新协议的支持,使其在弱网环境下表现优于 Clash。

DNS 配置和防泄漏设置:

{
  "dns": {
    "servers": [
      { "tag": "proxy-dns", "address": "https://dns.cloudflare.com/dns-query", "detour": "proxy" },
      { "tag": "direct-dns", "address": "223.5.5.5", "detour": "direct" }
    ],
    "rules": [
      { "domain_suffix": ".cn", "server": "direct-dns" },
      { "domain_suffix": "google.com", "server": "proxy-dns" }
    ],
    "final": "proxy-dns",
    "strategy": "prefer_ipv4"
  }
}
  • DNS 分流:国内域名用国内 DNS(如 223.5.5.5),国外域名用远程 DNS(如 Cloudflare DNS over HTTPS)
  • 防泄漏:在 TUN 模式中开启 strict_route 可阻止非代理 DNS 请求
  • 推荐 DNS:远程 DNS 使用 https://dns.cloudflare.com/dns-query 或 https://dns.google/dns-query
  • 本地 DNS:使用 223.5.5.5(阿里)或 119.29.29.29(腾讯)