feat: vpn 全局直连规则真源(rule-provider)+ Clash Verge 脚本生成器
CI / check (push) Successful in 3s

This commit is contained in:
George Berkshire
2026-08-19 16:46:26 +08:00
commit 25fcdf0701
5 changed files with 239 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
# vpn-rules
「哪些连接必须**直连、绝不进代理**」的规则真源(single source of truth),供电脑端
Clash Verge 和华硕路由器上的 mihomo(Magic Catling2)等消费端同步引用,一处维护、处处生效。
## 目录结构
```
vpn-rules/
├── direct.yaml # 规则真源(mihomo rule-provider 格式)
└── scripts/
└── gen_clash_verge_script.py # 真源 → Clash Verge Script.js 生成器
```
## 为什么需要它
- 香港代理节点有流量配额(如 BygCloud 100GiB 用满),国内站点/内网流量被隧道进代理会白白烧配额。
- 必须直连的对象:FRP 控制面(mTLS)、B 站全系、DeepSeek/MiniMax 等国内 LLM API、
内网/私有 IP 段、国区 iCloud、UGREEN 绿联 NAS 云。
- **踩坑**:Clash Verge 全局 `Merge.yaml` 的 `prepend-rules` 会被内核忽略(不生效),
全局直连规则的唯一正确机制是 `profiles/Script.js`(`main(config)` 把规则 prepend 进 `config.rules`)。
## 消费端接入
### Clash Verge(macOS)
```bash
# 生成并写入 Clash Verge 数据目录的 Script.js
python3 scripts/gen_clash_verge_script.py
# 然后在 Clash Verge 界面点「重启内核」生效
```
对当前及以后新增/切换的所有订阅生效;订阅更新不会覆盖它。
### 路由器 mihomo(Magic Catling2 / OpenWrt)
rule-provider 引用(policy 在外层指定),定期自动拉取真源:
```yaml
rule-providers:
vpn-direct:
type: http
behavior: classical
url: https://gitea.puyuanfh.cn/ageorge156/vpn-rules/raw/branch/main/direct.yaml
interval: 86400
path: ./ruleset/vpn-direct.yaml
rules:
- RULE-SET,vpn-direct,DIRECT
```
> 路由器内网自建 Gitea(192.168.50.2:3000)也可直连:`http://192.168.50.2:3000/ageorge156/vpn-rules/raw/branch/main/direct.yaml`。
## 维护流程
1. 改 `direct.yaml`(rule-provider 条目,**不含**策略字段)。
2. `git commit` + push 到本仓库 `main`。
3. Clash Verge 端重跑 `python3 scripts/gen_clash_verge_script.py` + 重启内核;
路由器端等 rule-provider 到期自动拉新或手动 reload。