Skip to content

🎃自定义Clash代理规则的方案

Notifications You must be signed in to change notification settings

liuyu-f/clash-rules-lite

 
 

Repository files navigation

GitHub Readme Stats

Clash Rules Lite

🍒 自定义代理规则,精简匹配规则。

代理规则列表 | 微软服务规则列表 | 黑名单规则列表

  https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/proxy-rules.txt    
  https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/microsoft-rules.txt
  https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/blacklist-rules.txt

已稳定使用2年的机场推荐:https://sspcloud.net/#/register?code=4L83QEU9

工具介绍

  • Clash 默认的GFW代理规则内容太多,使用过程中明显感觉到有延迟
  • 本工具的想法是代理规则一边用一边添加,毕竟我们访问的网站应该很有限
  • 该工具的目的是删除不必要的代理规则,方便用户自定义代理的内容
  • 代理规则放在github仓库中方便多设备同步,只需编辑rules.txt即可
  • 当用户更新规则后,使用Github Actions自动将规则缓存到免费CDN上
  • 用户在 github 上更新规则后,在 clash 的 providers 上点击刷新即可拉取更新

如何自定义

  1. fork 本仓库:Fork zhanyeye/clash-rules-lite
  2. 触发 GitHub Action 中的 Generate Rules for Clash 工作流
  3. 编辑 xx-rules.txt 以自定义规则
  4. 在对应的 Clash 上刷新配置文件

启动流水线示意图

Tips:

a. 可通过访问进行验证 https://cdn.jsdelivr.net/gh/{你的GITHUB用户名}/clash-rules-lite@release/
c. 该仓中以 rules.txt 结尾的文件,都会缓存到 jsdelivr CDN中,可以自定义!

在 Clash Desktop 中生效

  1. 鼠标右击订阅的配置文件选中“复制”,将复制的文件命名为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: '🔰 节点选择', type: select, proxies: ['1-香港', '2-香港'] }
    - { name: '🎯 全球直连', type: select, proxies: ['DIRECT'] }
    - { name: '🛑 全球拦截', type: select, proxies: ['REJECT'] }
    - { name: 'Ⓜ️ 微软服务', type: select, proxies: ['🎯 全球直连', ] }
    - { name: '🐟 漏网之鱼', type: select, proxies: ['🔰 节点选择'] }
    - ...
rules:
  - RULE-SET,Proxy,🔰 节点选择
  - RULE-SET,Microsoft,Ⓜ️ 微软服务
  - RULE-SET,Backlist,🛑 全球拦截
  - GEOIP,CN,🎯 全球直连
  - MATCH,🐟 漏网之鱼
rule-providers:
  Proxy:
    type: http
    behavior: classical
    url: "https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/proxy-rules.txt"
    path: ./providers/rule-proxy.yaml
    interval: 86400
  Microsoft:
    type: http
    behavior: classical
    url: "https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/microsoft-rules.txt"
    path: ./providers/rule-microsoft.yaml
    interval: 86400
  Backlist:
    type: http
    behavior: classical
    url: "https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/blacklist-rules.txt"
    path: ./providers/rule-backlist.yaml
    interval: 86400 

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

运行修改后的本地配置

在OpenWrt的OpenClash中生效

OpenWrt 是一个软路由系统,如果你没有用到,请忽略”

需要更新配置文件的rulesrule-providers, 注意:

  • 用户名需要替换成用户自己的!!!
  • rules 中所属的group需要替换成自己的 proxy-groups!!!
rules:
  - RULE-SET,Proxy,🔰 节点选择
  - RULE-SET,Microsoft,Ⓜ️ 微软服务
  - RULE-SET,Backlist,🛑 全球拦截
  - GEOIP,CN,🎯 全球直连
  - MATCH,🐟 漏网之鱼
rule-providers:
  Proxy:
    type: http
    behavior: classical
    url: "https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/proxy-rules.txt"
    path: ./providers/rule-proxy.yaml
    interval: 86400
  Microsoft:
    type: http
    behavior: classical
    url: "https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/microsoft-rules.txt"
    path: ./providers/rule-microsoft.yaml
    interval: 86400
  Backlist:
    type: http
    behavior: classical
    url: "https://cdn.jsdelivr.net/gh/zhanyeye/clash-rules-lite@release/blacklist-rules.txt"
    path: ./providers/rule-backlist.yaml
    interval: 86400 

自定义代理规则

  • 修改代码仓中以 rule.txt 结尾的文件即可, 也可以自己新增以rule.txt结尾的配置,都会生效
  • 修改后需要在clash中刷新,并重启clash才能生效

clash desktop 中刷新操作


Clash 客户端上刷新 providers, 并重启clash

OpenClash 中刷新操作

配置文件管理 -> 规则集文件列表 -> 删除所有文件 -> 返回概览 -> 应用配置


OpenClash上删除规则集文件, 并重新应用配置
  • jsdelivr CDN 缓存没有更新怎么办?

这是因为 jsdelivr CDN 缓存的原因,一般来说是 24小时刷新缓存,但是这样太慢了!
不过 jsdelivr CDN 也提供手动刷新缓存的方法:

# 假设你的文件 URL 是这样:
https://cdn.jsdelivr.net/xxx/xxx...

# 那么把域名中的 cdn 改为 purge 即可:
https://purge.jsdelivr.net/xxx/xxx...

然后访问这个文件新 URL 就会提示你刷新成功!

About

🎃自定义Clash代理规则的方案

Resources

Stars

Watchers

Forks

Packages

No packages published