将公开规则源与你自己的域名、IP/CIDR 和覆盖规则合并,并在浏览器里生成面向 Shadowrocket 和 Clash/Mihomo 类客户端的配置。
- 聚合公开的 DIRECT、PROXY、REJECT 数据源
- 支持裸域名、通配域名、IPv4、IPv6、CIDR 和完整规则语法
- 自动规范化、去重、稳定排序并生成冲突报告
- 本地规则优先于公开源,私有规则优先级最高
- 私有目录默认被 Git 忽略,降低内网信息误提交风险
- 静态网页支持 VLESS、VMess、Trojan 和 Shadowsocks 分享链接
- 可按需启用广告拦截、代理域名、国内直连和 GEOIP 分流
- 在线生成器默认引用 GitHub Pages 上每日发布的抓取规则,不展开十几万条规则正文
- Shadowrocket 生成不内嵌节点的轻量
.conf规则配置,并提供逐节点标准分享二维码 - Clash/Mihomo 生成
.yaml,节点、策略组、fake-ip DNS、远程规则提供者和分流引用写在同一个文件里 - 支持订阅链接;默认通过
https://convert.3tel.net取得订阅节点 - Clash/Mihomo 对 VLESS、VMess、Trojan 和 SS 直链优先在浏览器本地生成,避免旧版 subconverter 无法识别 VLESS 直链
- 节点凭据只在浏览器本地处理,不上传、不存储
- GitHub Actions 每日自动测试、构建规则并部署 GitHub Pages
普通用户直接打开在线生成器:
https://3tel.github.io/proxy-rules/
粘贴节点或订阅链接、选择分流规则和策略,然后点击“生成配置”。Shadowrocket 会生成不含节点
的 .conf 规则配置;如果输入了节点或订阅,也会额外生成节点二维码。Clash/Mihomo 会生成
包含 proxies、proxy-groups、fake-ip DNS、rule-providers 和 rules 的 .yaml 文件。直接节点的
UUID、密码和服务器信息不会离开当前浏览器;订阅链接需要通过你指定的 subconverter 服务解析。
在线生成器默认会引用本项目发布到 GitHub Pages 的抓取规则:
rules/reject.list→ 广告与追踪拦截rules/proxy.list→ 代理域名列表rules/direct.list→ 国内域名直连
生成 Shadowrocket 配置时,会使用 RULE-SET,URL,PROXY/DIRECT/REJECT 引用远程规则,不写入
[Proxy] 节点或 [Proxy Group]。生成 Clash/Mihomo
配置时,会使用 rule-providers 定义远程规则,再在 rules 中用 RULE-SET,名称,策略
引用。临时自定义规则仍会直接写进本次生成的配置。
单个节点二维码使用原始标准分享链接,可以直接扫码添加。Shadowrocket 的扫码入口不接受
普通二维码中的完整配置正文,因此网页不会再生成无效的“整份配置二维码”。完整配置请下载
.conf 文件,再从 iOS“文件”中用 Shadowrocket 打开,或进入 Shadowrocket 的“配置”页面导入。
本项目只聚焦两类客户端:
- Shadowrocket:生成包含
[General]和[Rule]的轻量.conf,不内嵌节点,并为每个节点生成标准分享二维码。 - Clash/Mihomo:生成包含节点、策略组、fake-ip DNS、
rule-providers和rules的一体化.yaml,抓取规则通过远程 provider 引用。
订阅解析默认使用项目维护的 https://convert.3tel.net subconverter 服务,也可以替换成其他
服务地址。网页只有在用户明确勾选同意后才会发送订阅信息;转换服务会接触订阅地址、UUID
和密码等节点信息。
输入框支持一行一个 HTTP/HTTPS 订阅链接,也可同时填写多个订阅地址进行合并。选择
Shadowrocket 时,可以不填写任何节点,直接生成规则配置。直接节点仍在浏览器本地解析;如果
输入中包含订阅链接,则使用用户填写的 subconverter 服务以 mixed 格式解析订阅,并只用于
生成节点二维码。Shadowrocket 的 PROXY、DIRECT、REJECT 规则会分别指向客户端内置策略
PROXY、DIRECT、REJECT,最终未匹配流量默认进入 PROXY。
选择 Clash/Mihomo 时,VLESS、VMess、Trojan 或 SS 直链会直接写入 proxies;订阅链接会先
通过 subconverter 取得节点,再在浏览器里合并本项目远程规则引用、自定义规则和最终策略。
VLESS Reality 等新协议字段需要使用支持相应协议的 Clash Meta 客户端。
Clash/Mihomo 生成的 DNS 默认使用 fake-ip 模式:fake-ip-range 为 240.0.0.1/8,国内默认
DoH 为阿里 DNS 和腾讯 DNS,海外 geosite:geolocation-!cn DNS 请求通过 #PROXY 走代理。
订阅转换服务返回的 DNS 会被本项目模板覆盖,保证生成配置的 DNS 行为一致。
本地构建需要 Node.js 20 或更高版本:
cp -R rules/private.example rules/private
npm test
npm run build不下载公开源、只验证本地规则:
npm run build:local一般用户只需订阅合并模块:
https://raw.githubusercontent.com/3tel/proxy-rules/main/dist/shadowrocket/all.module
生成文件位于 dist/shadowrocket/:
all.module(推荐,包含全部规则)direct.moduleproxy.modulereject.moduledirect.list、proxy.list、reject.list(供网页生成的配置引用)
构建统计和前 100 条冲突写入 build-report.json。
公开规则写入 rules/local/direct.txt、proxy.txt 或 reject.txt。真实内网信息写入同名的
rules/private/ 文件。后者不会被 Git 跟踪。
每行一条,支持以下写法:
example.com
*.internal.example
10.10.0.0/16
fd00::/8
DOMAIN,api.example.com,PROXY
IP-CIDR,203.0.113.0/24,DIRECT,no-resolve
裸域名和 *.域名 都会转换为 DOMAIN-SUFFIX。IP 地址和 CIDR 会自动识别 IPv4/IPv6、
规范网络地址,并添加 no-resolve。
同一个目标同时出现在多个策略中时,优先级为:
rules/private > rules/local > REJECT 公开源 > PROXY 公开源 > DIRECT 公开源
因此可以在 rules/private/direct.txt 中把被公开广告源误杀的内部域名强制改为 DIRECT。
数据源在 config/sources.json 中声明,目前默认使用:
本仓库只在构建时获取并转换这些上游数据。使用或再分发生成规则前,请同时检查各上游项目 的许可证和使用条款。详细边界见 SOURCES.md。
.gitignore 只能避免普通的 git add 误操作。不要使用 git add -f rules/private,也不要把
含有内部信息的生成文件发布到公共仓库。如果需要跨设备同步真实内网规则,建议使用单独的
私有仓库或加密存储。