一、故障定位五步标准流程(SOP)
遇到网络异常时,请按顺序执行以下五步,可在 90% 的场景下精准找出故障源头:
-
第一步:检查本地物理网卡与宽带。 关闭代理软件,直接访问国内大型网站(如
bilibili.com或baidu.com),确认本地宽带是否正常联网。 - 第二步:核对系统时间精准度(精确到秒)。 这是最常见却最易被忽略的盲区。加密通信(VMess、Trojan、Reality、Hysteria 2)均强制校验时间戳,偏差超过 60 秒将导致握手无条件被服务端丢弃。
- 第三步:在客户端内发起真实 URL-Test 测速。 点击节点测速,查看是否有节点返回数字延迟。若全部显示 Timeout,说明前置握手失败;若个别节点有延迟,说明是单节点故障。
-
第四步:检查系统代理开关与端口监听。 确认 Windows/macOS 系统代理设置指向的本地 IP 是否为
127.0.0.1,端口是否与客户端一致(默认7890)。 -
第五步:查阅客户端实时日志(Logs)。 打开 Clash 的日志面板,搜索红色
[ERROR]或[WARNING]关键字,查看具体错误堆栈。
二、高频故障深度排查与修复方案
故障一:节点测速全部超时,提示 Handshake Timeout
由于主板电池老化或双系统切换(Windows 与 Ubuntu 双系统时间不同步),本地时钟比国际原子时钟慢了数分钟。
修复方法: 在 Windows 设置中搜索“时间和语言” → “日期和时间” → 点击“立即同步(Sync now)”。确认时钟同步成功后,重启 Clash 客户端即可瞬间连通。
故障二:开启客户端后提示 Port 7890 Listen Failed
这是典型的端口占用冲突。开发者电脑上常运行 Docker 容器、WSL 子系统或抓包工具(Charles、Postman),抢先占用了 7890 端口。
修复方法: 打开命令行终端,执行 netstat -ano | findstr 7890 查看占用该端口的进程 PID,并在任务管理器中将其结束;或者直接在 Clash 设置中将混合代理端口(Mixed Port)修改为其他空闲端口,如 7898。
故障三:能打开网页,但命令行终端无法下载依赖(npm / pip / git)
系统代理(System Proxy)默认仅接管支持系统代理 API 的图形软件(如 Chrome、Edge、Slack),而终端 CLI 工具通常不会自动读取系统代理。
修复方法: 在 Clash Verge Rev 中开启 TUN 模式,利用虚拟网卡在网络层无差别捕获所有进程的流量;或者在终端中手动临时注入环境变量:
# PowerShell 临时代理设置
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
三、DNS 污染防范与 Fake-IP 模式解析
在加速场景中,最棘手的问题之一是 DNS 污染(即查询被境外拦截的域名时,本地运营商 DNS 返回虚假错误的 IP)。
在 Clash 体系中,推荐将 DNS 模式配置为 fake-ip 模式:
- 客户端在本地拦截应用的 DNS 解析请求,立刻返回一个保留网段的伪造 IP(如
198.18.0.x); - 应用程序拿到该伪造 IP 后建立 TCP 连接,流量进入本地 Clash 内核;
- 内核在内部将该伪造 IP 还原为原始目标域名,通过远端加密节点完成真实的远端 DNS 查询。
这种机制从根本上杜绝了本地 DNS 污染,同时节省了本地等待 DNS 回包的时间,极大加速了网页首屏开启速度。