1. 根因剖析一:前置规则劫持(短路陷阱)
这是初学者最容易犯的逻辑错误:
- 你在第 200 行写了一条:`DOMAIN-SUFFIX,my-work-site.com,DIRECT`;
- 但在第 50 行,配置中存在一条:`DOMAIN-KEYWORD,work,PROXY`;
- 当你访问 `my-work-site.com` 时,由于域名中包含 `work` 子串,**数据包在第 50 行被直接捕获送入了代理,第 200 行的规则连执行的机会都没有!**
### 黄金排障法则:
无论你新增什么自定义规则,**在调试阶段无条件直接插入到 `rules:` 的最开头(第 1 行)**!如果放在第一行生效了,证明就是被后面的其他规则劫持了。
💡 善用客户端的 Connections 面板查看每个请求当前命中的具体规则行。
2. 根因剖析二:多层级缓存干扰排障
有时候你的规则配置完全正确,但点击刷新后网页依然走错:
### 三级缓存干扰源:
1. **浏览器内部 DNS 缓存**:现代浏览器默认缓存 DNS 记录 60 秒。在 Chrome 访问 `chrome://net-internals/#dns` 点击「Clear host cache」并重启浏览器;
2. **操作系统 DNS 缓存**:Windows 终端执行 `ipconfig /flushdns`;
3. **Mihomo 内核 Fake-IP 映射持久化**:内核会在工作目录下维护 `cache.db`。删除该缓存文件可强制内核重建全新的映射树。
powershell
# Windows 终端刷新操作系统 DNS 解析缓存
ipconfig /flushdns
# 清理 Clash 缓存数据库命令示范 (需先关闭软件)
Remove-Item "$env:APPDATAio.github.clash-verge-rev.clash-verge-revcache.db" -ErrorAction SilentlyContinue 3. 连接追踪诊断实战(Connections Audit)
利用 RESTful API 实时捕获连接上下文:
bash
# Linux / macOS 终端查询特定域名的实时匹配链条
curl -s -H "Authorization: Bearer 你的Secret" http://127.0.0.1:9090/connections | jq '.connections[] | select(.metadata.host | contains("openai")) | {host: .metadata.host, rule: .rule, destination: .chains}' ❓ 常见疑问与排查步骤
修改了 rules 规则需要重启软件吗?
在 Clash Verge Rev 中点击配置卡片上的「保存」即可自动热重载,无需关闭客户端。
规则后面写了不存在的策略组名称会发生什么?
内核在启动测试时会报错并拒绝加载,或者在运行时回退到默认的 DIRECT 直连。
为什么明明写了 DIRECT,流量监控上还是显示有微量上传?
DIRECT 直连依然需要通过本地物理网卡发出数据,客户端的网络监控展示的是整机网卡的吞吐活动,不代表扣除了专线流量。