🧩 规则基础:匹配流程
Clash 的规则引擎按顺序从上到下匹配,一旦命中即停止,不再继续检查后续规则。因此,规则的顺序至关重要。一个请求会依次经过每条规则的检查,直到找到第一个符合条件的规则,然后使用该规则指定的策略组(如 PROXY、DIRECT、REJECT 等)。
如果没有命中任何规则,Clash 会使用最后的 MATCH 规则(通常设置为默认策略组)。因此务必保证规则末尾有一条 MATCH。
📋 常用规则类型速查
| 规则类型 | 语法示例 | 说明 |
|---|---|---|
| DOMAIN | DOMAIN,google.com,PROXY |
精确匹配域名,不含子域名 |
| DOMAIN-SUFFIX | DOMAIN-SUFFIX,youtube.com,PROXY |
匹配域名后缀,含所有子域名 |
| DOMAIN-KEYWORD | DOMAIN-KEYWORD,facebook,PROXY |
匹配域名包含关键字 |
| GEOIP | GEOIP,CN,DIRECT |
根据 IP 地理位置数据库匹配 |
| IP-CIDR | IP-CIDR,10.0.0.0/8,DIRECT |
匹配 IP 地址段 |
| MATCH | MATCH,PROXY |
匹配所有请求,必须放在最后 |
此外,Clash Meta 等内核还支持 DOMAIN-REGEX(正则匹配)、AND/OR 逻辑组合等高级规则,可进一步精细控制。
⚡ 实战案例:打造智能分流
场景一:国内直连、国外代理
这是最常见的“白名单”模式,默认代理,仅国内站点直连:
rules: - DOMAIN-SUFFIX,cn,DIRECT - DOMAIN-KEYWORD,alipay,DIRECT - GEOIP,CN,DIRECT - MATCH,PROXY
注意:GEOIP,CN,DIRECT 会将所有服务器位于中国的 IP 直连,省去大量域名规则。
场景二:屏蔽广告和跟踪器
利用 REJECT 策略组直接丢弃广告请求,提升体验:
rules: - DOMAIN-KEYWORD,ad,REJECT - DOMAIN-SUFFIX,doubleclick.net,REJECT - DOMAIN-SUFFIX,googlesyndication.com,REJECT - MATCH,PROXY
场景三:多节点负载均衡
将视频流量指向 url-test 策略组,自动选择最快的节点:
proxy-groups:
- name: Video
type: url-test
proxies: [Node1, Node2, Node3]
url: 'http://www.gstatic.com/generate_204'
interval: 300
rules:
- DOMAIN-SUFFIX,youtube.com,Video
- DOMAIN-SUFFIX,netflix.com,Video
- MATCH,PROXY更多策略组玩法,请参阅 《Clash 策略组完全解析》。
📊 规则顺序与优先级
规则匹配遵循“先到先得”的原则。请记住以下优先级口诀:
- REJECT 类规则最前: 尽早丢弃广告、跟踪流量,避免浪费资源。
- 精确域名与 IP 规则居中: 特别重要的内部服务、需要固定代理的站点放在前面。
- GEOIP 规则靠后: 通常用于大面积直连,但如有特殊需要可以提前。
- MATCH 永远最后: 作为兜底规则。
MATCH 放在规则中间会导致后续规则完全不生效。请使用客户端的规则排序检查功能。
🔍 调试与验证技巧
1. 开启日志查看命中情况
在客户端设置中将日志级别调整为 debug,可以看到每条请求匹配了哪条规则。这对于排查“为什么这个网站走了代理/直连”非常有效。
2. 使用外部工具验证
浏览器访问 ipinfo.io 可查看当前出口 IP;使用 nslookup 或在线 DNS 泄漏测试工具确认 DNS 是否泄漏。
3. 临时切换模式
怀疑规则问题时,可将客户端模式临时切换为“全局”,若网络恢复正常,说明规则未正确命中该站点。此时再去调优规则。
🏆 最佳实践总结
- 优先使用社区维护的规则集(如 Loyalsoldier/clash-rules),它们每日更新,省去大量手动维护工作。
- 自定义规则应尽量精简,过多规则会影响匹配性能。
- 利用
DOMAIN-SUFFIX替代多个DOMAIN,减少冗余。 - 定期查看客户端日志,清理无效规则。
- 将策略组命名规范化,方便在规则中引用。
掌握了这些技巧后,你的 Clash 分流将会既高效又稳定。如果想进一步提升网络性能,强烈建议阅读 《TUN 模式原理与优化指南》,将规则与 TUN 模式结合,实现真正的全局无死角代理。