规则配置

规则路由是 Clash 最核心的能力:它决定每一条流量走直连、拒绝,还是经过某个代理节点。理解规则配置,是把 Clash 用得顺手的关键。

规则是什么

Clash 的配置里有一个 rules 数组,流量进来后从上到下逐条匹配,命中第一条就执行对应动作,后面的规则不再生效。因此顺序很重要——越是精确、越是高频的规则,越应该放在前面。

每条规则由「类型 + 值 + 动作」三部分组成,例如:

rules:
 - DOMAIN-SUFFIX,google.com,代理组名
 - GEOIP,CN,DIRECT
 - MATCH,代理组名

常见规则类型

类型 匹配对象 典型用途
DOMAIN 完整域名 精确指定单个站点
DOMAIN-SUFFIX 域名后缀 匹配某域名及其子域
DOMAIN-KEYWORD 域名关键词 批量匹配含某词的域名
IP-CIDR / IP-CIDR6 IP 段 指定网段走特定出口
GEOIP / GEOIP-CN 国家 IP 国内 IP 直连、海外走代理
PROCESS-NAME 进程名 按应用软件分流
RULE-SET / DOMAIN-SET 外部规则集 引用远程大列表

动作怎么选

规则最后的动作通常是三种之一:

  • DIRECT:直连,不经过任何代理,适合国内站点与局域网。
  • REJECT:拒绝连接,常用于屏蔽广告、追踪与恶意域名。
  • 代理组名:把流量交给某个代理组,由代理组决定具体节点。

配置里一般会先放一批国内直连规则(GEOIP,CN,DIRECT、国内域名后缀等),再放广告屏蔽规则,最后用 MATCH,代理组名 兜底,把剩下所有流量送进代理。

规则集与外部列表

把成千上万条规则直接写在配置文件里既臃肿又难维护。Clash 支持 rule-providers(旧称 rule-set),可以从远程加载 yamlmrs 格式的规则集:

rule-providers:
 reject:
 type: http
 behavior: domain
 url: https://example.com/reject.yaml
 interval: 86400

然后在 rules 里用 RULE-SET,reject,REJECT 引用即可。这样规则来源可以独立更新,配置本体保持清爽。

实操建议

  • 测准再上线:修改规则后,用 https://ip.skk.moehttps.com 这类测速站确认分流是否符合预期。
  • 避免过宽DOMAIN-KEYWORD 命中范围大,容易误伤,能写精确后缀就别用关键词。
  • 善用 GEOIP-CN:把国内流量直连,既能提速也能减少代理节点负担。
  • 预留兜底:务必保留一条 MATCH 规则,否则未匹配的流量行为不可预期。

规则配置没有标准答案,结合自己的常用站点与节点情况逐步调优,才是最优解。