Files
vpn-rules/README.md
T

67 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# vpn-rules
「哪些连接必须**直连、绝不进代理**」的规则真源(single source of truth),供电脑端
Clash Verge 和华硕路由器上的 mihomo(Magic Catling2)等消费端同步引用,一处维护、处处生效。
## 目录结构
```
vpn-rules/
├── direct.yaml # 规则真源(mihomo rule-provider 格式)
├── router/
│ ├── direct-rules.yaml # 路由器手动粘贴版(`- ` 前缀 + DIRECT 策略)
│ └── direct-plain.txt # 无 `- ` 前缀纯文本版(规则逐行、无策略)
└── scripts/
├── gen_clash_verge_script.py # 真源 → Clash Verge Script.js 生成器
├── gen_router_paste.py # 真源 → 路由器手动粘贴版生成器
└── gen_plain_list.py # 真源 → 纯文本版生成器
```
## 为什么需要它
- 香港代理节点有流量配额(如 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`。
**拉不到 URL 时(手动粘贴版)**:打开 `router/direct-rules.yaml`,把里面的规则行粘贴到路由器现有规则列表最前面即可,无需联网(生成命令 `python3 scripts/gen_router_paste.py`)。若工具不支持 `- ` 前缀,用 `router/direct-plain.txt`(生成命令 `python3 scripts/gen_plain_list.py`)。
## 维护流程
1. 改 `direct.yaml`(rule-provider 条目,**不含**策略字段)。
2. `git commit` + push 到本仓库 `main`。
3. Clash Verge 端重跑 `python3 scripts/gen_clash_verge_script.py` + 重启内核;
路由器端等 rule-provider 到期自动拉新或手动 reload。