在读这篇之前
建议先阅读Clash基础教程了解订阅、策略组和分流规则的基本概念,本文在此基础上讨论更具体的规则配置方式。
规则的匹配顺序
Clash的分流规则是按配置文件里从上到下的顺序依次尝试匹配的,一旦某条规则匹配成功,就会按该规则指定的策略(代理/直连/拒绝)处理,不再继续往下匹配。这意味着规则的排列顺序很重要:更精确、更需要优先处理的规则应该放在前面,笼统的兜底规则(比如“其余全部流量走代理”)放在最后。
常见的匹配类型
- DOMAIN-SUFFIX:按域名后缀匹配,比如匹配某个网站的所有子域名。
- DOMAIN-KEYWORD:按域名中包含的关键词匹配。
- IP-CIDR:按IP地址段匹配,常用于匹配国内IP段实现直连。
- GEOIP:按IP所属国家/地区匹配,比如“GEOIP,CN”常用于让所有识别为国内的IP直连。
- PROCESS-NAME:按发起请求的进程名匹配,用于给特定应用单独指定策略。
- MATCH:兜底规则,匹配所有未被前面规则处理的流量,通常放在最后一行。
什么是规则集(Rule Provider)
如果所有规则都靠自己手写和维护,工作量很大,而且国内外网站、IP段的变化需要持续更新才能保持准确。Clash支持“Rule Provider”功能,允许你在配置里引用一个远程维护的规则列表文件(通常由社区项目定期更新维护),客户端会定期拉取更新,不需要你手动逐条修改。常见的规则集会区分“国内网站直连”“境外网站代理”“广告拦截”等不同用途,可以按需引用组合。
一个简化的实践思路
对大多数用户来说,不需要从零手写规则,可以:
- 使用机场订阅自带的默认规则(大部分机场已经预置了一套基础的直连/代理规则)。
- 如果发现某些网站分流不准确(该直连的走了代理,或反过来),再针对具体域名手动添加一条规则覆盖。
- 需要更完善的分流效果时,再考虑引入社区维护的规则集,替代默认的简单规则。
排查分流问题的思路
如果某个网站访问异常,可以检查:该网站域名是否被规则错误分流;如果使用了远程规则集,规则集是否已经过期未更新;以及是否存在DNS泄露或DNS污染导致的域名解析问题,这些都是实际使用中常见的排查方向。