每个场景同时给出 Clash/Mihomo (YAML) 和 sing-box (JSON) 两份模板,逐行注释说明每个字段的作用、为什么这么写、以及两个生态在写法上的关键差异。复制后替换你自己的节点信息即可使用。
最常用的起步配置:国内流量直连、国外走代理、广告域名拒绝。理解这套规则的结构,后面所有模板都是在它基础上扩展。
适用:刚拿到节点、想要一份能直接跑的最小可用配置mixed-port: 7890 # 同时监听 HTTP 和 SOCKS5 的统一端口 mode: rule # 按 rules 分流(另有 global/direct) log-level: info proxies: # 节点列表 - name: "我的节点" type: vless server: example.com port: 443 uuid: YOUR-UUID-HERE network: tcp tls: true servername: example.com # SNI,必须与证书域名一致 proxy-groups: # 策略组:决定流量走哪个节点 - name: PROXY type: select # 手动选择型 proxies: ["我的节点"] rules: # 从上到下匹配,命中即停 - GEOIP,CN,DIRECT # 中国 IP 直连 - MATCH,PROXY # 其余全部走 PROXY 组
{
"log": { "level": "info" },
"inbounds": [ // 入站:sing-box 必须显式声明
{ "type": "mixed", "listen_port": 7890 }
],
"outbounds": [ // 出站 = Clash 的 proxies
{
"type": "vless",
"tag": "我的节点", // 对应 Clash 的 name
"server": "example.com",
"server_port": 443, // 注意下划线,非 port
"uuid": "YOUR-UUID-HERE",
"tls": { "enabled": true, "server_name": "example.com" }
},
{ "type": "direct", "tag": "direct" } // 直连出站需手动定义
],
"route": { // 路由 = Clash 的 rules
"rules": [
{ "rule_set": "geoip-cn", "outbound": "direct" }
],
"final": "我的节点" // 兜底 = Clash 的 MATCH
}
}
| 节点名称字段 | name | tag |
| 端口字段 | port | server_port |
| SNI 字段 | servername | tls.server_name |
| 直连 | 内置 DIRECT,无需定义 | 必须显式声明 direct 出站 |
| 兜底规则 | MATCH,PROXY | route.final |
在基础分流之上,用规则集(rule-set)批量拒绝广告域名。两个生态都支持外部规则集,但加载和引用方式不同。
适用:想在代理层直接屏蔽广告、追踪域名,无需额外 Apprule-providers: # 外部规则集定义 reject: type: http behavior: domain # 规则集类型:domain/ipcidr/classical url: "https://.../reject.yaml" path: ./ruleset/reject.yaml # 本地缓存路径 interval: 86400 # 每 24h 更新一次(秒) rules: - RULE-SET,reject,REJECT # 命中规则集则拒绝连接 - GEOIP,CN,DIRECT - MATCH,PROXY
{
"route": {
"rule_set": [ // 规则集顶层声明
{
"type": "remote",
"tag": "reject",
"format": "binary", // sing-box 用 .srs 二进制格式
"url": "https://.../reject.srs",
"download_detour": "我的节点" // 下载规则集走哪个出站
}
],
"rules": [
{ "rule_set": "reject", "outbound": "block" }, // block = Clash 的 REJECT
{ "rule_set": "geoip-cn", "outbound": "direct" }
],
"final": "我的节点"
}
}
| 规则集格式 | .yaml / .txt 文本 | .srs 二进制(需先编译) |
| 拒绝出站名 | REJECT | block |
| 更新间隔 | interval(秒) | 由客户端管理 |
| 下载走向 | 跟随主连接 | 可指定 download_detour |
把 Netflix、Disney+ 等流媒体域名单独指向解锁节点,其余走普通节点。核心是用域名关键词规则做精准分流。
适用:有专门的解锁节点,想让流媒体走它、日常浏览走另一个proxy-groups: - name: STREAM # 专门的流媒体策略组 type: select proxies: ["解锁节点", "我的节点"] rules: - DOMAIN-KEYWORD,netflix,STREAM # 域名含 netflix 关键词 - DOMAIN-KEYWORD,disney,STREAM - DOMAIN-SUFFIX,nflxvideo.net,STREAM # 精确后缀匹配(视频 CDN) - GEOIP,CN,DIRECT - MATCH,PROXY
{
"route": {
"rules": [
{
"domain_keyword": ["netflix", "disney"], // 关键词数组,一条规则多个词
"domain_suffix": ["nflxvideo.net"],
"outbound": "解锁节点" // 直接指向出站 tag
},
{ "rule_set": "geoip-cn", "outbound": "direct" }
],
"final": "我的节点"
}
}
| 规则结构 | 每条一行,逐条列出 | 数组合并,一个对象多条件 |
| 关键词匹配 | DOMAIN-KEYWORD | domain_keyword(数组) |
| 后缀匹配 | DOMAIN-SUFFIX | domain_suffix(数组) |
| 目标指向 | 指向策略组名 | 直接指向出站 tag |
TUN 模式接管系统全部流量(包括不走系统代理的程序),实现真正的全局代理。两个生态都通过虚拟网卡实现,但参数命名差异较大。
适用:需要让所有程序(含游戏、命令行工具)都走代理tun: enable: true stack: system # 协议栈:system/gvisor/mixed auto-route: true # 自动配置系统路由表 auto-detect-interface: true # 自动识别出口网卡 dns-hijack: # 劫持 DNS 请求 - any:53
{
"inbounds": [ // TUN 在 sing-box 里是一种入站
{
"type": "tun",
"tag": "tun-in",
"address": ["172.19.0.1/30"], // 虚拟网卡地址,需手动指定
"auto_route": true, // 对应 Clash 的 auto-route
"strict_route": true, // 更严格的路由,防泄漏
"stack": "system"
}
]
}
| TUN 归属 | 顶层独立 tun 块 | 作为一种 inbound 入站 |
| 开关字段 | enable | 声明即启用(无 enable) |
| 命名风格 | 连字符 auto-route | 下划线 auto_route |
| 网卡地址 | 通常自动 | address 需手动指定 |
| DNS 劫持 | dns-hijack | 由 DNS 模块统一处理 |
所有模板均为示例结构,请将 YOUR-UUID-HERE、example.com 等替换为你自己的节点信息。规则集 URL 请使用你信任的来源。