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

2023-06-17 09:22:08 +08:00
 studyingss

前言

上一篇文章里很多人想学怎么为 Clash 自定义教程,所以尽量快地写出来了。

只要利用好 gist 和订阅转换,为 Clash 添加规则并不难,既不用自己写工具,也不用自己买台服务器。

看完这篇文章,只需要短短 4 步,你就可以实现:

下面是正文,原文链接在 https://luxirty.com/article/custom-clash-rule 内容跟这里没区别,只多了一两句话

所需工具

一、创建远程配置

这一步仅仅是准备工作,你只需要跟着教程做就好,不需要在意细节,等看完整篇教程再回来关注细节也不迟。

打开 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

如果你觉得这个帖子有用的话,希望不要只点击收藏,可以回复来讨论或者提问,或者点一下标题下面的箭头,我更希望和各位有更加直接的交流,不需要担心自己提的问题过于简单,感谢~

40824 次点击
所在节点    分享创造
62 条回复
Moha
2023-06-17 09:43:26 +08:00
感谢分享
paststrange
2023-06-17 09:48:31 +08:00
airixcloud 所说的 rule-set 不要展开是啥意思
studyingss
2023-06-17 09:55:54 +08:00
@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
DemoJameson
2023-06-17 10:25:17 +08:00
如果用 Clash.Meta 内核也能从 rule provider 获益么
lekai63
2023-06-17 10:41:25 +08:00
现在完全切换到 clash meta 了。感觉不需要订阅转换了。
jiezhi
2023-06-17 10:41:55 +08:00
感谢分享 回去试试
canbingzt
2023-06-17 11:07:08 +08:00
我是用 parsers 来添加的
Helsing
2023-06-17 11:21:05 +08:00
@studyingss #3

不用 classic ,订阅规则都不好找

按照你觉得做法维护起来也不简单,还不如搭建 subconverter ,搭好了省心的很
studyingss
2023-06-17 11:32:22 +08:00
@Helsing 你真的有看正文吗?
luckyjoe
2023-06-17 11:45:33 +08:00
收藏 有空了整
studyingss
2023-06-17 12:00:21 +08:00
@Helsing 从你的回复我大致可以确定你完全不懂,但是为了以防可能的误解,以及你的回复误导别人,我针对你提出的两个问题详细解释一下。

第一个,关于 provider

参考 https://lancellc.gitbook.io/clash/clash-config-file/rule-provider

classic 类型的 provider 的格式是


```
payload:
- '.blogger.com'
- '*.*.microsoft.com'
- 'books.itunes.apple.com'
```

domain 类型的 provider 的格式是

```
payload:
- DOMAIN-SUFFIX,google.com
- DOMAIN-KEYWORD,google
- DOMAIN,ad.com
- SRC-IP-CIDR,192.168.1.201/32
- IP-CIDR,127.0.0.0/8
- GEOIP,CN
- DST-PORT,80
- SRC-PORT,7777
```

你说的“订阅规则都不好找”是什么意思?你要说是找不到文件,配置文件里路径写的明明白白的,正常使用情况下也不用手动找。但是如果你的意思是“- DOMAIN-SUFFIX,google.com”比“.blogger.com”更容易看我觉得更奇怪。

第二,“不如搭建 subconverter”,你真的有搭建过吗?我搭建过。你知道自定义规则需要怎么做吗?依然需要写这个格式的配置。

对比来说,我的教程只是把自建的时候写到“配置文件”部分的内容,移动到了“外部配置”这部分,我很想知道你说的省心是指省心在哪里?

给其他人:关于这部分内容,可以参考
https://github.com/tindy2013/subconverter/blob/master/README-cn.md

或许你的语言表达有误,但是单从你的这一条回复来说是基本概念没有分清的状态。
azhangbing
2023-06-17 12:11:41 +08:00
这个非常有用 我用 clash for window 的 diff 很不好用 不会自动合并订阅的变化 每次要手动加
Helsing
2023-06-17 12:34:59 +08:00
@studyingss #11

我搭 subconverter 用了快两年了,我不懂……

另外,你把 domain 和 classic 写反了
dl123100
2023-06-17 12:37:57 +08:00
虽然远程配置就是加上&config=,但是因为出过 RCE ,明面上支持远程配置的 subcoverter 公益站不多吧,很多连上传配置功能实际都没法用。
studyingss
2023-06-17 12:39:16 +08:00
@Helsing 手滑贴反了,那么请你回答一下两个问题?省心在哪里?又不方便看在哪里?
Helsing
2023-06-17 12:43:42 +08:00
@studyingss #11

要加自定义规则也很简单:

1. 熟悉 subconverter 的话,加一个 provider 并不比你这样操作麻烦多少

2. 如果不是在 openclash 这样的客户端用的话,桌面端基本都有 parser 可以添加规则,不比你这个要方便?
hfl1995
2023-06-17 13:05:22 +08:00
ruleset=🎯 V2EX,https://raw.githubusercontent.com/lageev/chatgpt-openclash/main/v2ex.list
ruleset=🎯 Chatgpt,https://raw.githubusercontent.com/lageev/chatgpt-openclash/main/chatgpt.list

我平时需要自定义的就是 ChatGPT 和 V2 ,V2 节点要是选不好,容易进不去或者不显示头像
civelxu
2023-06-17 13:10:15 +08:00
Rule Provider 支持在 clashX 上使用吗?
Mac 上的 clash for windows 体验太差。
Hoshizora
2023-06-17 13:13:37 +08:00
meta 和 premium 内核不是支持代理和规则集的订阅吗? proxy-provider 和 rule-provider 一起使用会更方便啊,还能通过 clash 自身来管理订阅的更新,配置文件也跟简洁
thet
2023-06-17 13:21:29 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/949462

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX