系统时间不对导致连不上:TLS 握手失败排查
延迟测得出来,日志里却反复出现握手相关的报错,而且换哪个节点都一样——先看一眼右下角的时钟。TLS 证书带有生效时间和过期时间,本机时间偏差超过几分钟,握手就会被判为证书无效。
症状特征
- 所有 Trojan、VMess over TLS、Hysteria 节点全军覆没,而不带 TLS 的 Shadowsocks 节点却正常;
- 关掉代理直接用浏览器访问网站,也提示「您的连接不是私密连接」或证书错误;
- 刚重装系统、刚换过主板电池、或者装了双系统的机器上特别容易出现。
修复步骤
- 设置 → 时间和语言 → 日期和时间,打开「自动设置时间」,再点一次「立即同步」;
- 同步按钮点了没反应,就换时间服务器:控制面板 → 日期和时间 → Internet 时间 → 更改设置,把服务器改成
ntp.aliyun.com或time.windows.com之外的其他地址; - 顺便确认时区没选错。时区错了会整整差几个小时,比几分钟的偏差更致命;
- 双系统用户注意:Windows 默认认为硬件时钟是本地时间,Linux 默认认为是 UTC,两边不一致就会每次切换都偏 8 小时。选一边改成和另一边一致即可。
时间修正是立即生效的,不用重启客户端,但已经建立的连接要断开重连——去 Connections 页面全部关闭,再重新测一次延迟。