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

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

Clash可以说是当下最好用的代理软件了,功能丰富,界面清爽,简单易用。但同样的Clash也面临着订阅规则不完善的情况,比如本人经常使用的Notion笔记软件(notion.so),就没有加入本人订阅节点的规则中,以至于每次只能开启全局模式才能打开,其中的不便之处不言而喻。熟悉Clash的同学应该知道Clash提供了自定义新规则的功能界面,对于小白来说十分友好,但是这种方式有一个致命的缺陷,就是每一次更新订阅节点,自定义规则就会被覆盖,造成规则丢失。本文将介绍一种使用Clash的Parser功能,通过书写javascript代码,对订阅规则进行预处理的方式添加自定义规则,这种方式能够避免订阅更新造成的规则丢失。

一、方法详细介绍

  1. 打开Clash软件的Setting(设置),找到Profiles(配置文件下)的Parsers,
  2. 点击右侧的Edit,打开编辑界面。
  3. 并按照规则输入以下代码:
parsers: # array
  - url: https://api.v1.mk/sub?xxxxxxxxxxx
    yaml:
      prepend-rules:
        - DOMAIN-SUFFIX,garmin.com,🇭🇰 香港节点

其中需要改动的有 urlprepend-rules

  • url:改成本人的订阅地址,如果不知道,可以直接在Profiles下点击当前订阅的Change imformation,复制其中的URL即可。
  • prepen-rules 此处添加你的自定义规则,每一条占一行,按照规则类型代理策略排列,使用逗号分隔。注意的是,每一行都需要以一个短横线 - 加一个空格 开头,同时注意对齐。具体的自定义规则如何书写在本文的后半部分有说明。
  1. 点击右下角保存,在Profiles里更新订阅,这样就可以将新的规则添加上了。可以点击Edit rules查看规则进行验证。之后打开相应网页看是否生效。

目前Clash支持的规则类型如下:

  • 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:全匹配

其中我们使用最多的就是DOMAIN-SUFFIX域名后缀了,后缀就是域名从后往前数形成的部分。有些公司会在基础域名上加上前缀,将其解析到一个独立的IP地址。比如world.taobao.com,是在taobao.com前加上了域名前缀world。还有一个常见的前缀是www。如果我需要将world.taobao.com和taobao.com都添加到自定义规则中。我们就可以使用域名后缀DOMAIN-SUFFIX这一类型,同时将值填写为taobao.com就可以了。一般情况下都建议使用DOMAIN-SUFFIX,而不是DOMAIN,因为很多时候你不知道你的使用的服务的域名结构,很多时候会跳转到一个带前缀的子域名上,这个时候突然发现打不开了就很尴尬。

其余规则类型根据说明大家也可以基本猜到其用法,读者可以自行探索。

本文引用自:Clash使用Parser添加自定义规则并防止更新覆盖 – 掘金 (juejin.cn)

0
显示验证码