自定义 Clash 代理规则的方案(使用 github actions 缓存到 CDN,提升访问速度)

2022-08-13 19:59:45 +08:00
 zeyezhan

链接: https://github.com/zhanyeye/clash-rules-lite

Clash Rules Lite

🍒 自定义代理规则,精简匹配规则 (代理匹配速度明显提升)。

工具介绍

使用方法

  1. fork 本仓库:Fork zhanyeye/clash-rules-lite

  2. 鼠标右击订阅的配置文件选中“复制”,将复制的文件命名为local(因为更新订阅链接时会覆盖你的修改)

  1. 在你复制的 local 配置中,修改配置如下,注意 proxies, proxy-groups{YOUR-GITHUB-USERNAME} 修改为你的配置(加粗的部分)
 
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: silent
external-controller: '127.0.0.1:9090'
proxies:
    - { name: '1-香港', type: *, server: **, port: *, cipher: **, password: **, udp: true }
    - { name: '2-香港', type: *, server: **, port: *, cipher: **, password: **, udp: true }
proxy-groups:
    - { name: 'PROXY', type: select, proxies: ['1-香港', '2-香港'] }
rules:
  - DOMAIN-KEYWORD,github,PROXY
  - DOMAIN-KEYWORD,google,PROXY
  - RULE-SET,pac,PROXY
rule-providers:
  pac:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/{YOUR-GITHUB-USERNAME}/clash-rules-lite@release/rules.txt"
    path: ./rules/pac.yaml
    interval: 86400
script:
  code: |
    def main(ctx, metadata):
        keywords = ["google", "github"]
        for key in keywords:
            if key in metadata["host"]:
                return "PROXY"
        if ctx.rule_providers["pac"].match(metadata):
            return "PROXY"
        else:
            return "DIRECT"

  1. 运行修改后的 local 配置,再切换成 RuleScript 模式

自定义代理规则

修改仓库中rules.txt,修改完后会自动更新并邮件提醒,然后在 Clash 上刷新 providers

高阶玩法

3576 次点击
所在节点    程序员
25 条回复
zeyezhan
2022-08-13 20:13:35 +08:00
zeyezhan
2022-08-13 20:24:08 +08:00
这个配置手机上也可以用~
zeyezhan
2022-08-13 21:28:42 +08:00
顶一顶~
SimonOne
2022-08-13 23:33:02 +08:00
```
proxy-providers:
示例:
type: http
url: clash 订阅链接
interval: 86400
path: ./示例.yaml
health-check:
enable: true
interval: 600
# lazy: true
url: http://clients1.google.com/generate_204
```

直接将订阅地址写在主文件里得了,不要用客户端的订阅功能,不要 copy ,不然机场的更新不是废了。
SimonOne
2022-08-13 23:40:42 +08:00
SimonOne
2022-08-13 23:52:21 +08:00

你的高阶玩法里的 python 感觉就是重复造了 clash 已有的轮子啊
直接用 proxy-groups 和 proxy-providers 就行了
规则用 rule-providers
lostberryzz
2022-08-13 23:57:34 +08:00
你这个规则甚至连能用都谈不上,区区 73 个域名远远不能覆盖 gfw 名单,还有 DOMAIN-KEYWORD 的方式过于蠢了,就一个很简单的场景,类似于 githubproxy 这样的国内加速域名按你的配置走的是代理,但实际上它解析的是国内 IP 。

推荐一个自用的规则: https://github.com/Loyalsoldier/clash-rules
zeyezhan
2022-08-14 01:42:12 +08:00
@lostberryzz 谢谢您的意见。
1. 确实是在这样,我是用多少加多少,我的需求还是很少的
2. DOMAIN-KEYWORD 等有时间就研究一下是怎么回事嘿
3. githubproxy 原来是国内域名呀,学到啦

您的推荐我也用过,就是参考他来改的,因为我真正用到的网站估计 100 个以内,使用那个规则集太丰富了,感觉有些延迟了,所以才有了这个想法。

我的需求是:不需要那么全面的规则集,因为用不上太多,而且好像影响访问速度,够用就行,慢慢积累合适自己的规则。
zeyezhan
2022-08-14 01:46:02 +08:00
@SimonOne
谢谢您的回复,
啊,这里我确实是在造轮子,可能用高阶这个次不合适,我把它改掉。
主要是我的需求比较奇怪,觉得订阅更新后再更新配置好麻烦,所以想在生成自己的配置去替换订阅链接给我的配置
zeyezhan
2022-08-14 01:47:29 +08:00
@SimonOne
哇塞,原来是样解决的呀!!!!
谢谢指导~
zeyezhan
2022-08-14 01:53:48 +08:00
@lostberryzz
关于 githubproxy ,想了想在我的需求中,github 都走代理啦,好像不会用上 githubproxy 呀😂
ByteCat
2022-08-14 01:59:50 +08:00
每个人都会造自己的轮子 😂
不过我用的是 subconverter 转换配置,因为以前 iOS 没有 Clash ,而且生成的规则兼容性比较好,早期的 Clash 不支持 rule-provider 。
在这里:
https://github.com/imbytecat/subconverter-config/blob/main/rule-set.sample.ini
magicdawn
2022-08-14 04:40:19 +08:00
还真是每个人都有自己的轮子,
我造了一个 GUI 的 https://github.com/magicdawn/clash-config-manager

规则集永远无法适配所有人,这个 GUI 就是碰到一个链接,可以方便的从 chrome or 剪贴板读取并解析,然后快速选择 domain-suffix 或者 domain-keyword ,keyword, target 新建一条 rule
jinqzzz
2022-08-14 08:42:58 +08:00
我之前也造过一个轮子,大概就是过滤 v2ray base64 编码的节点订阅,然后转成 surge 。不过是很久之前了,16 年左右,那时候还没有 subconvert 和 clash
A01514035
2022-08-14 10:41:14 +08:00
好像有现成的规则吧,我是用这个的。
FrankAdler
2022-08-14 10:57:30 +08:00
重复造轮子的结果就是三分热度,最后用 topN 的已有轮子,我劝你放弃
yfugibr
2022-08-14 11:35:09 +08:00
cfw 可以用 parser.yaml, 我直接用自己的规则覆盖了机场的,订阅更新时也会自动处理
fanguangwei
2022-08-14 11:45:35 +08:00
surgio 试一下
Xopher
2022-08-14 11:51:28 +08:00
@zeyezhan subconvert 取节点 list ,自己写配置和规则就行了,规则定期更新
zeyezhan
2022-08-14 14:00:18 +08:00
@Xopher 收到,我去研究一下~

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

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

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

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

© 2021 V2EX