规则配置问题
配置Clash规则似乎很简单,哪些规则通过代理、哪些规则直连一个个添加上去就可以了。
这似乎很合理,但匹配规则是有先后顺序的,黑名单、白名单模式配置规则顺序也很重要。
你是否遇到过这样问题:
- 使用黑名单模式,访问google.com一会正常、一会儿就
connection reset
链接被重置了? - 使用白名单模式,访问某个国内网站,却走了默认代理?
原因分析
上面两个示例很大概率就是DNS污染导致的。
- 黑名单模式时DNS查询国内DNS返回个国内地址,直接匹配了直连,一会儿DNS查询返回了真实IP地址,由走代理正常访问了。解决方法是优先配置URL规则、减少或不要配置直连规则。
- 白名单模式时,很难将所有国内网址和IP配置全,因此走默认代理可能性很大,解决方法是优先配置URL规则、再加上国内IP规则。
配置规则示例
下面是比较常规且通用的配置规则,自定义规则可以在最后一条之前添加即可。
黑名单模式规则示例
# 黑名单模式,命中规则使用代理
rules:
- RULE-SET,applications,DIRECT
- DOMAIN,clash.razord.top,DIRECT
- DOMAIN,yacd.haishan.me,DIRECT
- RULE-SET,private,DIRECT
# 先匹配代理规则后直连
- RULE-SET,tld-not-cn,默认代理组
- RULE-SET,google,默认代理组
- RULE-SET,gfw,默认代理组
- RULE-SET,proxy,默认代理组
- RULE-SET,greatfire,默认代理组
- RULE-SET,telegramcidr,默认代理组
## 中间可以添加其他规则
# 其他规则xxxxx
#
# 默认规则
- MATCH,DIRECT
提示: 建议不要把
- RULE-SET,direct,DIRECT
这样的规则添加到黑名单模式,没必要且容易导致跟DNS污染有关的问题。
白名单模式
# 白名单模式,命中规则直连
rules:
- RULE-SET,applications,DIRECT
- DOMAIN,clash.razord.top,DIRECT
- DOMAIN,yacd.haishan.me,DIRECT
- RULE-SET,private,DIRECT
- RULE-SET,lancidr,DIRECT
# 直连URL规则
- RULE-SET,direct,DIRECT
# 直连IP规则
- GEOIP,CN,DIRECT,no-resolve
# 默认规则
- MATCH,默认代理组