本教程旨在帮助大家快速建立属于自己使用习惯的Clash自定义分流规则和策略组,配合Github库或VPS,以及托管转换配置文件,实现在线维护更新。从此不再因为订阅链接在套用第三方已有分流规则策略组更新后,个人修改的分流规则策略组被覆盖。
Windows 10 专业版 1904;
Clash for Windows v 0.20.23(适用)
Clash.Net v1.5(作者停止更新)
1. 简介
Clash for Windows(CFW)应该是目前Windows和macOS上最好用的基于规则的跨平台代理工具软件,允许用户可视化操作和支持主流SS/V2ray/Trojan多协议。Clash.Net在此基础上对UI进行了美化,也推荐使用。
已经上手Clash的用户大都是在用ACL4SSR或其他大佬的维护的分流策略,他们的规则策略其实已经能满足绝大部分用户的使用场景,但是还有一小撮用户(比如我)由于工作或者个人使用习惯的差异,有些分流没有包含这些差异在内,这时统一使用Final(漏网之鱼)来回切换就比较麻烦,因此这种情况下,制作属于自己的分流规则策略组还是很有必要的。
将折腾过后得出的方法分享给大家,少走点弯路。这里特别感谢Kris Heri大佬中途的提点。本教程理论上适用于所有Clash内核的代理工具,如Clash X Pro,Clash for Android(CFA)以及路由器版的OpenClash,由于缺少设备,欢迎成功的小伙伴在评论区留言 💬
👇🏼 教程整体逻辑 👇🏼
→ 制作线上分流规则和策略组文件
→ 转码托管机场订阅和分流策略组文件地址
→ 将转码后的分流策略组文件地址正确放入订阅转换API链接中
→ 导入最终配置文件链接到CFW
2. 制作线上分流规则和策略组
这一步是为了创建符合你使用习惯的分流规则 .list
和策略组 .ini
文件。原则上只要有一个可以线上读写维护的库就可以,这里推荐Github库和VPS,本文仅以Github版教程抛砖引玉,VPS版就是先在本地写好再传到服务器就好了。
一般情况下,并不是所有分流规则完全都要自己写,大部分可以使用大佬维护的分流规则,然后写自己需要的分流规则,最后整理出自用分流策略组文件。
2.1 分流规则库推荐
Raw
,然后完整拷贝浏览器 raw.githubusercontent
开头的链接地址。
ACL4SSR的库:https://github.com/ACL4SSR/ACL4SSR/tree/master/Clash
blackmatrix7的库:https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash
神机规则库:https://github.com/DivineEngine/Profiles/tree/master/Clash/RuleSet
- 分流规则请参考使用
.list
后缀文件。 - 如果参考的分流规则是
.yaml
后缀文件,建议先只选取部分需要的规则,然后复制转移或fork
该规则到个人Github库中,把-
字段用全部替换的方式删掉,再重命名为.list
后缀文件。
2.2 制作自用分流规则
.list
结尾。
;
和 #
都是常用的注释符号,表示该行代码不会生效,常用于代码前的分类和备注。
👉 常用规则写法参考:
# 表示包含xxx.com域名后缀下的所有网站链接
DOMAIN-SUFFIX,xxx.com
# 表示包含这个xxxx域名关键词的所有网站链接
DOMAIN-KEYWORD,xxxx
👉 以PayPal分流规则为例:
# PayPal
DOMAIN-SUFFIX,paypal.com
DOMAIN-SUFFIX,paypal.me
DOMAIN-SUFFIX,paypalobjects.com
DOMAIN-KEYWORD,paypal
👇 更多写法可以参考 👇
https://docs.cfw.lbyczf.com/contents/ui/profiles/rules.html
2.3 制作分流策略组
.ini
结尾。
.ini
配置文件中:ruleset
指的是配配置中包含的分流规则,custom_proxy_group
指的是最终在Clash中呈现的分流策略组及其排序。
ruleset
排序原则:重要直连分流规则 > 去广告规则 > 个人国内规则 > 个人国外规则 > 小分流 > 国内外大分流 > 补充规则。
策略组的排序非常重要,因为分流策略组的匹配是按照至上而下收录,匹配到了就停止不再往下,比如YouTube规则要放在国外媒体前面,而完整的国外媒体规则包含了YouTube, Netflix, Pornhub等等,所以分流规则较大要放在YouTube小分流规则后面。
👉 分流策略组模板参考:
ACL4SSR的配置文件:https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full.ini
👉 分流策略组文件说明:
- 一般情况下,只需要对
ruleset
和custom_proxy_group
进行修改即可,其他地方不懂就不改。 ruleset
和custom_proxy_group
中分流规则和策略组自定义命名要完全对应,但是可以几个同命名而不同地址的.list
分流规则对应一个策略组。
📌 举个例子:我创建3条ruleset
分流规则并链接到Github的地址,且全部都命名全球直连
,那在custom_proxy_group
中命名为全球直连
策略组会全部应用上面三条分流规则。
👉 Ruleset说明:
逗号前的红框位置为该分流规则的命名,逗号后为该分流规则.list
后缀的地址链接,如果规则同名最终会共同叠加生效。
👉 Custom_proxy_group说明:
这个分组为在CFW图形界面最终呈现的策略组排序。Select
后面有多少 []XXXX
代表该策略组有多少种规则可以选,可以自定义,一般用 上飘点
分隔,最后一项后不需要加 上飘点
。
# 以下代码是CFW默认自带的,不用特意再写,结合上图,按需设置策略组的选项
→ DIRECT: 直连
→ REJECT: 该规则下不走网络活动,常用于广告拦截
→ .*: 表示加入你订阅中所有节点
→ url-test: 表示有该代码下的节点会自动测速 ,自动选取最低延迟的节点,不可更改
# 自动归类节点 - 以图片中香港节点策略组为例
→ (港|HK|Hong Kong)
代表具有"港","HK","HongKong"关键词的节点会归类到香港节点这个策略组中,
测速以 http://www.gstatic.com/generate_204`300,,50为准。
#举例 - 正则包含并排除的写法 - 香港节点不筛选5倍节点
custom_proxy_group=🇭🇰 香港节点`url-test`(?=.*(港|HK|Hong Kong|🇭🇰|HongKong))^((?!(5.0|5倍|5x)).)*$`http://www.gstatic.com/generate_204`300,,50
2.4 提交上传配置文件
在GitHub上面几步改好的
.list
和 .ini
文件,要点 Commit Change
提交,再去拷贝 Raw
文件链接。
3. 转码托管 - 机场订阅和策略组
订阅转换API的进阶模式下,按需填好机场订阅链接和
.ini
的分流策略组地址(粘贴至远程配置框内)即可一键生成最终的配置文件地址。
⚠️ 新方法具体操作如下 ⚠️
⚠️ 以下是经典方法 ⚠️
3.1 转码托管机场链接
这里只要用到两种链接,一种是你的机场订阅链接(们),另一种则是你先前编辑好 .ini
分流策略组配置的链接。
机场推荐:SsrDog机场; Miaona!机场; Catcloud猫云加速器; Cyanmori青森Cloud机场; 大哥云机场;
这一步是利用开源订阅转换API转码你的机场订阅链接,如果有网易云解锁节点链接也可以加入一并转换。
一般情况下,这些订阅转换API转码不会保存你的节点信息。通俗来说,只是把你的字符转换成另外一种计算机语言,并套进对应的代理工具软件配置参数的链接中,不放心且有能力的也可以自己搭建API。
🔗 订阅转换托管API推荐
👉 转换托管步骤
- 输入的订阅/节点链接,选择生成类型,这里我们默认选
Clash
(也有叫Clash新参数的) - 点生成订阅链接,获得转码后的链接地址,下面是按照图内的地址转码后得到的结果:
# 温馨提示:往右拖动还有内容
# 该配置文件地址还没有嵌入策略组地址信息
# 这里以我截图乱填的3个订阅地址为例
https://api.dler.io/sub?target=clash&url=api.dingyue1.com%2F1234567%7Capi.dingyue2.com%2F1234567%7Capi.wangiyihun.com%2Fblabla
# 预留一下策略组配置文件地址位置,在上面链接的基础上加上下面这串代码
&insert=false&config=peizhiwenjian&emoji=true&list=false&udp=false&tfo=false&scv=false&fdn=false&sort=false
# 如果订阅支持udp, tfo就把这两项后面的false改成true,默认为false,加完后完整链接为
https://api.dler.io/sub?target=clash&url=api.dingyue1.com%2F1234567%7Capi.dingyue2.com%2F1234567%7Capi.wangiyihun.com%2Fblabla&insert=false&config=peizhiwenjian&emoji=true&list=false&udp=false&tfo=false&scv=false&fdn=false&sort=false
3.2 转码分流策略组
先前我们已经编辑好我们自定义的 .ini 后缀的分流策略组配置文件,在Github上,我们要拷贝这个文件的 Raw
地址。
👉 转换策略组步骤
- 在https://www.urlencoder.org/ 上转码,按照下图步骤。
- 把转码后链接地址粘贴在下方链接中
peizhiwenjian
处即可成功获得最终的配置文件。
# 温馨提示:往右拖动还有内容
# &insert 前为先前通过`api.dler.io`转换后的订阅地址
# peizhiwenjian 替换成你转码后配置文件地址,一定是.ini结尾的
https://sub.dler.io/sub?target=clash&url=api.dingyue1.com%2F1234567%7Capi.dingyue2.com%2F1234567%7Capi.wangiyihun.com%2Fblabla&insert=false&config=peizhiwenjian&emoji=true&list=false&udp=false&tfo=false&scv=false&fdn=false&sort=false
4. 导入配置文件地址到Clash
按照图示导入最终的配置文件到 CFW
或 Clash.Net
,完结撒花!
- API有可能会被墙,建议在编辑自用分流规则时加入你使用的订阅转换API域名。
- 每次Github的配置文件修改后,由于缓存的原因,CFW建议过一两分钟再点更新配置文件。
使用托管API得到的链接,更新时会偶尔套用失效,应该是服务器问题,等待一两分钟再次更新就好了。
5. 后记
什么,你还想制作私库订阅地址,正好你可以参考以下文章。
91 comments
感谢教程!有个问题请教下,通过步骤3拼接得到的新配置,在机场订阅和自己的策略更新之后,会跟着一起更新吗
肯定会啊,不然弄线上规则也没意义~
我翻了翻clash的手册,琢磨出另一个方案,虽然自由度较差,但胜在比较简单,借大佬宝地分享一下:
在clash的设置中,编辑预处理配置文件,通过prepend-proxy-groups新增自定的策略组,然后用commands给指定的策略组添加指定的机场节点(此处可用正则表达式作关键字筛选),最后用prepend-rules将自己想要自定义的域名等分流到第一步创建的策略组里。
我现在先通过前三步将订阅的机场节点分成了美区、欧区、亚区、港区等,每个区用url-test自动选择合适节点,然后就可以随意自定义了。比如通过domain-suffix把openai.com指定美区节点、把p站指定日区节点等。
这样作预配置的话,自定义的方案也是不会随订阅更新而丢失的,会插入到订阅策略的最前面。
谢谢分享~ 有本地编辑需求的读者可以参考这个方案
ψ(`∇´)ψ
想问一下,custom_proxy_group可不可以按照节点协议来分组,如果可以的话具体语法应该怎么写
不可以
我这边显示404喔。
https://raw.githubusercontent.com/b1344941657/ACL4SSR1/main/bai.ini?token=GHSAT0AAAAAACA3ZCZLPCJ6E6ZKR7K75D6QZBJINBQ
突然变了OωO
还是不行,估计是因为你弄成私库的原因了吧,ini文件直接pubilc就好了,不要弄成github私库
好的,感谢,确实是这样,我电脑有缓存git 的登录信息所以可以用,手机没有就是默认的规则,搞定了,感谢大佬
我看了一下,你排序也没问题,你更新之后,有没去Clash日志那里看那个域名走的是直连还是分组,或者你可以TG发我看看
走的是漏网之鱼,更新完订阅后去配置文件找我list中的配置都找不到
大佬,您好,提供的几个订阅转换地址都不支持自定义远程配置了,只能从列表中选。还有推荐的或者别的方法吗
可以的 你使用的问题 进阶配置 远程配置粘贴完之后再选取就行了
非常感谢大佬,技术上又有提升了哈哈哈
用得上就好:)
有个问题我想请教一下,就是我如果GitHub上的规则进行更改调整了以后如果clash更新订阅的话规则会自动更新成自己改了以后的吗,还是说需要再重复转换订阅才能使用自己最新的规则
只要你ini文件里有规则指向你自己洗的github规则list文件链接地址,更新规则之后,手动/自动周期刷新之前Clash导入过这个镶嵌好的机场订阅+ini文件的配置,就会更新成修改以后的啦。 不再需要重复转换订阅。
那如果我在ini文件里面更改了分组规则会有影响吗
你的ini文件本来就是在线的,你改什么他也会跟着改啊,你这问的= =
噢噢好的,谢谢老哥<3
老哥我有同样的疑惑,我是手写premium的配置文件然后本地更新的,想问下和你教程中的有什么区别,然后我在配置文件的proxy_provider那里想要筛选出来含有US不含有netflix的节点,怎么都不行,查阅资料说是clash不支持零宽断言,不知道老哥这种实现方法是怎么个操作
你说的这个细节没太明白。教程这个就是在ini配置文件里写好节点名称正则筛选规则,在使用API时,他就会根据这个规则筛选出来了。 上面那位老哥的情况其实只是正则写法没写对。
这种ini配置的写法我是第一次见到,确实有学习到,但是我已经写了很久的yaml,再切换感觉学习成本有点高
其实看能不能满足你需求吧,yaml的我就是当时用起来不太满足的需求,然后发.list + .ini 嵌套合成这种比较省时间,而且非常适合在线更新,就只学了这种。你有基础的话,两三小时就学会了。因为很多API的进阶设定都提供了正则筛选。 自建节点的可以考虑自制私库订阅,学会自制了后面筛节点也方便。(这个我在写教程了QAQ,需要点时间)
还有就是我想提取含有b的但是不提取含有b1的,这个可以操作吗
按照上面的写法 可以这么用 你这种算精准匹配 他是先把b筛出来以后再去排除b1的
老哥我换这种方式写了还是不对,美国节点里面直接啥都没有了
custom_proxy_group=🇺🇲 美国节点url-test(?=.(美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States))^((?!(Netflix)).)$http://www.gstatic.com/generate_204300,,150
`评论好像把上飘号给吃掉了,url-test和( 中间有个上飘号
老哥你说的是我发的还是你发的,我发的确实被吃掉了,我自己写的是有的,也是8行,要不我用邮件给你发过去?
都被吃掉了,你TG找我吧,晚上吃完饭来帮你看看
行,我给bot发消息了,谢谢老哥
好的,期待,确实,yaml这个多平台确实麻烦,并且不支持正则是个大问题
意思就是说我因为要用自建节点,所以就选择手写配置文件,手写了一个premium.yaml,里面规则集的设置是txt后缀的,参见这个链接https://github.com/Loyalsoldier/clash-rules,并且由于直接是clash内核的配置文件,所以不能用零宽断言的正则表达式,导致没法筛选机场节点中包含某些关键字同时排除某些关键字的节点,想知道有没有可能换一种方案实现我的需求,或者说我现在这种方案有没有可能实现这些需求,只是我不会
您好,我想请教下自动归类,正常是(港|HK|Hong Kong)这样归类香港节点,但是我想在这基础上排除一些节点该怎么写啊,例如排除5x节点,我试过几种写法都不生效(。•ˇ‸ˇ•。)
^((?!(港|HK|Hong Kong)).)*(5x) ,试试这个
不行,排除不了。也不知道clash规则有没有排除这种说法。 ̄﹃ ̄
有排除的说法,有可能你ini文件写错了一些衣服,你可以匿名回复一下你的ini地址。白天摸鱼的时候我帮你看看
我在文章里面增加这部分的示范,评论会吃字符,之前的例子我先删了
可以了,感谢大佬的指点
自己搭建的节点,怎么把节点的配置弄成订阅链接分享出去,看得懵懵懂懂
这个教程主要是针对你有订阅的情况,去制作规则策略组去做嵌套的。节点制作成订阅链接的教程最近在起草了,两周内会上。稍微等一下吧。
clash for windows 可以想ox一样本地分流吗,就是搞一个配置文件那种
可以在本地搞,就是麻烦点,之前我有见过这类教程,你可以去Google搜一下。
大佬,请问后面加 &insert=false&config=peizhiwenjian&emoji=true&list=false&udp=false&tfo=false&scv=false&fdn=false&sort=false的作用是什么?
我发现不加也能直接导入,这两者有什么区别啊?
如果你用过线上转换订阅API就能理解了,里面有设置你嵌套的规则,排列的方式,是否打开UPD转发。
重点是peizhiwenjian的位置,就是换成你想嵌套的在线规则策略组的链接(需要转码)。你原先能导入仅仅是你机场给你准备的订阅,规则是机场默认提供的,不能自定义。
嗯,明白了。我还想问问每个客户端的策略组和规则的编写格式都是一样的吗?就是如同您博客所讲的这样,还是每个客户端都不同呢?
Clash都通用
非clash系的呢?例如surge或者其他什么的,都是像这样就行吗?本文章的教程也都适用吗?因为我看到这些API貌似没有作区分。
你看的是Clash教程,其他的你自己看着办吧,DYOR
openclash 有自定义模板、github环节之后raw地址的ini配置文件做模板进行转换就行
请问下大佬,我想把节点名带有^的自动归类,应该怎么写呢?直接写^无法识别。
没有其他关键词了嘛-_-||
节点大概是这样子香港01、香港02、香港03^、台湾01、台湾02^,我想把带^的给自动归类一下
感谢
感谢分享
如果订阅地址自带了ACL4SSR的分流规则,还可以转码托管吗,因为我要加自己的ini,这样会不会重复了影响速度?
根据测试不会重复,你只要嵌入了你自己写的ini,原本订阅带的分流规则不会带入。
多谢分享
请问如何把规则策略组托管到自己的vps上, github链接容易被墙,可否出一期教程,万分感谢
你ini的文件完全可以放在你的Vps,但是分流策略,除了你自建的,其他的还是用github现成的吧,更新频率高,而且github链接可以找那种CDN之后的地址。
到最后几步看不懂了,比如点生成订阅链接,获得转码后的链接地址,下面是按照图内的地址转码后得到的结果:把转码后链接地址粘贴在下方链接中 peizhiwenjian 处即可成功获得最终的配置文件。大佬可以再解释一下吗
已经很直白了。
1.你的订阅地址,去转码的网站转一次。
2.在你转码后的订阅地址后面加上&insert=false&config=peizhiwenjian&emoji=true&list=false&udp=false&tfo=false&scv=false&fdn=false&sort=false
3.转码你写好的在线ini文件。
4.把转码后的ini文件地址替换在"步骤2"的peizhiwenjian的位置。
再看不懂我没办法了_(:з」∠)_
亲测,可以直接在订阅转换网站的进阶模式里,将先前“编辑好 .ini 分流策略组配置的链接”复制到“远程配置”一栏,然后选择链接就可以直接生成转换好的订阅,把后面的步骤省下来。
这样也是可以的👍🏻
到最后几步看不懂了,大佬可以再解释一下吗?
配置在路由器的的clash怎么配置啊??现在是gfwlist+路由器内部分流,试过在配置字段里面linkedin,没用,好像必须全局模式,感觉是判断IP地址有关
openclash配置应该是没问题通用的,你可以看看先前评论里头,之前有读者能选到自定义配置,一般先全局更新成自己的自定义规则文件再调回规则分流就正常使用了。
站长,我在写一篇关于clash使用相关的文字发现了您这篇关于自定义规则的文章。我大概率是自己留在印象笔记中不会发在什么平台上。但以防万一我要问您一下,介意我转载你的内容吗?
帮得上忙就转吧,能给个外链更好哈哈~
https://v2rayse.com/clash-template/这是我发现的自定义clash规则的一个网站。可以保存自己修改的模板。站长可以看看.按照网站主说自定义的模板是缓存在自己的浏览器缓存中。有好处有坏处吧。
怎么保存下来慢慢研究一下。我主要看流媒体,软路由,openwrt物理机,3865U。比如看奈飞需要新加坡节点,YouTube香港节点,hbo go台湾节点,hbo max美国节点,hulu美国节点,迪士尼+新加坡节点。今天看奈飞是香港节点,明天想看hbo go需要台湾节点。我现在是进路由器后台更改节点为台湾。感觉麻烦。
如果按分组改设置分流策略完全能实现你对分类的需求,但是同一个策略组每天用的地区节点都不一样的话,你还不如手动。
为啥呢?我主要是用appleTV盒子在电视看流媒体,用的是机场,比如今晚上看奈飞(香港节点),过一会儿想看hbo(美国节点),直接用盒子遥控器点对应的App(奈飞或者hbo)就可以了。不用进入路由器后台手工改动节点。
解决了困惑我好几个小时的问题,可以顺利配置更细化的流媒体分流了!
帮上忙就好,还担心写复杂了🤪
非常感谢大佬!谢谢您!
大佬,很受用,但是我自己搭建的后端,可以直接吧ini的配置连接放进去吗亲,再求大佬出一篇如何用vercel搭建订阅转换
深深受教!
请教,在Openclash里面只有ACL4SSR或其他大佬的默认模板,找不到可以修改的订阅转换模板,是否putty进去修改?
找到方法了,原来在配置最下面有一个“自定义模板”,然后指向github的模板即可OωO
棒,正想回复你说我这边还没换有openclash的路由器,找到就好,你的留言给后来参考吧(`・ω・´)ゞ
进阶版:用WinSCP进入软路由usr/share/openclash/res目录, 在sub_ini.list里面可以自己编辑,增删自己需要的规则模板。
请问如何自动配置节点里面的hosts?比如我的节点是Vmess节点,里面的ws-headers是a.com,但我想在更新配置文件的时候把ws-headers自动改成b.com,需要如何操作
抱歉,没研究到那么深入哈,你可以进Clash群去问问群里的大佬,应该能找到答案~
感谢大佬!