分流与规则

约 10 分钟阅读 · 节点组 / 路由 / DNS
CMSingBox 的分流由节点筛选组、路由规则、最终出站和 DNS 模式共同决定。先创建稳定的出站组,再由高到低安排规则,最后用日志验证。

一、准备出站

在节点与订阅页确认订阅已经刷新,手动节点状态正确。随后建立筛选组:

方式适用场景关键参数
select手动固定选择节点国家、包含/排除关键字
urltest自动选择延迟较低的节点测试 URL、间隔、容差

筛选结果为空时,规则引用该组会失败。先查看匹配节点数,再保存和应用。

二、规则类型

  • 域名后缀:适合一组站点,例如 example.com 同时匹配子域名。
  • IP CIDR:适合固定地址段和纯 IP 应用。
  • GeoSite:按维护好的域名分类集合匹配。
  • GeoIP:按目标 IP 地理分类匹配。

GeoSite/GeoIP 值会做格式校验。规则资源必须与当前内核兼容。

三、优先级和最终出站

更具体的例外规则放前面,宽泛规则放后面。第一条命中后即决定出站。所有规则均未命中时,使用设置页的“最终出站”。

  1. 内网和必须直连的目标。
  2. 需要指定节点组的业务。
  3. 广告或阻断规则(若已创建对应出站)。
  4. 国家、区域等宽泛规则。
  5. 最终出站兜底。
规则模式不是客户端的“全局开关”要实现全局代理,可将最终出站设为代理组,并只在前面保留内网/必须直连规则;要实现常规规则代理,则最终出站设为直连。

四、常见配置示例

国内直连,其余代理

  1. 建立名为“自动选择”的 URLTest 筛选组。
  2. 添加内网 CIDR 直连规则。
  3. 添加 GeoSite/GeoIP 国内直连规则。
  4. 最终出站选择“自动选择”。

1.0.37 起,未被用户规则或规则组匹配的 .cn 域名会兜底直连,避免规则集尚未收录的新国内网站误走海外出口。用户自定义规则仍有更高优先级;需要代理某个 .cn 网站时可单独添加规则。

仅指定域名代理

  1. 最终出站设为直连。
  2. 添加域名后缀规则,出站选择目标筛选组。
  3. 将这些规则优先级置于宽泛直连规则之前。

指定设备旁路由

CMSingBox 内部规则决定“流量出去走哪里”,路由器决定“哪些终端流量送进 CMSingBox”。请根据主路由选择 RouterOS、爱快、UniFi / UBNT、OPNsense 或 通用路由器教程。

五、DNS 分流模式

设置页提供两种 DNS 路由模式,并可填写例外设备。启用 FakeIP 后,需要代理的域名应返回 198.18.0.0/15 中的地址;RouterOS 等上级网关还必须把该地址段路由给 CMSingBox。DNS 模式负责域名判断,路由规则负责实际流量,二者缺一不可。

六、保存、应用和验证

  1. 保存筛选组和规则,确认无校验错误。
  2. 在设置页保存最终出站和 DNS 参数。
  3. 应用配置并重启 sing-box。
  4. 打开代理控制台查看当前节点和连接。
  5. 打开 DNS 监控检查域名、来源 IP 与缓存状态。
  6. 若失败,查看 sing-box 日志中的第一条 ERROR。

七、修改后无法上网

  1. 先把最终出站改回直连并停用最近添加的规则。
  2. 若使用旁路由,先停用路由器的 mangle/策略路由规则。
  3. 重新应用配置,确认显式代理 2080 单独可用。
  4. 逐条恢复规则,每次只变更一个条件。