Clash订阅文件利用规则预处理添加自定义规则
clash是目前广泛使用的代理软件,有很多小技巧可以让我们的使用更加舒心。我们订阅代理商提供的配置文件总会有这样那样的代理规则不合适问题,比如有些网站我们想要使用代理却直连了,或者我们想要直连一些网站它却使用了代理,不同的人需求总是不一样(IEEE我就想要直连才有账号,但它却是外国网站)。修改代理规则就可以解决这些问题,一劳永逸!

直接在配置界面修改配置规则是可以的,但是此方法在每次更新配置之后都会覆盖之前的更改,需要重新修改配置十分不便,Clash在v0.11.10版本的时候推出了使用yaml进行规则预处理的功能,有效解决了这个痛点。具体的官方文档可以看这里:https://docs.cfw.lbyczf.com/contents/parser.html#%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82
打开预处理编辑页面

第一条红线处为编辑预处理规则处,结束后别忘了将第二条红线处的更新订阅后直接切换为该配置文件打开,这样以后更新定阅规则时可以自动延续已设置好的规则。
2.预处理文件内容
具体内容格式入上,url后面指定你所要更改的订阅规则源,可以对多个订阅源分别处理。yaml后为具体需要添加的内容。所示例子中prepend-rules表示将后面的内容添加到原规则的rules中。添加其他指令如可根据下图修改内容。

另外,DOMAIN,test.com,DIRECT 中第一项确定域名匹配规则,第二项填写需要设定规则的目标域名,DIRECT表示使用直连的方法连接这个网站。此外REJECT表示拒绝连接此网站,若是在proxy-groups中定义过使用某地服务器代理方案,也可以在这里使用。其他域名匹配规则如下:
DOMAIN-SUFFIX:域名后缀匹配
DOMAIN:域名匹配
DOMAIN-KEYWORD:域名关键字匹配
IP-CIDR:IP 段匹配
SRC-IP-CIDR:源 IP 段匹配
GEOIP:GEOIP 数据库(国家代码)匹配
DST-PORT:目标端口匹配
SRC-PORT:源端口匹配
PROCESS-NAME:源进程名匹配
RULE-SET:Rule Provider 规则匹配
MATCH:全匹配
根据上述原理添加规则,就可以自定义出最适合自己的代理规则。另外Clash的机制是自上而下遍历规则,只需要将自定义规则添加到rules数组前保证自定义规则首先被遍历即可
3.个人设置示例
本人添加的预处理规则如下:
这里根据https://github.com/Loyalsoldier/clash-rules设置的自动更新直连和代理列表集,在rules的开头先添加了IEEE网站使用DIRECT规则,这样就不会翻墙去看论文啦。直接copy使用是不太能,把url和最后的PROXY改成你自己的名字就ok了。