规则(rules)是 Clash 配置的灵魂:每一条新连接都会拿着自己的目标域名/IP,从规则列表的第一条开始逐条匹配,命中即停止。写好规则,分流就成功了一大半。

规则语法

rules:
  - 类型,匹配内容,出口
  # 例如:
  - DOMAIN-SUFFIX,youtube.com,节点选择
  - GEOIP,CN,DIRECT
  - MATCH,节点选择

“出口”可以是某个代理组名、DIRECT(直连)或 REJECT(拦截)。

常用规则类型

类型匹配对象示例
DOMAIN完整域名DOMAIN,www.google.com,PROXY
DOMAIN-SUFFIX域名及其子域DOMAIN-SUFFIX,google.com,PROXY
DOMAIN-KEYWORD域名包含关键词DOMAIN-KEYWORD,google,PROXY
IP-CIDR目标 IPv4 网段IP-CIDR,8.8.8.8/32,PROXY
GEOIPIP 的地理归属GEOIP,CN,DIRECT
PROCESS-NAME发起连接的进程PROCESS-NAME,Telegram.exe,PROXY
RULE-SET外部规则集RULE-SET,ads,REJECT
MATCH兜底,匹配一切MATCH,PROXY

顺序为什么重要

考虑下面两条规则的顺序差异:

- DOMAIN-SUFFIX,cn.example.com,DIRECT
- DOMAIN-SUFFIX,example.com,PROXY

这样写,cn.example.com 会直连,其余 example.com 走代理。若两条对调,DOMAIN-SUFFIX,example.com 会先命中一切(包括 cn 子域),第二条永远轮不到。原则:具体的规则放前面,宽泛的规则放后面。

MATCH 兜底

列表最后应有且仅有一条 MATCH 规则,处理前面全部未命中的流量。没有 MATCH 时未命中流量默认直连。把 MATCH 指向代理组(“漏网”流量走代理)还是 DIRECT(“漏网”直连),决定了你的分流策略是“黑名单”还是“白名单”思路。

调试技巧:不确定某个网站命中了哪条规则时,打开 Connections 页面看 Rule 列即可,比盯着配置猜快得多。