Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

辅助生成规则完善的 Clash 代理配置,支持上传到 gist 生成订阅链接

Notifications You must be signed in to change notification settings

EsunR/clash-sub-builder

Repository files navigation

1. 介绍

本项目用于根据配置规则来自动生成 Clash 配置文件,同时支持将配置文件上传到 gist 作为订阅链接使用。

规则片段来自 ACL4SSR,创建了常用的订阅分组,如下:

项目灵感来自 subconvert,由于 subconvert 不支持 vless 订阅而放弃使用,但是本项目只关注 Clash 配置文件的生成(是一个非常腊鸡的脚本),没有 subconvert 那么强大的订阅规则互相转换功能。

2. 使用方式

首先(给本项目一个 star 😘),创建一个新的代码库并导入本项目的代码,推荐直接使用 Github 的仓库导入功能:

仓库源输入:https://github.com/EsunR/clash-sub-builder.git

记得把仓库设置为 private,你也不想让你的节点信息暴露给别人吧,然后按照下面的步骤执行。

2.1 填写节点信息

如果你之前使用的是机场订阅,可以直接用浏览器打开机的订阅链接,复制页面上的内容,覆盖掉 /config/template.yml 中的内容即可,然后跳过这一节

编辑 /config/template.yml 的 Clash 订阅模板,将你的节点信息写入到 proxies 里,你也可以在此添加其他配置,添加了节点信息的模板示例如下:

mixed-port: 7890
allow-lan: true
mode: Rule
log-level: info
external-controller: :9090
proxies:
 - name: Demo VPS 1
 server: www.example.com
 port: 443
 type: vmess
 uuid: xxx-xxx-xxx-xxx
 alterId: 0
 cipher: auto
 tls: true
 skip-cert-verify: true
 network: ws
 ws-opts:
 path: /download
 udp: true
proxy-groups:
rules:

如果你需要创建多套模板,可以在 /config 目录下创建多个以 template 为开头的模板文件,如 template_reality.ymltemplate_hysteria2.yml,脚本会将其全部读取并转换为多个订阅链接。

如果你不知道如何编写 Clash 订阅节点的配置,可以参考:

2.2 上传配置到 gist 生成订阅链接

获取 Github Token

首先,访问 https://github.com/settings/tokens 来生成一个 gist 的授权 Token:

勾选无过期限制:

只勾选 gist 权限:

然后复制生成的以 ghp_ 开头的 token:

获取 gist id

想要把生成的 Clash 订阅推送到 gist 上,就需要现在 gist 上创建一个 gist 项目。

访问 https://gist.github.com/ 然后创建一个空项目:

创建完成后,复制浏览器中的这段路径,即为 gist id:

完善信息

经过上面两个步骤,我们已经拿到了 github token 和 gist id,打开 /config/gist.toml 完善配置文件:

[[common]]
token = 这里输入 github token
id = 这里输入 gist id

如果你不想明文写在配置文件里,可以使用在 Github Action 中创建环境变量,其对应的环境变量分别为 GIST_TOKENGIST_ID

推送代码到 Github 上并获取订阅链接

提交到代码变更到你的仓库中,然后就会触发 Github Action 自动生成 Clash 订阅,并发布配置文件到 gist 上,你可以在 Github Action 的输出日志中查看订阅地址:

后续每次更新节点配置或者规则,提交代码后 Github Action 就会自动帮你更新配置!

PS: Gist 无法在中国大陆正常访问,你可以使用 Vercel 或者 Cloudflare 来搭建一个建议的代理服务代理到你的订阅链接上

3. 变更配置

如果你不满足预设的配置,你可以在 config/groups.toml 中修改或新增配置组,还可以在 config/rulesets.toml 中修改每个配置组的规则。

如果你只想简单的补充规则,可以在 rules/custom/Direct.list 添加走直连规则,在 rules/custom/Global.list 中添加走代理的规则。这两个文件中的规则优先级会被设置为最高。

4. 本地运行

如果你不想在 Github Action 中执行发布,也可以选择在本地运行。

首先准备好 node 环境(v18),然后安装项目依赖:

npm install

如果只想生成 Clash 配置文件,而不想上传到 gist,可以执行:

npm run dev

生成的配置文件可以在根目录找到(subscribe.yml)。

如果需要上传到 gist,则执行:

npm run start

5. 同步本仓库的更新

注意:需要掌握一定的 git 相关知识,否则请手动覆盖代码进行更新

降本项目的 git 源设置为 upstream:

git remote add upstream https://github.com/EsunR/clash-sub-builder.git

从 upstream 拉取最新代码:

git fetch upstream
git merge upstream/main

About

辅助生成规则完善的 Clash 代理配置,支持上传到 gist 生成订阅链接

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /