主题模式
Are you an LLM? You can read better optimized documentation at /client/sing-box-guide.md for this page in Markdown format
Sing-box 全平台配置教程:下一代代理核心从入门到精通
Clash 核心开发者删库跑路后,Sing-box 已成为 2026 年最活跃的代理核心项目。它原生支持 VLESS、Reality、Hysteria2、TUIC 等新一代协议,性能优异,配置灵活。本文将带你从零开始配置 Sing-box 全平台客户端。
Sing-box 是什么?
Sing-box 是一个通用代理平台(The universal proxy platform),由 SagerNet 团队开发。与 Clash Meta(Mihomo)类似,它是一个代理核心,需要配合 GUI 客户端使用。
Sing-box vs Clash Meta (Mihomo)
| 特性 | Sing-box | Clash Meta (Mihomo) |
|---|---|---|
| 协议支持 | VLESS / Reality / Hysteria2 / TUIC / Shadowsocks / Trojan | VLESS / Reality / Hysteria2 / TUIC / Shadowsocks / Trojan |
| 配置格式 | JSON | YAML |
| 路由规则 | 规则集 + GeoIP / GeoSite | 规则集 + GeoIP / GeoSite |
| 性能 | ⭐⭐⭐⭐⭐ Go 原生,内存占用低 | ⭐⭐⭐⭐ 基础良好 |
| 生态成熟度 | ⭐⭐⭐ 快速成长中 | ⭐⭐⭐⭐⭐ 最成熟 |
| 客户端 | 各平台均有 | 各平台均有,更丰富 |
| 社区活跃度 | ⭐⭐⭐⭐⭐ 最高 | ⭐⭐⭐⭐ 高 |
💡 要不要从 Clash 迁移到 Sing-box?
- Clash 用得好 → 不急着换,Clash Meta 依然好用。
- 需要 Reality / Hysteria2 → 两者都支持,但 Sing-box 原生支持更好。
- 追求性能和低内存 → Sing-box 更优。
- 新手 → 建议先用 Clash Verge Rev,更易上手。
核心概念
Sing-box 的配置基于 JSON,核心由三部分组成:
1. Inbound(入站)
入站定义了本地如何接收流量。常见类型:
| 类型 | 说明 | 适用场景 |
|---|---|---|
tun | 虚拟网卡,接管全局流量 | 全局代理(推荐) |
mixed | HTTP + SOCKS 混合代理 | 指定应用走代理 |
socks | SOCKS5 代理 | 需要代理的应用 |
http | HTTP 代理 | 浏览器代理 |
2. Outbound(出站)
出站定义了流量如何发出去。常见类型:
| 类型 | 说明 |
|---|---|
vless | VLESS 协议(支持 Reality) |
shadowsocks | Shadowsocks 协议 |
trojan | Trojan 协议 |
hysteria2 | Hysteria2 协议(高速) |
tuic | TUIC V5 协议 |
selector | 手动选择节点(类似 Clash 的 select) |
urltest | 自动测速选节点(类似 Clash 的 url-test) |
direct | 直连 |
block | 拦截 |
dns | DNS 出站 |
3. Route(路由)
路由定义了流量如何匹配规则并分发到出站。匹配从上到下,命中即停。
各平台客户端推荐
| 平台 | 推荐客户端 | 说明 |
|---|---|---|
| Windows | sing-box + GUI | 官方核心 + 社区 GUI |
| Windows | Hiddify | 跨平台 GUI,支持 Sing-box 核心 |
| macOS | sing-box + GUI | 同 Windows |
| macOS | Hiddify | 跨平台 GUI |
| Android | sing-box for Android | 官方客户端 |
| Android | Hiddify | 跨平台 GUI |
| iOS | SFI | 官方 App Store 客户端 |
| iOS | Shadowrocket | 支持 Sing-box 格式订阅 |
Windows 配置教程
方式一:使用 Hiddify(推荐新手)
Hiddify 是最友好的 Sing-box GUI 客户端,开箱即用。
- 下载安装:访问 Hiddify Releases,下载
Hiddify-Windows-x64.zip。 - 解压并运行
Hiddify.exe。 - 导入订阅:
- 点击「新建配置」→「从链接添加」。
- 粘贴机场的 Sing-box 订阅链接。
- 点击「添加」。
- 选择节点:在主页选择节点。
- 开启代理:点击大开关,选择「TUN 模式」(全局代理)。
方式二:使用 sing-box 核心 + GUI
适合需要精细配置的高级用户。
- 下载核心:从 sing-box Releases 下载 Windows 版本。
- 下载 GUI:推荐 sing-box-gui(社区项目)。
- 配置文件:创建
config.json(模板见下文)。 - 启动:通过 GUI 加载配置文件并启动。
macOS 配置教程
方式一:使用 Hiddify(推荐)
与 Windows 完全一致,下载 macOS 版本即可。
- Apple Silicon (M1/M2/M3):下载
Hiddify-macos-aarch64.dmg - Intel 芯片:下载
Hiddify-macos-x64.dmg
安装后操作流程同 Windows。
方式二:使用 sing-box 核心
bash
# 安装 Homebrew(如未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 sing-box
brew install sing-box
# 创建配置目录
mkdir -p ~/.config/sing-box
# 编辑配置文件
nano ~/.config/sing-box/config.json
# 启动
sing-box run -c ~/.config/sing-box/config.jsonmacOS TUN 模式需要权限
TUN 模式需要 root 权限,使用 sudo sing-box run 启动。或通过 GUI 客户端运行(会自动请求权限)。
Android 配置教程
使用官方客户端
下载安装:
- Google Play:搜索「sing-box」
- GitHub:sing-box-for-android Releases
- APKPure:搜索「sing-box」
导入订阅:
- 打开 App,点击「Profiles」→右上角「+」。
- 选择「Type: Remote」。
- 填入 Name(任意)和 URL(机场订阅链接)。
- 点击「Create」,然后点击更新按钮拉取配置。
开启代理:
- 回到主页,选择一个配置。
- 点击底部开关开启 VPN。
- 系统弹出 VPN 权限请求,点击「允许」。
模式选择:
- 点击「Groups」查看节点列表。
- 在「Selector」组中手动选择节点。
- 在「URLTest」组中自动选择最快节点。
iOS 配置教程
使用官方客户端 SFI
下载安装:
- 使用美区 Apple ID 登录 App Store(参考 iOS 教程 准备工作)。
- 搜索 sing-box(开发者:SagerNet)。
- 免费下载。
导入订阅:
- 打开 App,点击底部「Profiles」。
- 点击右上角「+」→「Add Remote Profile」。
- 填入 Name 和 URL(机场 Sing-box 订阅链接)。
- 点击「Create」,等待配置下载。
开启代理:
- 回到「Dashboard」页面。
- 点击底部开关。
- 系统弹出 VPN 权限请求,点击「Allow」。
- 输入锁屏密码确认。
节点选择:
- 点击「Groups」查看节点。
- 在 Selector 组中选择节点。
SFI vs Shadowrocket
- SFI:免费,原生 Sing-box 核心,支持所有协议。
- Shadowrocket:$2.99,更成熟,也支持 Sing-box 格式订阅。
- 不想花钱选 SFI,已经买了 Shadowrocket 就不用再装 SFI。
配置文件详解
如果你需要手动编写配置文件(而非使用机场订阅),以下是完整的配置模板。
完整配置模板
json
{
"dns": {
"servers": [
{
"tag": "google",
"address": "tls://8.8.8.8"
},
{
"tag": "local",
"address": "223.5.5.5",
"detour": "direct"
},
{
"tag": "block",
"address": "rcode://success"
}
],
"rules": [
{
"outbound": "any",
"server": "local"
},
{
"clash_mode": "global",
"server": "google"
}
],
"strategy": "ipv4_only"
},
"experimental": {
"cache_file": {
"enabled": true,
"path": "cache.db"
}
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"interface_name": "tun0",
"inet4_address": "172.19.0.1/30",
"auto_route": true,
"strict_route": true,
"stack": "system",
"sniff": true
}
],
"log": {
"level": "info",
"timestamp": true
},
"outbounds": [
{
"type": "selector",
"tag": "proxy",
"outbounds": ["auto-select", "node-1", "node-2"],
"default": "auto-select"
},
{
"type": "urltest",
"tag": "auto-select",
"outbounds": ["node-1", "node-2"],
"url": "https://www.gstatic.com/generate_204",
"interval": "5m"
},
{
"type": "vless",
"tag": "node-1",
"server": "your-server.com",
"server_port": 443,
"uuid": "your-uuid-here",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"server_name": "your-sni.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "your-public-key",
"short_id": "your-short-id"
}
}
},
{
"type": "shadowsocks",
"tag": "node-2",
"server": "your-server.com",
"server_port": 8388,
"method": "aes-256-gcm",
"password": "your-password"
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
},
{
"type": "dns",
"tag": "dns-out"
}
],
"route": {
"rules": [
{
"protocol": "dns",
"outbound": "dns-out"
},
{
"clash_mode": "global",
"outbound": "proxy"
},
{
"clash_mode": "direct",
"outbound": "direct"
},
{
"geoip": "private",
"outbound": "direct"
},
{
"geoip": "cn",
"outbound": "direct"
},
{
"geosite": "cn",
"outbound": "direct"
},
{
"geosite": "category-ads-all",
"outbound": "block"
}
],
"final": "proxy",
"auto_detect_interface": true
}
}配置说明
| 部分 | 说明 |
|---|---|
log | 日志级别:trace / debug / info / warn / error |
dns | DNS 配置,strategy: ipv4_only 可避免 IPv6 泄漏 |
inbounds.tun | TUN 模式,接管全局流量;auto_route 自动设置路由 |
outbounds.selector | 手动选择节点,类似 Clash 的 select 策略组 |
outbounds.urltest | 自动测速,类似 Clash 的 url-test |
outbounds.vless | VLESS + Reality 节点配置 |
route.rules | 路由规则,从上到下匹配 |
route.final | 兜底规则,未匹配的流量走这里 |
experimental.cache_file | 缓存测速结果,加快启动 |
从 Clash Meta 迁移指南
配置格式对照
| Clash Meta (YAML) | Sing-box (JSON) |
|---|---|
proxy-groups: type: select | outbounds: type: selector |
proxy-groups: type: url-test | outbounds: type: urltest |
rules: GEOIP,CN,DIRECT | route.rules: geoip: cn, outbound: direct |
rules: GEOSITE,cn,DIRECT | route.rules: geosite: cn, outbound: direct |
rules: MATCH,Proxy | route: final: proxy |
dns: enable: true | dns: servers: [...] |
tun: enable: true | inbounds: type: tun |
迁移步骤
- 导出 Clash 节点信息:从 Clash 配置中提取节点参数(服务器、端口、密码等)。
- 转换为 Sing-box 格式:手动转换或使用 在线转换工具。
- 编写路由规则:参照上文模板,将 Clash 规则映射到 Sing-box 规则。
- 测试:先在本地测试配置文件,确认无报错后再部署。
常见迁移问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 节点不通 | UUID / 密码 / SNI 填错 | 仔细对照原 Clash 配置 |
| DNS 泄漏 | DNS 配置不完整 | 确认 dns.rules 中有 outbound: any 规则 |
| TUN 不生效 | 权限不足 | Windows 以管理员运行,macOS 用 sudo |
| 规则不匹配 | GeoIP / GeoSite 未下载 | 确保 experimental.cache_file 已启用 |
使用订阅链接免迁移
大多数 机场 同时提供 Clash 和 Sing-box 格式的订阅链接。如果你用机场订阅,直接用 Sing-box 客户端导入订阅即可,无需手动迁移配置。
进阶配置
分流策略组
类似 Clash 的多策略组配置:
json
{
"outbounds": [
{
"type": "selector",
"tag": "📺 流媒体",
"outbounds": ["proxy", "node-1", "node-2"],
"default": "node-1"
},
{
"type": "selector",
"tag": "🤖 AI 服务",
"outbounds": ["proxy", "node-1", "node-2"],
"default": "node-2"
},
{
"type": "selector",
"tag": "🚀 节点选择",
"outbounds": ["auto-select", "node-1", "node-2", "direct"],
"default": "auto-select"
}
],
"route": {
"rules": [
{
"domain_suffix": ["netflix.com", "nflxvideo.net"],
"outbound": "📺 流媒体"
},
{
"domain_suffix": ["openai.com", "anthropic.com", "claude.ai"],
"outbound": "🤖 AI 服务"
}
],
"final": "🚀 节点选择"
}
}广告屏蔽
json
{
"route": {
"rules": [
{
"geosite": "category-ads-all",
"outbound": "block"
},
{
"domain_suffix": ["doubleclick.net", "googlesyndication.com"],
"outbound": "block"
}
]
}
}Hysteria2 节点配置
json
{
"password": "your-password",
"server": "your-server.com",
"server_port": 443,
"tag": "hy2-node",
"tls": {
"enabled": true,
"server_name": "your-sni.com"
},
"type": "hysteria2"
}常见问题
Q: Sing-box 和 Clash 哪个更快?
在大多数场景下差异不大。Sing-box 在高并发(如 BT 下载、大量连接)时内存占用更低,TUN 模式性能略优。日常使用两者速度基本一致。
Q: 机场没有 Sing-box 订阅格式怎么办?
- 检查机场后台是否有「通用订阅」或「Base64 订阅」——部分客户端可自动解析。
- 使用 subconverter 在线转换。
- 联系机场客服建议添加 Sing-box 格式支持。
- 或选择已支持 Sing-box 的 机场。
Q: TUN 模式和系统代理有什么区别?
- TUN 模式:创建虚拟网卡,接管所有流量(包括 ICMP),真正意义上的全局代理。
- 系统代理:只接管走 HTTP/SOCKS 代理的应用流量,部分应用(如命令行工具)不生效。
- 推荐使用 TUN 模式,配合 Clash Meta 配置教程 中的规则使用。
Q: iOS 上 SFI 和 Shadowrocket 怎么选?
- SFI:免费,原生 Sing-box 核心,支持最新协议。UI 较简陋。
- Shadowrocket:$2.99,UI 成熟,也支持 Sing-box 格式。部分新协议支持稍慢。
- 已经买了 Shadowrocket 就不用换。新用户可以先试 SFI。
Q: 配置文件报错怎么办?
- 使用 JSON 格式验证工具(如 jsonlint.com)检查语法。
- 查看日志:
sing-box run -c config.json会输出详细错误信息。 - 常见错误:JSON 逗号缺失、引号不匹配、字段名拼写错误。
Q: 如何查看 Sing-box 版本?
bash
sing-box versionQ: 如何更新 GeoIP / GeoSite 数据库?
启用 experimental.cache_file 后,Sing-box 会在首次启动时自动下载 GeoIP / GeoSite 数据库并缓存。后续更新只需删除 cache.db 文件重启即可。
Q: Sing-box 支持 ACL 访问控制吗?
支持。在 route.rules 中可以使用 source_ip_cidr 匹配来源 IP,实现类似 ACL 的功能。
json
{
"route": {
"rules": [
{
"source_ip_cidr": ["192.168.1.100/32"],
"outbound": "block"
}
]
}
}相关文章
- 👉 Hysteria2 / TUIC / AnyTLS 新协议部署 — 服务端自建这三种协议
- 👉 VPS 自建代理:Xray + VLESS Reality — 入门首选自建方案
- 👉 iOS 代理客户端全教程 — Shadowrocket 添加新协议节点
- 👉 Clash Meta 订阅配置指南 — 机场订阅转换
- 👉 优质机场推荐 — 已支持新协议的机场
