Clash 可以说是当下最好用的代理软件之一了,功能丰富,界面清爽,简单易用。但 Clash 订阅规则也不可能对所有人都达到完美程度,总有需要自定义的时候。比如本人用到群晖的 DDNS,外部地址获取需要访问 checkip.synology.com,但这个地址会自动识别到代理规则中,其中的不便之处不言而喻。熟悉 Clash 的同学应该知道 Clash 提供了自定义新规则的功能界面,对于小白来说十分友好,但是这种方式有一个致命的缺陷,就是每一次更新订阅节点,自定义规则就会被覆盖,造成规则丢失。本文将介绍一种使用 Clash 的 Parser 功能,通过书写 javascript 代码,对订阅规则进行预处理的方式添加自定义规则,这种方式能够避免订阅更新造成的规则丢失。
Note: 使用该方法需要 Clash 版本高于 0.11.10,如果低于该版本,请先上 github 下载安装包进行更新。
Setting
(设置),找到Profiles
(配置文件下)的Parsers
。Edit
,打开编辑界面。- url: https://subcon.dlj.tf/*********/***** yaml: prepend-rules: - DOMAIN-SUFFIX,checkip.synology.com,DIRECT
其中需要改动的有 url 和 prepend-rules 。
Profiles
下点击当前订阅的settings
,复制其中的 URL 即可。Profiles
里更新订阅,这样就可以将新的规则添加上了。可以点击edit rules
查看规则进行验证。之后打开相应网页看是否生效。目前 Clash 支持的规则类型如下:
其中我们使用最多的就是DOMAIN-SUFFIX
域名后缀了。其余规则类型根据说明大家也可以自行探索。
Note:
PROCESS-NAME
需要 Clash for Windows v0.11.5 及以上版本;规则需要匹配完整的进程名(包括可执行文件后缀)方可生效;该规则不适用于 TAP 流量。RULE-SET
规则,请手动编辑配置文件。MATCH
需要位于规则列表末尾。一般情况我们使用DIRECT
,GLOBAL
,REJECT
。DIRECT
表示不走代理,即不通过代理节点直接连接。GLOBAL
则是走全局代理节点。REJECT
则表示禁止连接,使用REJECT
后,将会屏蔽对应网站。
有一些订阅还提供了很多自制的策略,可以自行尝试。使用时直接输入名字即可,中文也是支持的哦。有人可能会问,前面有奇奇怪怪的符号怎么办?
点击General
,点击Home Directory
下的Open Folder
,打开配置文件夹,点击Profiles
文件夹,找到对应的yml
文件,用记事本
等软件打开,直接复制粘贴就可以啦。
为什么这种方法能够防止覆盖呢?原因是 Parser 功能是配置文件进行预处理,因此,每一次更新都会执行一次 Parser,因此自定义规则会永远存在,只要你不删除 Parser。
Parser 是一个非常强大的功能,可以通过这个功能对订阅文件进行许多预处理,达到许多非常丰富的效果。但是这个功能对于小白来说并不太友好,有兴趣的读者可以查看 Clash 的文档进行学习。祝大家都能愉快的工作和学习~
传送门: Clash 文档