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,但增长迅速
- • 更适合喜欢命令行和配置文件的用户
下载安装
Sing-box 提供多种安装方式,推荐从官方 GitHub Releases 下载预编译二进制文件,或使用包管理器一键安装。
Windows / macOS / Linux
- 访问 GitHub Releases
- 下载对应平台和架构的压缩包
- 解压后将二进制文件放入 PATH 目录
- 终端运行
sing-box version验证
macOS (Homebrew)
- 安装 Homebrew(如已安装请跳过)
- 执行:
brew install SagerNet/sing-box/sing-box - 安装服务:
brew services start sing-box - 配置文件位于
/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 等第三方管理器使用。
配置文件结构
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 参数指定配置文件路径。
订阅转换
大部分机场提供的是 Clash(YAML)格式或通用 Base64 格式的订阅链接,不能直接用于 Sing-box。你需要使用订阅转换工具将其转换为 Sing-box 支持的 JSON 格式。
② 自建转换
使用 sing-box 自带的 sing-box merge 命令:
sing-box merge -c base.json -c subscription.json -o config.json
也可以搭配 subconverter 自建后端实现自动化转换。
💡 提示
转换后的配置文件可能需要进行微调,特别是路由规则部分。你可以手动编辑 JSON 文件来添加自定义规则(如特定网站直连、广告拦截等)。推荐在转换基础上保留一个基础配置模板,便于后续复用。
启动运行
配置文件准备好后,就可以启动 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 命令校验。
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(腾讯)