有没有优雅的 Clash 规则修改方式

341 天前
 traffic

我目前的 CLASH 订阅使用方式是


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,♻️ 自动选择
9677 次点击
所在节点    宽带症候群
38 条回复
enzyme
340 天前
用 proxy-providers 和 rule-providers
eb0c6551
340 天前
我也想找到一个比较好的办法,我目前用免费的 Cloudflare Workers ,直接暴力替换和编辑 yaml 文件再返回,相当于自己又订阅“转换”了一层。
SenLief
340 天前
自己托管规则在 gist ,然后修改 gist 更新即可。
aptupdate
340 天前
https://github.com/LittlePonyX/ClashXKindly-config
可以试试这个,如果是 Meta 内核的话就能更简单点。
AS4694lAS4808
340 天前
目前是一个文件写好所有规则,包括 proxy ,proxy-provider ,rule-provider ,精心设置的 rule (比如 MATCH 选择, 选择 use Direct 和一个 proxy-provider ,方便随时切换白名单模式和 gfw 模式),然后传到公网私有 git ,供所有客户端订阅。
shunia
340 天前
1 楼正解,我也是上个月才知道的。需要根据原始订阅链接,手写一份 yml ,以后就基本可以一劳永逸了。

```
proxy-providers:
{定一个名字比如机场}:
url: {clash 的原始订阅链接}
{...其他字段比如更新频率}

rule-providers:
reject:
url: {三方规则的链接,比如 Loyalsoldier 或者 ACL4SSR}
{...其他规则}
```

剩下的内容保留原始订阅文件的大部分内容,去掉并对应更改原始订阅里的 rules 就好了。

另外还学了一个 relay 的设置方法,感觉有的时候也挺有用的: https://gist.github.com/miaomiaoclub/6947f7cb93846301f1658da0edcd61bf
kongxiao00532
340 天前
马一波 每次更新以后改规则太痛苦了
sp670
340 天前
一直记事本手搓的路过。。。
ryalu
340 天前
用 proxy-providers 和 rule-providers, 自己定义好模版,然后自己弄个脚本解析下订阅链接并填充到模板中,这个只需要手动生成一次就行。我自己搞了个可以参考下 https://github.com/ryan961/clashset
banmuyutian
340 天前
我的做法:fork 一份 ACL4SSR 按个人需求修改,部署 subconverter 到自己的轻量服务器,这样多端都可以拿到统一配置了
lihang1329
340 天前
happy23
340 天前
前段时间刚在捣鼓,目前是自己搭建了 subconverter ,然后在 subconverter 自定义了规则。
ae
340 天前
关注一下
xipuxiaoyehua
340 天前
有没有可能 subconveter 就可以自定义配置呢
zhywang
340 天前
自己写个 python 脚本,定义好分组逻辑,然后用这个脚本生成最终的 yml 不就好了,估计简单需求逻辑代码 100 行以内就可以搞定
K8dcnPEZ6V8b8Z6
340 天前
自己手搓 然后把原始规则作为 provider 就好
规则这种东西真的只能各用各的
Mrcocoa
340 天前
之前用的 proxy-providers ,在 mac clash pro ,整合了两三和机场的节点,然后每次点开 clash 选节点就很卡,难道节点太多了?
xausky
340 天前
自己写 config 挂到 gist 然后 subconverter 连接里面贴上自己的配置地址就像我这个: https://gist.github.com/xausky/44a5472f515713067202faa649ea303f/raw/rules.ini
traffic
340 天前
可能有几位误解了,不是说要在 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
sheg
340 天前

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

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

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

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

© 2021 V2EX