1531 字
8 分钟
校园网环境下 Clash Verge 代理故障排查

现象#

Clash Verge 正常运行,系统代理指向 127.0.0.1:7892,但无法访问 Google。同样的订阅节点在其他电脑上正常。

排查过程#

1. 确认代理进程存活#

Terminal window
netstat -ano | grep 7892

结果:127.0.0.1:7892 处于 LISTENING 状态,verge-mihomo(PID 7336)正在监听。

2. 确认系统代理已设置#

Terminal window
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer

结果:ProxyEnable=1ProxyServer=127.0.0.1:7892,系统代理设置正确。

3. 测试代理连通性#

Terminal window
curl -x http://127.0.0.1:7892 -I --connect-timeout 5 https://www.google.com

结果:HTTP/1.1 200 Connection established(HTTPS 隧道建成功),但随后超时——数据无法通过代理传输。

4. 检查 mihomo 核心日志#

Terminal window
tail -100 clash-verge/logs/service/service_latest.log

关键日志:

[TCP] dial XFLTD ... --> 0af4430.cnrcz.cn:13001 error: connect error: dns resolve failed: couldn't find ip
[UDP] dial XFLTD (match IPCIDR/8.8.8.8/32) mihomo --> 8.8.8.8:53 error: dns resolve failed: couldn't find ip

5. 检查 DNS 配置#

mihomo 运行时配置中:

nameserver:
- 223.5.5.5 # 阿里 DNS
- 119.29.29.29 # 腾讯 DNS
- 114.114.114.114 # 114 DNS
proxy-server-nameserver:
- https://cn.ali-oss.cn:44443/dns-query/...
- https://hk.ali-oss.cn:44443/dns-query/...

6. 测试 DNS 可达性#

Terminal window
nslookup baidu.com 223.5.5.5 # 超时
nslookup baidu.com 119.29.29.29 # 超时
nslookup baidu.com 114.114.114.114 # 超时
nslookup 0af4430.cnrcz.cn # 使用系统 DNS: 成功解析

校园网 DNS(202.114.96.1)能正常解析所有域名

根因#

校园网封锁了所有公共 DNS 服务器,而代理订阅配置指定了这些被封锁的 DNS 作为 nameserver。

数据流被阻断的位置:

浏览器 → 系统代理(127.0.0.1:7892) → mihomo 核心
需要解析代理节点域名 0af4430.cnrcz.cn │
使用 nameserver 解析:
├─ 223.5.5.5 → 校园网封锁, 不可达
├─ 119.29.29.29 → 校园网封锁, 不可达
└─ 114.114.114.114 → 校园网封锁, 不可达
dns resolve failed: couldn't find ip
所有代理连接失败

校园网是如何阻断公共 DNS 的#

方式一:ACL 防火墙规则(最可能)#

校园网出口路由器/防火墙上配置 ACL(访问控制列表),直接丢弃目标为公共 DNS 的 UDP 53 端口包:

你的电脑:随机端口 → 223.5.5.5:53 UDP DNS Query
校园网出口路由器 (10.137.127.254)
│ 规则命中: dst 223.5.5.5 port 53 → DROP
✗ 包被丢弃,没有回应 → 超时

测试结果符合这个特征——DNS request timed out,连 REFUSED 都不是,说明包直接被丢了。

方式二:DNS 劫持#

不丢包,但路由器拦截所有 DNS 请求强行转到校园网 DNS。不过本次情况不太像——如果是劫持,cnrcz.cn 校园网 DNS 也能解析,不应该出现 couldn't find ip

方式三:路由黑洞#

把公共 DNS 的 IP 段指向 null0(黑洞路由),效果和方式一相同。

为什么只封 DNS 不封代理流量#

DNS 是审查的第一步。如果域名解析不出来,后续连接根本不会发生,成本最低:

封法成本效果
封 DNS(UDP 53)低,几条防火墙规则阻止域名解析
封 IP + 端口高,海量 IP 要维护阻止特定服务
DPI 深度包检测极高,需要专用设备识别协议特征

校园网预算有限,封 DNS 性价比最高。而代理流量走的是 VLESS + Reality 在 TCP 443 上,外层就是普通 HTTPS(SNI 伪装成正常网站),就算有 DPI 也很难识别,所以代理本身的 TCP 连接不会被阻断。

为什么切手机热点再切回来就能用了#

这是一个很有意思的现象。笔记本电脑先连手机热点走流量,代理通了;切回校园网后居然还能继续用。原因在于 mihomo 的 DNS 缓存

过程拆解:

切热点前(校园网):
mihomo → 223.5.5.5:53 解析 0af4430.cnrcz.cn → ✗ 被校园网丢掉 → 连不上
切热点后(手机流量):
mihomo → 223.5.5.5:53 解析 0af4430.cnrcz.cn → ✓ 得到 18.181.249.107
mihomo 把这条结果写入缓存
mihomo → 18.181.249.107:13001 → ✓ 成功 → Google 通了
切回校园网:
mihomo 查 0af4430.cnrcz.cn → 缓存命中 → 直接用 18.181.249.107
mihomo → 18.181.249.107:13001 → ✓ 校园网没封这个 IP → 还能通!

mihomo 在 fake-ip 模式下维护的 DNS 缓存表大致是:

域名 假 IP (返回给客户端) 真实 IP (缓存)
0af4430.cnrcz.cn 198.18.0.42 18.181.249.107
www.google.com 198.18.0.17 (由节点侧解析,不缓存)

校园网只封了到公共 DNS 的 UDP 53 端口,没有封到代理节点 IP 的 TCP 连接。只要缓存不过期,mihomo 就不需要重新做 DNS 查询,直接用缓存的真实 IP 连代理节点,所以切回校园网后仍然能通。

但这个”修复”是暂时的,以下情况缓存会失效:

  • DNS 缓存过期(通常几分钟到几十分钟)
  • 切换到另一个 DNS 没缓存的节点
  • mihomo 重启
  • 手动清除缓存

届时问题会复现。改成 nameserver: [system] 才是永久解法。

解决方法#

将订阅配置中的 DNS 服务器从被封锁的公共 DNS 改为 system(使用系统 DNS):

# 改前
nameserver: [223.5.5.5, 119.29.29.29, 114.114.114.114]
proxy-server-nameserver:
- https://cn.ali-oss.cn:44443/dns-query/...
- https://hk.ali-oss.cn:44443/dns-query/...
# 改后
nameserver: [system]
proxy-server-nameserver: [system]

配置文件路径:%APPDATA%\io.github.clash-verge-rev.clash-verge-rev\profiles\<当前配置>.yaml

系统代理数据流全貌#

┌───────────────────────────────────────────────────────────────┐
│ 浏览器 (Chrome/Edge) │
│ 读取系统代理设置 → 不直接连目标,发 CONNECT 请求给代理 │
│ CONNECT google.com:443 → 127.0.0.1:7892 │
└──────────────────────────┬────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ mihomo 核心 (verge-mihomo, 监听 127.0.0.1:7892) │
│ │
│ ① 匹配规则: DOMAIN-KEYWORD,google → XFLTD 代理组 │
│ ② 选择节点: 🇸🇬 新加坡 01 [V] → 0af4430.cnrcz.cn:13001 │
│ ③ DNS 解析节点域名: nameserver → system DNS → 18.181.249.107 │
│ ④ 连接节点: VLESS + Reality 协议, 伪装 www.lamer.com.sg │
│ ⑤ 节点转发: 新加坡 VPS → www.google.com:443 │
│ │
│ 规则逻辑: │
│ DOMAIN-KEYWORD,google → XFLTD (走代理) │
│ GEOIP,CN → DIRECT (国内直连) │
│ MATCH → XFLTD (兜底走代理) │
└──────────────────────────┬────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 代理节点 (VLESS + Reality) │
│ 伪装成普通 HTTPS 流量 (SNI: 国内正常域名) │
│ 转发请求到目标网站, 返回响应 │
└──────────────────────────────────────────────────────────────┘

注意事项#

  • 更新订阅后 DNS 配置可能被覆盖,如出现相同症状,按同样方式修复
  • 可以在 Clash Verge → 设置 → DNS 中开启自定义 DNS 设置为 system,一劳永逸
  • 此问题本质是校园网 DNS 封锁策略与代理订阅默认配置冲突,并非代理节点本身的问题
校园网环境下 Clash Verge 代理故障排查
https://blog.eachic.me/posts/日常小问题/校园网代理故障排查/
作者
Eachic
发布于
2026-05-25
许可协议
CC BY-NC-SA 4.0