如何优雅地为 Clash 添加自定义代理规则?这是你要看的最后一篇教程

查看 354|回复 26
作者:studyingss   
前言
上一篇文章里很多人想学怎么为 Clash 自定义教程,所以尽量快地写出来了。
只要利用好 gist 和订阅转换,为 Clash 添加规则并不难,既不用自己写工具,也不用自己买台服务器。
看完这篇文章,只需要短短 4 步,你就可以实现:
  • 配置一套属于自己的分流规则
  • 无需 自行搭建任何服务
  • 任意 订阅上使用你的规则
  • 拥有跨平台的、通用的、自动同步的自定义规则列表

    下面是正文,原文链接在 https://luxirty.com/article/custom-clash-rule 内容跟这里没区别,只多了一两句话
    所需工具
  • GitHub 账号
  • 订阅转换(随便找一个就行)

    一、创建远程配置
    这一步仅仅是准备工作,你只需要跟着教程做就好,不需要在意细节,等看完整篇教程再回来关注细节也不迟。
    打开 https://gist.github.com/ 创建一个新的 gist
    为了方便理解,我们从一个非常简单的配置开始
    把下面这个 gist 中的所有内容复制到你自己的 gist 里,然后点 create secret gist
    https://gist.github.com/miaomiaoclub/8afa34d1be421f9ac14ee5f872865bdb/e7e660e7796e82f6d00c46756b2e593494cd8961
    完成之后来仔细查看一下这段配置文件,它实际上就只有两项配置:
    # 定义了规则
    ruleset=
    # 定义了分组
    custom_proxy_group=
    暂时不需要关注更复杂的细节,下面会讲。
    二、创建你自己的代理列表
    再新建一个 gist ,这个 gist 里写你自己需要代理的域名,一行一个。
    格式如下:
    DOMAIN-SUFFIX,google.com
    如果想要指定 IP ,格式是
    IP-CIDR,1.201.0.0/24,no-resolve
    完成之后是这样:
    https://gist.github.com/miaomiaoclub/76a9b5dbaad3203f9617dd69b4c74ea5
    以后想添加需要走代理的域名,修改这个 gist 就可以。
    三、将代理列表加入规则中
    打开上一步创建的代理列表 gist ,点击 “raw”,把整段 URL 复制出来:
    https://gist.githubusercontent.com/miaomiaoclub/76a9b5dbaad3203f9617dd69b4c74ea5/raw/0d15083648bda2d0420b9260632736eceb4dcb3c/yourlist.list
    删掉“raw”后面的所有部分:
    https://gist.githubusercontent.com/miaomiaoclub/76a9b5dbaad3203f9617dd69b4c74ea5/raw/yourlist.list
    这里我保留了文件名,删掉也可以,随你喜欢,只要能打开就行。
    回到第一步创建的 gist ,添加一行,其中后面的链接用上面得到的
    ruleset=🚀 节点选择,https://gist.githubusercontent.com/miaomiaoclub/76a9b5dbaad3203f9617dd69b4c74ea5/raw/yourlist.list
    完成之后是这样(第 12 行是新添加的):
    https://gist.github.com/miaomiaoclub/8afa34d1be421f9ac14ee5f872865bdb/03a5288b68c0fdb780e6e533c70ade4aff65b3a8
    四、订阅转换
    打开你平常爱用的订阅转换。
    任意一个都可以,请不要发“偷订阅”之类的回复。
    由于上个帖子有人恶意揣测,这里不贴链接和截图,自行 Google 。
    打开之后先像平常一下在订阅链接里填上订阅。
    重点来了。
    打开第一步创建的 gist ,点击 raw ,一样把 URL 中 raw 后面的内容全部删掉,粘贴到“远程配置”一栏,注意,粘贴进去之后还需要在下拉框点击一下。
    五、完成
    像平常一样点击生成订阅链接,到 Clash 中订阅,一切就完成了。
    六、一些后记
    在这篇教程的例子中,我将 chatgpt 添加到了代理列表中,如果你还没理解如何做到的,请再看一下第二步创建的配置文件。
    我相信你的好奇心和求知欲还想做更多操作,所以你应该会想看看官方文档:https://github.com/tindy2013/subconverter/blob/master/README-cn.md
    一个关于性能的小 tip
    subconverter 默认展开规则,但实际上 rule provider 的性能更好,在正文里没有提到这点是因为开启这个选项可能导致无法订阅,因为 clash 更新 provider 是通过直连。
    如果有能力,最好还是使用 provider ,ip-cidr 和 domain 两种类型的 rule set 可以带来非常大的速度提升和内存节省,stash 的 wiki 里也有提到这一点,具体原因和解释可以看 https://t.me/AirixCloud/36
    如果你觉得这个帖子有用的话,希望不要只点击收藏,可以回复来讨论或者提问,或者点一下标题下面的箭头,我更希望和各位有更加直接的交流,不需要担心自己提的问题过于简单,感谢~
    原本不想吐槽的,结果回复里还是出现了。
    [ol]
    这篇帖子的意义就在于说明 “subconverter 拥有远程配置功能,无需自行搭建也可以利用别人提供的 subconverter 实现自定义规则”
    parsers、自行编辑脚本等方法最大的问题在于两点。一是 parsers 是 CFW 的功能而不是 clash 核心的功能,你定义好之后只能在 cfw 使用,在 android、 ios、路由器上就无法使用了。第二它不具备跨平台同步功能,你需要手动维护各个客户端上的规则,如果你只有一个设备这样使用当然没问题。
    末尾提到 provider 只是为了给 有足够能力理解文章主要内容,并且想要优化内存占用和性能的人 准备的,如果连 Clash 的一些基本概念都没理解,暂时没必要关注这个。
    Clash.Meta 的订阅转换功能是让他可以识别非 clash 格式的节点,本文的内容是 “如何利用订阅转换工具自定义分流规则”,#5 真的不是关键词机器人吗?
    [/ol]

    gist, 订阅, yaml, RAW

  • Moha   
    原本不想吐槽的,结果回复里还是出现了。
    [ol]

  • 这篇帖子的意义就在于说明 “subconverter 拥有远程配置功能,无需自行搭建也可以利用别人提供的 subconverter 实现自定义规则”

  • parsers、自行编辑脚本等方法最大的问题在于两点。一是 parsers 是 CFW 的功能而不是 clash 核心的功能,你定义好之后只能在 cfw 使用,在 android、 ios、路由器上就无法使用了。第二它不具备跨平台同步功能,你需要手动维护各个客户端上的规则,如果你只有一个设备这样使用当然没问题。

  • 末尾提到 provider 只是为了给 有足够能力理解文章主要内容,并且想要优化内存占用和性能的人 准备的,如果连 Clash 的一些基本概念都没理解,暂时没必要关注这个。

  • Clash.Meta 的订阅转换功能是让他可以识别非 clash 格式的节点,本文的内容是 “如何利用订阅转换工具自定义分流规则”,#5 真的不是关键词机器人吗?
    [/ol]
  • paststrange   
    感谢分享
    studyingss
    OP
      
    airixcloud 所说的 rule-set 不要展开是啥意思
    DemoJameson   
    @paststrange “subconverter 默认展开规则,但实际上 rule provider 的性能更好”,所以推荐使用 provider
    要了解 provider 可以看 clash 的官方文档 https://dreamacro.github.io/clash/premium/rule-providers.html
    或者 https://lancellc.gitbook.io/clash/clash-config-file/proxy-provider
    要让 subconverter 不展开规则,在订阅链接末尾加上&expand=false ,但是又可能导致订阅无法使用,原因正文说过了。
    说得直观一点,就是打开配置文件,如果 rule 里全部都是域名和 ip ,那么规则就是展开的,这时性能非常差,并且占内存。
    如果 rule 下面是 RULE-SET ,那么就叫做不展开,这时性能更好,匹配速度更快( 34 万规则 7 微秒),内存占用更小。
    另外,rule set 也分类型,classic 没有优化作用,ip cidr 和 domain 有强力的优化作用,这部分具体还是看 https://lancellc.gitbook.io/clash/clash-config-file/proxy-provider 。
    lekai63   
    如果用 Clash.Meta 内核也能从 rule provider 获益么
    jiezhi   
    现在完全切换到 clash meta 了。感觉不需要订阅转换了。
    canbingzt   
    感谢分享 回去试试
    Helsing   
    我是用 parsers 来添加的
    studyingss
    OP
      
    @studyingss #3
    不用 classic ,订阅规则都不好找
    按照你觉得做法维护起来也不简单,还不如搭建 subconverter ,搭好了省心的很
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部