视频加载失败

从 Clash 平滑迁移至 Sing-Box 客户端 核心概念对照规则集转换与混合部署实战

1450 字
7 分钟
从 Clash 平滑迁移至 Sing-Box 客户端 核心概念对照规则集转换与混合部署实战

随着代理生态技术的飞速迭代,Sing-Box 作为新一代通用通用网络代理平台,凭借极高的代码现代化程度、全协议原生支持以及强悍的路由匹配效率,吸引了海量科学上网极客的目光。然而,很多习惯了 Clash 体系的用户在初次打开 Sing-Box 配置文件时,往往会感到一阵眩晕。熟悉的 proxiesproxy-groupsrules 不见了踪影,取而代之的是层层嵌套的 inboundsoutboundsroute 和复杂的 JSON 语法。

这两种工具虽然目标一致,但它们背后的网络抽象模型存在代际差异。理清它们之间的映射字典,掌握节点与规则集的自动化迁移方案,能够让你以最小的时间成本横跨两大顶级生态。

两大核心网络模型映射全景图#

理解 Sing-Box 最快的途径,是将其各个模块与 Clash 的经典配置结构建立一一映射。

Clash 与 Sing-Box 核心架构对照
┌───────────────────────────────────────┐ ┌───────────────────────────────────────┐
│ Clash 体系 │ │ Sing-Box 体系 │
├───────────────────────────────────────┤ ├───────────────────────────────────────┤
│ mixed-port / port / socks-port │ ───> │ inbounds (入站: mixed / tproxy / tun) │
│ │ │ │
│ proxies (独立节点定义) │ ───> │ outbounds (出站: shadowsocks / vless) │
│ │ │ │
│ proxy-groups (策略组: select/url-test)│ ───> │ outbounds (出站: selector / urltest) │
│ │ │ │
│ rules (自顶向下分流规则) │ ───> │ route.rules (路由规则数组) │
│ │ │ │
│ rule-providers (远程规则集) │ ───> │ route.rule_set (二进制 SRS 规则集) │
└───────────────────────────────────────┘ └───────────────────────────────────────┘

在 Clash 中,节点与策略组被区分为两个不同的顶级键名。而在 Sing-Box 的哲学里,一切负责向外发送数据包的实体都被统称为“出站”(Outbounds)。一个手动的策略组(Selector)或自动测速组(URLTest),在本质上只是一个包含多个子出站的高级出站对象。这种统一设计使得 Sing-Box 的数据结构在底层更具一致性。

关键配置模块深度语法映射表#

为了在编写配置文件时心中有数,可以通过以下词典快速完成语法转译。

功能属性分类Clash 典型 YAML 写法语料Sing-Box 对应 JSON 字段结构
本地混合代理端口mixed-port: 7890"type": "mixed", "listen_port": 7890
虚拟网卡全接管tun: { enable: true, stack: mixed }"type": "tun", "inet4_address": "172.19.0.1/30"
手动选择策略组type: select, proxies: [...]"type": "selector", "outbounds": [...]
自动优选延迟组type: url-test, tolerance: 50"type": "urltest", "tolerance": 50
域名后缀分流DOMAIN-SUFFIX,google.com,Proxy"domain_suffix": [".google.com"], "outbound": "Proxy"
国家地理 IP 直连GEOIP,CN,DIRECT"geoip": ["cn"], "outbound": "direct"
本地保留网段直连IP-CIDR,192.168.0.0/16,DIRECT"ip_cidr": ["192.168.0.0/16"], "outbound": "direct"

掌握了这个对照表之后,原本看似陌生的 Sing-Box 配置就如同翻译外语一样清晰明朗。

生产级 Sing-Box 最小化可用配置蓝本#

以下展示一套结构完整、兼顾 TUN 模式与规则集分流的生产级 Sing-Box 配置范本。

{
"log": {
"level": "warn",
"timestamp": true
},
"dns": {
"servers": [
{ "tag": "dns-remote", "address": "https://1.1.1.1/dns-query", "detour": "🚀 节点选择" },
{ "tag": "dns-direct", "address": "223.5.5.5", "detour": "direct" }
],
"rules": [
{ "outbound": "any", "server": "dns-direct" },
{ "rule_set": "geosite-cn", "server": "dns-direct" }
]
},
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 2080
},
{
"type": "tun",
"tag": "tun-in",
"inet4_address": "172.19.0.1/30",
"auto_route": true,
"strict_route": true
}
],
"outbounds": [
{
"type": "selector",
"tag": "🚀 节点选择",
"outbounds": ["⚡ 自动选优", "香港 01 专线", "日本 01 专线"]
},
{
"type": "urltest",
"tag": "⚡ 自动选优",
"outbounds": ["香港 01 专线", "日本 01 专线"],
"url": "http://cp.cloudflare.com/generate_204",
"interval": "5m",
"tolerance": 50
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"rule_set": [
{
"tag": "geosite-cn",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs",
"download_detour": "🚀 节点选择"
}
],
"rules": [
{ "rule_set": "geosite-cn", "outbound": "direct" },
{ "ip_is_private": true, "outbound": "direct" }
],
"final": "🚀 节点选择",
"auto_detect_interface": true
}
}

现代特性解读#

在 DNS 模块中,detour 关键字精准指定了解析请求发往哪个出站通道,天然免疫 DNS 污染。

在分流模块中,Sing-Box 引入了预编译的 .srs 二进制规则集。与传统包含数万行纯文本的 YAML 规则列表相比,二进制规则集由客户端直接映射入内存执行,匹配耗时只有文本规则的几分之一,且对系统内存极其友好。

节点订阅自动批量迁移解决方案#

手工将上百个机场节点从 Clash 的 YAML 转为 Sing-Box 的 JSON 是一项不可能完成的繁重劳动。最优雅的方案是借助成熟的自动化转换管线。

利用前文部署好的私有 Sub-Store 或 Subconverter,只需在请求参数中将目标平台简单声明为 Sing-Box。

自动化生成 Sing-Box 订阅链接示范
http://127.0.0.1:3001/download/collection/MyCleanNodes?target=SingBox

转换引擎会在几毫秒内将所有上游节点重构为符合 Sing-Box 最新规范的 Outbounds 数组,用户只需将该远程链接填入客户端即可,完全免除手工编码的折磨。

迁移高频报错与避坑指北#

在迁移初期,由于语法习惯残留,容易遇到以下典型问题。

JSON 语法尾随逗号导致初始化失败#

在标准 JSON 规范中,对象或数组的最后一个元素后面严禁出现多余的逗号(Trailing Comma)。

如果习惯了写 YAML 而在数组末尾随手多打了一个逗号,Sing-Box 在启动时会立即抛出解析失败异常。推荐在保存前使用在线或本地 JSON 格式化工具进行校验。

客户端无法抓取到本机的系统级流量#

在启用 tun 虚拟网卡时,确保在 route 对象中开启了 "auto_detect_interface": true

该选项允许 Sing-Box 在多网卡并发或网络环境发生跃迁时,自动侦测物理默认路由与默认网卡,防止数据包在虚拟网卡与真实网卡之间迷失死锁。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

从 Clash 平滑迁移至 Sing-Box 客户端 核心概念对照规则集转换与混合部署实战
https://clashjichang.run/posts/clash-sing-box-client-migration/
作者
Clash机机
发布于
2026-04-27
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
Clash for Android 衍生版与替代客户端选型实战 后台保活电池白名单与应用分流指南
Clash客户端详尽梳理后 CFA 时代安卓科学上网客户端生态。深入拆解 Flclash、CMFA 与 Surfboard 核心差异,彻底攻克国产定制系统后台休眠杀进程、网银应用冲突与耗电异常难题。
2
Clash Verge Rev 客户端安装、内核切换与分流规则全景实操手册
Clash客户端全面解析新一代主流开源代理客户端 Clash Verge Rev 的跨平台架构。涵盖 Windows 与 macOS 安装包选型、Mihomo 现代内核切换、TUN 虚拟网卡底层接管、系统代理与规则覆写实战及常见故障急救。
3
Clash Verge Rev 扩展脚本实战 JavaScript 预处理与 Merge 规则动态注入指南
Clash客户端深度解析 Clash Verge Rev 核心扩展脚本机制。掌握基于 JavaScript 的 main 钩子函数与 Merge 差异化合并,实现多机场订阅无损注入自定义策略组、精细化分流规则与动态节点清洗。
4
Clash Nyanpasu 极简现代化客户端深度评测与多平台调优指南
Clash客户端全方位评测基于 Rust 与 Tauri 架构打造的现代化科学上网客户端 Clash Nyanpasu。深度对比内存资源开销、内核自由切换与多平台调优,提供从安装到高级规则定制的保姆级上手指南。
5
Mihomo Party 客户端全平台上手使用与分流规则深度指南
Clash客户端全面剖析以高颜值、可视化依赖拓扑图和现代化交互著称的代理客户端 Mihomo Party。详解 Windows 与 macOS 深度安装、订阅智能解析、拖拽式策略组分流、覆写插件开发与 TUN 虚拟网卡排障实操。
随机文章随机推荐
Profile Image of the Author
Clash机机
专注 Clash 客户端指南、订阅节点配置与机场网络评测
2026 网络测速通报
欢迎访问 Clash机机!2026 全球机场测速数据库与专线选路指南已全面更新,全天候监控 18 家主流商业机场运行状态与晚高峰丢包。
分类
标签
最新动态
站点统计
文章
98
分类
10
标签
338
总字数
258,151
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录