fix: keep OneDrive on direct routing (#7)
CI / lite (push) Successful in 9s

## 变更

- 将 `OneDrive.exe` 设为全局 `DIRECT`,优先于供应商 Microsoft 规则
- 为 Clash Verge 全局脚本补充国内可达的阿里 DNS / 腾讯 DNS DoH fallback
- 同步更新路由器规则投影与跨平台生成说明

## 验证

- `python -m unittest discover -s tests -v`:7 项通过
- mihomo DNS API 成功解析 OneDrive 目标
- 实际日志确认 `OneDrive.exe -> skydrive.wns.windows.com:443` 命中 `ProcessName(OneDrive.exe)` 并使用 `DIRECT`

Reviewed-on: http://192.168.50.2:3000/ageorge156/vpn-rules/pulls/7
This commit was merged in pull request #7.
This commit is contained in:
2026-08-30 16:55:17 +08:00
parent de26a0edc0
commit 854b8e1cdd
6 changed files with 132 additions and 10 deletions
+7 -3
View File
@@ -20,22 +20,26 @@ vpn-rules/
## 为什么需要它
- 香港代理节点有流量配额(如 BygCloud 100GiB 用满),国内站点/内网流量被隧道进代理会白白烧配额。
- 必须直连的对象:FRP 控制面(mTLS)、B 站全系、DeepSeek/MiniMax 等国内 LLM API、
- 必须直连的对象:Windows OneDrive 客户端、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)
### Clash Verge(Windows / macOS)
```bash
# 生成并写入 Clash Verge 数据目录的 Script.js
# 按当前平台生成并写入 Clash Verge 数据目录的全局 Script.js
python3 scripts/gen_clash_verge_script.py
# 然后在 Clash Verge 界面点「重启内核」生效
```
对当前及以后新增/切换的所有订阅生效;订阅更新不会覆盖它。
脚本还会把国内可达的阿里 DNS 和腾讯 DNS DoH 端点补入 `dns.fallback`,避免境外域名
命中 `DIRECT` 后因供应商的境外 DNS fallback 不可达而解析失败。
Windows 默认写入 `%APPDATA%\io.github.clash-verge-rev.clash-verge-rev\profiles\Script.js`;
macOS 默认写入 `~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/profiles/Script.js`。
### 路由器 mihomo(Magic Catling2 / OpenWrt)