我目前的 CLASH 订阅使用方式是
获取机场订阅;
放入机场提供的 subconverter 并自定义规则为 ACL4SSR ,见订阅链接例子;
使用 Clash For Windows 的 Parser 功能,修改添加自定义规则;
Parser 很好用,能够添加策略组、新订阅、新节点等等。
但是手机、路由器该怎么办呢? Parser 是 Clash For Windows 独有的功能。
所以想请教各位,有没有什么办法能够直接在订阅链接里就将规则自定义(基于某个现有规则修改)完成,而不需要依赖于特定客户端。
这样既不用自己维护基础规则,又能根据自己的需要进行修改,同时不局限于某个客户端实现。
订阅链接例子:
https://acl4ssr-sub.github.io//sub?target=clash&new_name=true&url=<订阅链接>&insert=false&cOnfig=https%3A%2F%2Fraw.githubusercontent.com%2FACL4SSR%2FACL4SSR%2Fmaster%2FClash%2Fconfig%2FACL4SSR_Online_Full_MultiMode.ini&emoji=true&list=false&tfo=false&scv=false&fdn=false&sort=false&clash.doh=true&new_name=true&append_type=true&udp=true&scv=true
Parser 例子:
parsers: # array #匹配所有这个开头的规则 - reg: https://(acl4ssr-sub|sub.xeton).dev.+$ yaml: #mix-object: # authentication: # - "proxy:K" append-proxies: #添加自定义节点 - name: "socks5 代理" type: socks5 server: geo. port: 42 username: password: # tls: true # skip-cert-verify: true # udp: true append-proxy-groups: # 添加自定义策略组 - name: 土耳其节点 type: select url: http://www.gstatic.com/generate_204 interval: 300 proxies: - DIRECT - 节点选择 - name: 欧洲节点 type: select url: http://www.gstatic.com/generate_204 interval: 300 proxies: - DIRECT - 节点选择 - name: 欧盟节点 type: select url: http://www.gstatic.com/generate_204 interval: 300 proxies: - DIRECT - 节点选择 - name: 大流量 type: select url: http://www.gstatic.com/generate_204 interval: 300 proxies: - DIRECT use: - hightraffic #- hightraffic2 - name: 大流量选择器 type: select url: http://www.gstatic.com/generate_204 interval: 300 proxies: - DIRECT use: - hightraffic #- hightraffic2 - name: 大流量负载均衡 type: load-balance url: http://www.gstatic.com/generate_204 interval: 300 use: - hightraffic #- hightraffic2 - name: 大流量自动选择 type: url-test url: http://www.gstatic.com/generate_204 interval: 300 use: - hightraffic #- hightraffic2 mix-proxy-providers: #添加自定义规则组 hightraffic: type: http path: ./Proxy/hightraffic.yaml #大流量机场的订阅链接,需要是 clash 格式 url: https:// interval: 21600 health-check: enable: true url: http://www.gstatic.com/generate_204 interval: 300 commands: # 向 策略组 内添加节点 #- proxy-groups. 大流量.proxies=[]proxyNames|^(?=(.Trojan.*(香港)))\1((?!(Hongkong)).)*$ #- proxy-groups. 大流量负载均衡.proxies=[]proxyNames|^(?=(.Trojan.*(香港)))\1((?!(Hongkong)).)*$ # 向 其他策略组 添加 该策略组 - proxy-groups. 节点选择.proxies.0+ 大流量 # 向 节点选择 策略组添加组名大流量 - proxy-groups. 节点选择.proxies.0+ 大流量负载均衡 - proxy-groups. 节点选择.proxies.0+ 大流量自动选择 - proxy-groups. 微软云盘.proxies.0+ 大流量 - proxy-groups. 微软云盘.proxies.0+ 大流量负载均衡 - proxy-groups. 微软云盘.proxies.0+ 大流量自动选择 prepend-rules: #添加自定义规则 # 自定义开始 - DOMAIN-SUFFIX,example.com, 自动选择
![]() | 1 enzyme 2023-05-24 05:46:43 +08:00 via iPhone 用 proxy-providers 和 rule-providers |
![]() | 2 eb0c6551 2023-05-24 05:55:41 +08:00 我也想找到一个比较好的办法,我目前用免费的 Cloudflare Workers ,直接暴力替换和编辑 yaml 文件再返回,相当于自己又订阅“转换”了一层。 |
![]() | 3 SenLief 2023-05-24 07:22:26 +08:00 via iPhone 自己托管规则在 gist ,然后修改 gist 更新即可。 |
![]() | 4 aptupdate nbsp;2023-05-24 07:34:29 +08:00 via iPhone ![]() https://github.com/LittlePonyX/ClashXKindly-config 可以试试这个,如果是 Meta 内核的话就能更简单点。 |
5 AS4694lAS4808 2023-05-24 07:42:27 +08:00 via Android 目前是一个文件写好所有规则,包括 proxy ,proxy-provider ,rule-provider ,精心设置的 rule (比如 MATCH 选择, 选择 use Direct 和一个 proxy-provider ,方便随时切换白名单模式和 gfw 模式),然后传到公网私有 git ,供所有客户端订阅。 |
6 shunia 2023-05-24 09:46:38 +08:00 1 楼正解,我也是上个月才知道的。需要根据原始订阅链接,手写一份 yml ,以后就基本可以一劳永逸了。 ``` proxy-providers: {定一个名字比如机场}: url: {clash 的原始订阅链接} {...其他字段比如更新频率} rule-providers: reject: url: {三方规则的链接,比如 Loyalsoldier 或者 ACL4SSR} {...其他规则} ``` 剩下的内容保留原始订阅文件的大部分内容,去掉并对应更改原始订阅里的 rules 就好了。 另外还学了一个 relay 的设置方法,感觉有的时候也挺有用的: https://gist.github.com/miaomiaoclub/6947f7cb93846301f1658da0edcd61bf |
7 kongxiao00532 2023-05-24 09:49:05 +08:00 马一波 每次更新以后改规则太痛苦了 |
8 sp670 2023-05-24 10:06:09 +08:00 ![]() 一直记事本手搓的路过。。。 |
9 ryan961 2023-05-24 10:16:56 +08:00 ![]() 用 proxy-providers 和 rule-providers, 自己定义好模版,然后自己弄个脚本解析下订阅链接并填充到模板中,这个只需要手动生成一次就行。我自己搞了个可以参考下 https://github.com/ryan961/clashset ![]() |
![]() | 10 banmuyutian 2023-05-24 10:17:01 +08:00 ![]() 我的做法:fork 一份 ACL4SSR 按个人需求修改,部署 subconverter 到自己的轻量服务器,这样多端都可以拿到统一配置了 |
11 lihang1329 2023-05-24 10:38:53 +08:00 |
12 happy23 2023-05-24 10:55:07 +08:00 via iPhone 前段时间刚在捣鼓,目前是自己搭建了 subconverter ,然后在 subconverter 自定义了规则。 |
![]() | 13 ae 2023-05-24 11:19:19 +08:00 关注一下 |
![]() | 14 XiaoyehuaDev 2023-05-24 11:20:32 +08:00 有没有可能 subconveter 就可以自定义配置呢 |
15 zhywang 2023-05-24 11:45:58 +08:00 自己写个 python 脚本,定义好分组逻辑,然后用这个脚本生成最终的 yml 不就好了,估计简单需求逻辑代码 100 行以内就可以搞定 |
![]() | 16 K8dcnPEZ6V8b8Z6 2023-05-24 11:49:37 +08:00 自己手搓 然后把原始规则作为 provider 就好 规则这种东西真的只能各用各的 |
![]() | 17 Mrcocoa 2023-05-24 15:43:43 +08:00 之前用的 proxy-providers ,在 mac clash pro ,整合了两三和机场的节点,然后每次点开 clash 选节点就很卡,难道节点太多了? |
![]() | 18 irrigate2554 2023-05-24 16:44:48 +08:00 自己写 config 挂到 gist 然后 subconverter 连接里面贴上自己的配置地址就像我这个: https://gist.github.com/xausky/44a5472f515713067202faa649ea303f/raw/rules.ini |
19 traffic OP 可能有几位误解了,不是说要在 subconverter 中自定义配置地址。 subconverter 中已经添加了 ACL4SSR 的配置,然后导入到 Clash For Windows ,再进行修改。 我目前让 AI 写了一个 Cloudflare Workers 脚本,相当于在线实现 Clash For Windows 的 Parsers 。 但很可惜不能用,我不懂 JS 所以没办法排错,有没有大佬看看 即: - 传入 2 个 YAML ,一个完整的原始 Clash YAML 配置,一个和 Clash For Windows 的 Parsers 一样的 YAML - 根据 Parsers 对原始 YAML 进行修改 - 返回修改过的 YAML https://paste.gg/p/anonymous/7af30bc8183949f5ad3a6b3293bc1315 |
20 sheg 2023-05-24 17:27:00 +08:00 ![]() |
![]() | 21 NoInternet 2023-05-24 17:46:06 +08:00 我是在 openclash 里编辑,然后从配置文件里复制出来 |
![]() | 22 MYDB 2023-05-24 18:00:19 +08:00 via iPhone 根据 wiki 说明所有内容纯手写的……用到哪个写哪个,至于节点订阅更新,稍微大点的机场半年不会变 |
![]() | 23 Mythologyli 2023-05-24 18:44:44 +08:00 via Android @traffic 直接在 ACL4SSR 基础上改好,写个新的 config 给 subconvertor 用就好,为啥要在客户端改 |
![]() | 24 tony1016 2023-05-24 19:02:58 +08:00 我放在自建的 nextcloud ,用 proxy-provider 引入机场,规则自定义 |
25 traffic OP @Mythologyli #23 首先是因为手动覆盖规则比较麻烦,其次是自动更新上游也比较麻烦,再者是规则里面似乎是不能添加节点的? |
![]() | 26 LAMoon 2023-05-24 20:11:33 +08:00 直接 github 自己写一个就行了 |
27 Solar666 2023-05-24 20:13:36 +08:00 |
![]() | 28 Yuesh1 2023-05-24 20:26:21 +08:00 |
![]() | 29 Mythologyli 2023-05-25 01:06:18 +08:00 @traffic https://imgur.com/a/wrbydFY 更新上游的话,config 里可以直接用 URL 的方式使用上游的规则 list ,连手动 Merge 都省了。自己的规则 /分组额外加进去就可以 如果需要覆盖 ACL4SSR 已有的规则,直接自己创一个规则排在最前面,Clash 会优先匹配 至于添加节点,这就是 subconverter 的基本功能,可以看看 subconverter 的 README |
30 traffic OP @Mythologyli #29 我知道可以 subconverter 可以添加,但我是将某个订阅的所有节点添加到某个组,比如大流量机场订阅单独放一个组,而不合并到原策略组中。 而覆盖规则我分的节点比较杂,ruleset 这种写法不太适合我,且可能要根据机场调整。 |
![]() | 31 f0rger 2023-05-25 23:09:51 +08:00 via iPhone 其实上面都说了,subconverter 本身就支持自定义,包括你说的 cfw 以及其他的设备,最多就是 ini 配置不一样,这点你可以直接在 worker 里面判断来源的 ua 头使用不同的 ini 就可以实现了。你所使用的 acl 那个配置你有打开看看吗,你打开看看就明白了,不明白的就看 acl 的在 gh 上的那个文档 |
![]() | 32 VxJiahua 2023-05-27 11:40:02 +08:00 via Android 我只知道软路由 openclash ,自己写策略组 |
![]() | 33 wayne3602 2023-07-27 15:55:13 +08:00 @shunia 请问这个 relay 是什么意思呢?我导入自建的节点(节点都有效),在节点选择里选了 iRimo Private Relay ,但是 iRimo Private Relay 的延迟超时,但可以科学上网,他是类似于自动选择吗 |
34 shunia 2023-07-28 22:12:09 +08:00 @wayne3602 #33 relay 已经被 tunnel 代替了,可以搜一下帖子,和我发的 gist 是同一个作者。 作用我个人觉得是两个: 一个是确保出口 ip 稳定,某些情况下有点用; 一个是你有一个高速稳定的国内中转的机场,可以拿它的高速中转衔接任何目标服务器,基本上可以无视目标服务器的网络(实际还是受延迟影响的); 比如你有 oracle 的免费服务器但是直连很渣,那么前面配一个贼便宜的高速中转机场,就可以把 oracle 变成可以高速访问了。不过注意是浪费两次流量。 不过话说回来,实际情况下可能作用都很有限,我配好了一个 tunnel ,大部分情况下不如我的机场本身稳定和快速,比较鸡肋。 |
37 traffic OP 让 GPT4 写了一个 python 版的,command 实现有点不正确,其他的基本没啥问题。 我 command 用的不多懒得改了,使用方法已经写在里面了。 https://paste.gg/p/anonymous/907d4221f0234c07b3ef55bbc37e104e |
38 traffic OP |
39 traffic OP 发现了这个项目,已经用上了 https://github.com/InoryS/Clash-Parser-Online |