原创 Clash使用Parser添加自定义规则并防止更新覆盖

发布时间:2021-08-02 23:28:36 浏览 1784 来源:猿笔记 作者:Lokfar

    但同样的Clash也面临着订阅规则不完善的情况,比如本人经常使用的Notion笔记软件(notion.so)。就没有加入本人订阅节点的规则中,熟悉Clash的同学应该知道Clash提供了自定义新规则的功能界面,自定义规则就会被覆盖,本文将介绍一种使用Clash的Parser功能。对订阅规则进行预处理的方式添加自定义规则,这种方式能够避免订阅更新造成的规则丢失,**使用该方法需要Clash版本高于0.11.10,请先上github下载安装包进行更新,-prepen-rules此处添加你的自定义规则。具体的自定义规则如何书写在本文的后半部分有说明。


    #主题列表:juejin,github,smartblue,cyanosis,channing-cyan,fancy,hydrogen,condensed-night-purple,greenwillow,v-green,vue-pro,healer-readable,mk-cute

    #投稿主题:

    theme:vue-pro

    highlight:

    Clash可以说是目前最好的代理软件,功能丰富,界面清爽,使用方便。但同样是Clash也面临着订阅规则不完善的问题。比如我经常用的concept笔记软件(concept . so)没有添加到我的订阅节点的规则中,以至于每次只能打开全局模式,不便之处不言而喻。熟悉Clash的同学应该知道,Clash提供了定制新规则的功能界面,对小白非常友好,但是这种方法有一个致命的缺陷,就是每次更新订阅节点时,定制的规则都会被覆盖,导致规则丢失。本文将介绍一种利用Clash的Parser函数添加自定义规则,并编写javascript代码对订阅规则进行预处理的方法。该方法可以避免订阅更新导致的规则丢失。

    ![Clash自定义规则界面](

    #方法的详细介绍

    **注意:*要使用此方法,冲突版本应高于0.11.10。如果低于此版本,请从github下载安装包进行更新。

    **传送门:**[Clash下载地址](

    1.打开`Setting`(设置),找到`Profiles`(配置文件下)的`Parsers`。

    3.输入以下代码(以下为示例代码,需要根据自己的情况进行更改):

    javascriptparsers:#array-url:https://sub.paasi.com/subscribe/5**490/J*****oGHBEyaml:prepend-rules:-DOMAIN-SUFFIX,notion.so,GLOBAL\t-DOMAIN-SUFFIX,medium.com,GLOBAL

    其中需要改动的有**url**和**prepend-rules**。

    -url:改成本人的订阅地址,如果不知道,可以直接在`Profiles`下点击当前订阅的`Changeimformation`,复制其中的URL即可。

    -prepen-rules在此,添加您的自定义规则,每个规则占据一行,并根据用逗号分隔的“规则类型”、“值”和“代理策略”进行排列。注意每行需要以短横线`-`加空格` `开头,注意对齐。如何编写具体的自定义规则在本文的后半部分进行了说明。

    #自定义规则的编写方式

    # #规则类型的选择

    目前,冲突支持以下类型的规则:

    -DOMAIN-SUFFIX:域名后缀匹配

    -DOMAIN:域名匹配

    -DOMAIN-KEYWORD:域名关键字匹配

    -IP-CIDR:IP段匹配

    -SRC-IP-CIDR:源IP段匹配

    -GEOIP:GEOIP数据库(国家代码)匹配

    -DST-PORT:目标端口匹配

    -SRC-PORT:源端口匹配

    -PROCESS-NAME:源进程名匹配

    -RULE-SET:RuleProvider规则匹配

    -MATCH:全匹配

    其中我们使用最多的就是`DOMAIN-SUFFIX`域名后缀了。以

    根据说明,你基本可以猜出其他规则类型的用法,读者可以自行探索。

    **Note:**

    clashforwindowsv 0 . 11 . 5;11;5及以上要求使用“工艺名称”;规则需要匹配完整的流程名称(包括可执行后缀)才能生效;此规则不适用于TAP流量。

    用户界面不支持添加现有的“规则集”。请手动编辑配置文件。

    “MATCH”必须在规则列表的末尾。

    # #代理策略的选择

    一般情况我们使用`DIRECT`,`GLOBAL`,`REJECT`。`DIRECT`表示不走代理,即不通过代理节点直接连接。`GLOBAL`则是走全局代理节点。`REJECT`则表示禁止连接,使用`REJECT`后,将会屏蔽对应网站。

    有些订阅还提供了很多自制的策略,读者可以自行尝试。使用时可以直接输入名字,也支持中文。可能有人会问,如果* *面前有奇怪的符号怎么办?**

    至此,规则的编写已经介绍完毕。以下是一些正确的例子:

    IP-CIDR,123.253.240.0/22,DIRECT

    DOMAIN-SUFFIX,netflixdnstest0.com,代理

    DOMAIN-SUFFIX,flash.cn,REJECT

    DOMAIN-SUFFIX,notion.so,GLOBAL

    #原理介绍

    为什么这种方法可以防止覆盖?原因是Parser函数是对配置文件进行预处理,所以每次更新都会执行Parser,所以自定义规则会一直存在,只要你不删除Parser。

    #拓展

    解析器是一个非常强大的功能,可以对订阅文件进行预处理,达到很多丰富的效果。不过这个功能对小白不是很友好,有兴趣的读者可以查看Clash的文档学习。祝大家工作学习愉快~

    **传送门:**[Clash文档](

    封面图源网,侵删。
    请指出文章的来源和作者。请转载。

作者信息

Lokfar [等级:3]
发布了 1 篇专栏 · 获得点赞 2 · 获得阅读 1783

相关推荐 更多