规则模式(Rule Mode)分流机制与规则优先级详解:全场景智能路由指南

全面深度解构 Clash 规则模式(Rule Mode)分流决策引擎。深入剖析 DOMAIN、DOMAIN-SUFFIX、IP-CIDR、GEOIP、GEOSITE 规则匹配优先级、从上至下执行短路逻辑及 10 大高频分流实战推演。

一句话答案:规则模式是 Clash Verge Rev 的核心灵魂;它基于高度优化的基数树(Radix Tree)从上至下依次匹配规则,一旦某条规则命中即刻触发“短路返回(Short-circuiting)”执行出站,保证国内网站与局域网设备 100% 走 DIRECT 本地直连,仅让特定海外域名精准走代理专线。

本文要点

  1. 核心要点:规则匹配具有严格的从上至下优先级顺序,先声明的规则拥有绝对的优先决断权。
  2. 核心要点:现代规则集已全面升级为基于 Protobuf 编译的 GEOSITE 与 GEOIP 格式,内存查找达到微秒级。
  3. 核心要点:严禁在规则首部无脑放置宽泛的 DOMAIN-KEYWORD,防止正常国内网站被误伤强制走代理。
  4. 核心要点:末尾的 MATCH 规则是系统的终极兜底策略,通常指定为 PROXY(海外代理)或 DIRECT(直连)。

一、路由分流引擎与短路决策树(Radix Tree)推演

在现代网络代理系统的核心架构中,分流引擎不仅是决定“能访问什么”的开关,更是掌控网络性能、安全防封与流量成本的大脑。理解规则模式的运行原理,必须深入其底层 匹配决策树(Routing Decision Tree) 的推演逻辑:

[Clash 规则匹配短路执行状态机推演]
接收到应用层数据包 (目标: www.google.com:443)
  │
  ├── 规则 1: DOMAIN,adservice.google.com,REJECT ──> 未命中,向下滑落
  │
  ├── 规则 2: DOMAIN-SUFFIX,google.com,PROXY ──────> 命中匹配!
  │                                                    │
  │   [触发短路执行 (Short-circuit)!] <─────────────────┘
  │   -> 数据包被立即路由至 PROXY 策略组出站
  │   -> 终止遍历后续所有规则!
  │
  ├── 规则 3: GEOSITE,cn,DIRECT ───────────────────> (跳过不执行)
  ├── 规则 4: GEOIP,CN,DIRECT ─────────────────────> (跳过不执行)
  └── 规则 5: MATCH,PROXY ─────────────────────────> (跳过不执行)

这套机制揭示了规则模式最核心的两大技术铁律:

  1. 短路执行与单项决断(First-Match-Wins):匹配引擎按照配置文件中从上至下的书写次序线性或分层求值。一旦某个规则条件判定为真(True),该数据包的路由命运瞬间注定,后续所有规则哪怕再精确也失去执行机会;
  2. DNS 预解析延迟与 IP 规则代价:
    • 当请求是以域名发起(如浏览器请求)且排在前面的规则是域名型(DOMAIN / DOMAIN-SUFFIX)时,匹配过程纯在内存字符串树中完成,耗时低于 1 微秒;
    • 但若域名未命中域名规则,滑落到了 IP-CIDR 或 GEOIP 规则时,内核被迫在本地立刻发起一次 DNS 解析将域名转化为 IP,这一步可能带来数十毫秒的网络往返开销。因此,科学的规则体系必定是**“域名规则置顶,IP 规则靠后”**。

二、Clash 核心规则类型全景技术参数矩阵

规则类型关键字语法示例匹配目标与范围匹配算法复杂度推荐适用场景
DOMAINDOMAIN,api.openai.com,AI-Group精确单域名完全匹配O(1) 哈希表查找针对特定 API 端点的精确重定向
DOMAIN-SUFFIXDOMAIN-SUFFIX,netflix.com,Netflix匹配目标域名及其所有子域名O(k) 基数树匹配主流服务主力规则 (覆盖主站与全部二级域名)
DOMAIN-KEYWORDDOMAIN-KEYWORD,google,PROXY目标域名包含该子字符串O(n*m) 字符串搜索泛指性模糊捕获 (谨慎使用,易误伤)
GEOSITEGEOSITE,category-ads-all,REJECT预编译分类域名集 (去广告/社交等)O(k) Protobuf 二叉树现代推荐:一键引入成千上万精细化域名
IP-CIDRIP-CIDR,192.168.0.0/16,DIRECT目标 IPv4 属于该无类子网O(log N) 掩码树查找局域网私有网段与特定企业专网排除
IP-CIDR6IP-CIDR6,240e::/18,DIRECT目标 IPv6 属于该子网O(log N) 掩码查找IPv6 双栈直连优化
GEOIPGEOIP,CN,DIRECT目标 IP 归属于指定国家二字码O(log N) MaxMind 查询兜底分流:让所有国内服务器 IP 强制直连
MATCHMATCH,PROXY捕获所有未被上方规则命中的流量O(1) 终极默认全文最后一行:全球无缝兜底

GEOSITE 相对传统平面规则的性能飞跃

在早期配置中,一份包含 20,000 条规则的配置文件往往导致客户端启动耗时数秒且吃掉上百兆内存。而现代 Mihomo 内核引入的 GEOSITE 二进制规则集 实现了架构级跨越:

  1. 压缩存储与极速反序列化:Loyalsoldier 等维护的 geosite.dat 采用 Google Protobuf 二进制序列化,原本几十兆的文本规则被压缩至 2~3MB,内核冷启动反序列化仅需 20 毫秒;
  2. Radix Tree(基数前缀树)高并发检索:在内存中建立按域名倒序构建的前缀树(如 com.google.mail),域名匹配仅需沿着树分支向下跳转若干次指针,无论规则集扩充到 5 万条还是 10 万条,查找耗时均保持在绝对的恒定微秒级(O(k) 复杂度,k 为域名分段深度)。

三、10 大实战分流场景与优先级编排推演

场景 1:既要看 Netflix 4K,又要用 ChatGPT,但两者对节点要求冲突

  • 底层冲突:Netflix 偏好香港/新加坡等低延迟节点,而 ChatGPT 严禁使用中国香港节点,必须使用美国或日本原生双 ISP 节点。
  • 优先级编排:
    rules:
      - GEOSITE,openai,AI-Suite        # 绑定至美国原生双 ISP 策略组
      - GEOSITE,netflix,Media-Streaming # 绑定至香港低延迟解锁策略组
      - GEOSITE,cn,DIRECT
      - GEOIP,CN,DIRECT
      - MATCH,PROXY
    
    实现不同应用流量在出口处的物理分离。

场景 2:公司内网域名与内网 Gitlab 无法访问

  • 底层成因:公司内网使用自定义域名(如 oa.company.internal),默认被 MATCH 规则推向境外代理导致 DNS 无法解析报错。
  • 优先级编排:在规则树最上方放置内网特权直连规则:
    rules:
      - DOMAIN-SUFFIX,company.internal,DIRECT
      - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
      - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
    
    声明 \no-resolve` 避免内核在匹配内网私有 IP 时浪费时间发起无用的远端 DNS 查询。

场景 3:网易云音乐、腾讯视频等因版权原因在代理下提示“仅限中国大陆观看”

  • 底层成因:国内流媒体的鉴权服务器被误判走海外节点,被版权方识别为海外访问实施封锁。
  • 优先级编排:
    rules:
      - GEOSITE,netease,DIRECT
      - GEOSITE,tencent,DIRECT
      - GEOSITE,bilibili,DIRECT
    
    确保国内主流音视频服务无条件走本地直连。

场景 4:海外学术论文站(ArXiv、Sci-Hub)频繁被卡在慢速节点

  • 底层成因:学术资源未在默认规则中单独归类,默认混在普通代理组中遭遇公网拥堵。
  • 优先级编排:创建「学术专线」策略组,将 DOMAIN-SUFFIX,arxiv.org 与 DOMAIN-SUFFIX,sciencedirect.com 单独指定绑定到高带宽 BGP 专线上。

场景 5:Steam 商店与游戏下载跑满物理宽带千兆

  • 底层成因:Steam 游戏安装包体积高达数十吉字节,若走代理会迅速耗尽服务商流量配额。
  • 优先级编排:
    rules:
      - DOMAIN-SUFFIX,cm.steampowered.com,DIRECT # 游戏下载 CDN 直连
      - DOMAIN-SUFFIX,steamserver.net,DIRECT
      - DOMAIN-SUFFIX,steampowered.com,PROXY      # 商店页面走代理
    
    实现“看商店走代理、下游戏走满速本地 CDN”的完美分治。

场景 6:广告拦截规则误伤正常业务网页导致页面错位

  • 底层成因:引入的第三方广告规则集过于激进,将某些合法的统计分析脚本误杀阻断。
  • 优先级编排:在广告拦截规则上方,手动插入白名单规则:
    rules:
      - DOMAIN,legit-analytics.com,DIRECT        # 优先白名单放行
      - GEOSITE,category-ads-all,REJECT          # 下层通用广告拦截
    

场景 7:微信与企业微信视频会议频繁出现机械杂音

  • 底层成因:腾讯的实时音视频服务器使用了动态 IP 段,若被归入海外代理会带来严重的跨洋延迟。
  • 优先级编排:确保 GEOSITE,weixin,DIRECT 位于顶级执行队列,数据包全部走本地物理宽带直通。

场景 8:外服游戏联机因规则缺失导致 UDP 裸奔超时

  • 底层成因:缺乏对游戏服务器 IP 段的精细代理规则,游戏连接滑落至 DIRECT 直连导致联机失败。
  • 优先级编排:使用 TUN 模式并配置游戏专用 IP 规则段指向低延迟 IEPL 专线,参考 游戏节点优化指南。

场景 9:防止本地 DNS 污染导致规则模式误判

  • 底层成因:传统 DNS 查询被本地运营商污染为错误 IP,导致后续 IP 规则无法正确识别目标归属。
  • 优先级编排:在客户端中开启 Fake-IP 模式与域名嗅探(Sniffer),在域名层级即刻完成分流决断,杜绝落入 IP 匹配层。

场景 10:服务商订阅更新时保留用户自定义分流规则

  • 底层成因:手动修改规则文件会在每次订阅拉取时被覆盖。
  • 优先级编排:通过 Clash Verge 的「预处理器(Parsers)」脚本动态在规则最顶部注入自定义规则,详见 Parsers 规则合并指南。

四、生产级场景决策与高转化服务选型挂载

当你构建了精密的规则分流体系后,最终决定分流效果的是各策略组绑定的底层服务器专线能力。一个科学的规则架构必须搭配差异化分级的商业网络线路:

[分流规则与专线等级精准映射全景]
AI 大模型规则 (OpenAI/Claude) ──> 绑定原生双 ISP 住宅专线 (0 验证码、防封号)
4K 流媒体规则 (Netflix/Disney+) ──> 绑定解锁池轮换专线 (杜比视界高码率不转圈)
开发构建规则 (GitHub/Docker) ───> 绑定高带宽 BGP 专线 (千兆满速拉取)
常规海外网页 (MATCH) ────────────> 绑定日常标准专线 (经济实惠)

商业透明度合规声明: 本站正文中严禁硬编码商业推广链接。本站建立了 机场品牌库档案 与 主流服务商横向对比评测 体系,所有推荐品牌均通过严格的丢包测试与商业运营年限核验。部分外链带有 sponsored 赞助属性,若您自愿通过链接注册可能为本站维系测试节点提供必要支持,绝不影响您的最终付款金额。


五、CLI 实操排障与分流规则链追踪脚本

以下提供可直接在终端中调用的排障与调试命令,用于精准追踪任意特定域名的规则匹配路径。

1. PowerShell 模拟规则命中与本地路由审计指令 (Windows)

在 PowerShell 中执行以下脚本,模拟向本地代理发起针对不同目标域名的请求并核验握手归宿:

# 1. 验证国内与海外域名的分流响应速度与出口差异
$proxyUri = "http://127.0.0.1:7897"

Write-Host "=== 测试国内目标域名分流状态 (应毫秒级直连) ===" -ForegroundColor Cyan
$sw = [System.Diagnostics.Stopwatch]::StartNew()
try {
    $cnRes = Invoke-RestMethod -Uri "https://myip.ipip.net" -Proxy $proxyUri -TimeoutSec 3
    $sw.Stop()
    Write-Host "[+] 国内探测成功 (耗时: $($sw.ElapsedMilliseconds) ms): $cnRes" -ForegroundColor Green
} catch {
    Write-Host "[-] 国内探测超时,请检查规则是否正确配置为 DIRECT!" -ForegroundColor Red
}

Write-Host "
=== 测试海外目标域名分流状态 (应走代理出口) ===" -ForegroundColor Cyan
$sw.Restart()
try {
    $intlRes = Invoke-RestMethod -Uri "https://ipinfo.io/json" -Proxy $proxyUri -TimeoutSec 5
    $sw.Stop()
    Write-Host "[+] 国际探测成功 (耗时: $($sw.ElapsedMilliseconds) ms)" -ForegroundColor Green
    Write-Host "  -> 出口 IP: $($intlRes.ip) ($($intlRes.country), $($intlRes.org))" -ForegroundColor Yellow
} catch {
    Write-Host "[-] 国际探测失败,请核查策略组中节点可用性!" -ForegroundColor Red
}

2. Linux / macOS 核心规则匹配与日志监听指令 (Bash)

通过向 Mihomo 外部控制端口(默认 9097)发送 WebSocket 请求实时捕获流量规则命中日志:

# 实时捕获代理核心当前的流量命中记录 (需安装 websocat 或 wscat)
echo "=== 监听实时分流规则匹配日志 ==="
curl -s http://127.0.0.1:9097/logs?level=info | while read -r line; do
    echo "[TRAFFIC] $line"
done

六、长尾技术深度常见问答 (FAQ)

Q1:为什么说规则的书写顺序至关重要?

因为 Clash 内核在匹配规则时采用的是“从上至下的短路匹配机制(First-match-wins)”。数据包一旦命中了排在前面的第一条规则,内核就会立刻执行该规则对应的动作(如 DIRECT 或 PROXY)并直接结束匹配流程,排在后面的其他规则将被完全忽略。如果将范围过于宽泛的规则写在前面,排在后面的精准规则将永远无法生效。

Q2:DOMAIN-SUFFIX 和 DOMAIN-KEYWORD 有什么本质区别?

DOMAIN-SUFFIX 是“域名后缀匹配”,例如 DOMAIN-SUFFIX,google.com 仅能匹配以 google.com 结尾的域名(如 mail.google.com、www.google.com);而 DOMAIN-KEYWORD 是“模糊关键词匹配”,只要域名中任何位置包含该词(如 DOMAIN-KEYWORD,google)都会命中。关键词匹配极易产生非预期的误伤,日常应优先使用严谨的 DOMAIN-SUFFIX。

Q3:GEOSITE 和 GEOIP 规则集是什么?为什么比普通规则更快?

GEOSITE 和 GEOIP 是采用 Google Protocol Buffers 紧凑二进制格式编译的全球域名与 IP 归属地数据库。相比在文本文件中逐行书写上万行普通域名规则,GEOSITE 在内核启动时会被一次性加载为高度紧凑的基数树(Radix Tree)索引结构,在多万级并发查询下仅需微秒即可完成精准判定,且由社区自动高频更新维护。

Q4:访问国内网站时,规则模式会消耗我在服务商处购买的套餐流量吗?

绝对不会!在规则模式下,所有被命中为 DIRECT(直连)或者属于国内 IP/域名的请求,数据包会直接通过你本地的物理宽带光纤发送,完全不经过服务商的境外代理服务器,因此零流量消耗且延迟最低。

Q5:如何让某个特定的海外网站(如特定公司内部系统)强制不走代理?

利用 Clash Verge Rev 的预处理器(Parsers / Merge)功能,在规则列表的最顶部插入一条 DOMAIN-SUFFIX,yourcompany.com,DIRECT。由于排在最前面,该请求会立刻命中直连而无需走任何海外节点。

Q6:规则末尾的 MATCH 是什么意思?可以删除吗?

MATCH 是规则体系中的“最终兜底捕获规则(Catch-all)”,绝对不能删除!当一个请求经过上面成百上千条规则筛查后均未能命中时,MATCH 会作为最终决定器。如果配置为 MATCH,PROXY,则所有未知冷门海外流量全部走代理;如果配置为 MATCH,DIRECT,未知流量则全部走直连。

Q7:遇到规则冲突或分流失效,应该如何快速调试?

点击 Clash Verge Rev 左侧的「日志(Logs)」或「连接(Connections)」面板。发起网页访问时,连接列表中会清晰显示该连接的目标域名、命中的具体规则(如 DOMAIN-SUFFIX 或 GEOIP)以及最终流向的策略组,一目了然。

Q8:规则模式下,流媒体和 ChatGPT 应该怎样实现各自走不同节点?

通过在配置文件中建立专有的策略组:让流媒体规则(如 Netflix)指向解锁池策略组,让 AI 规则(如 OpenAI)单独指向双 ISP 住宅策略组,实现多业务场景互不干扰的多路并发分流。具体可参考 自定义策略组搭建指南。


七、知识图谱与延伸学习

数据来源与事实核验: