我目前的 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 2023-05-24 07:34:29 +08:00 via iPhone 2
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 1
一直记事本手搓的路过。。。
|
9
ryalu 2023-05-24 10:16:56 +08:00 1
用 proxy-providers 和 rule-providers, 自己定义好模版,然后自己弄个脚本解析下订阅链接并填充到模板中,这个只需要手动生成一次就行。我自己搞了个可以参考下 https://github.com/ryan961/clashset
|
10
banmuyutian 2023-05-24 10:17:01 +08:00 1
我的做法: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
xipuxiaoyehua 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
xausky 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 1
|
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 |