直接答案
TLS 握手失败,说明客户端和节点在建立加密连接的第一步就没谈成。用户这一侧最常见的原因是系统时间不准(证书有效期校验失败)和客户端版本过旧;服务端的原因则包括节点证书过期、SNI 配置变更。先把系统时间设为自动同步,再更新订阅和客户端;如果只有个别节点报错,多半是节点本身的问题,换节点并反馈给服务商即可。不要为了连上而随意关闭证书校验。
TLS 握手是什么
很多代理协议会在外层使用 TLS 加密,也就是和 HTTPS 网站相同的加密方式。建立连接时,客户端和服务器要先完成“握手”:双方协商加密算法、服务器出示证书、客户端校验证书是否有效,并通过 SNI(服务器名称指示)告诉服务器要访问哪个域名。
这个过程中任何一步不通过,就会报握手失败。常见的英文报错包括 tls handshake timeout(握手超时)、x509 相关的证书错误,以及 remote error 等。报错内容本身就是重要的排查线索。
TLS 握手失败的常见原因
- 系统时间不准:证书有有效期,设备时间偏差过大时,有效的证书也会被判定为“已过期”或“尚未生效”。
- 证书过期:节点使用的证书没有按时续期,所有客户端都会报证书错误。
- SNI 不匹配:订阅中的 SNI 与服务器证书上的域名不一致,客户端校验失败。
- SNI 被阻断:某些网络环境会根据 SNI 中的域名进行干扰,导致握手超时或被重置。
- 客户端版本过旧:节点使用了较新的 TLS 特性或传输方式,旧版客户端不支持。
- 安全软件或网络设备中间人检测:部分杀毒软件、公司网关会对 TLS 流量进行解密检查,替换证书后导致校验失败。
- 本地网络干扰:握手阶段被丢包或重置,表现为握手超时。
判断标准:看报错信息判断原因
| 现象或报错 | 可能原因 | 处理 |
|---|---|---|
| 提示证书已过期或尚未生效 | 系统时间不准,或证书确实过期 | 先校准时间,仍报错则反馈给服务商 |
| x509 提示证书与域名不匹配 | SNI 配置与证书不一致 | 更新订阅获取最新配置 |
| x509 提示证书由未知机构签发 | 安全软件或网关替换了证书 | 在其他网络中测试,检查安全软件的加密流量扫描 |
| tls handshake timeout | 网络干扰或节点不可达 | 换网络、换节点测试 |
| 所有节点都报握手失败 | 时间不准或客户端版本问题 | 校准时间,更新客户端 |
| 只有个别节点报错 | 节点证书或配置问题 | 换节点,并告知服务商 |
| 手机正常,电脑报错 | 电脑时间、安全软件或客户端版本 | 在电脑上逐项排查 |
逐步排查
- 查看完整报错:在客户端日志中找到具体的错误信息,记下关键词,例如 expired、x509、handshake timeout。日志入口以客户端实际界面为准。
- 校准系统时间:把系统时间和时区都设为自动,确认时间与标准时间一致。这一步能解决相当一部分“所有节点都握手失败”的情况。
- 更新订阅:服务商可能已经更换证书或调整了 SNI,更新订阅可以拿到最新配置。
- 更新客户端:检查客户端及其内核是否为较新版本,旧版本可能不支持节点使用的 TLS 特性。
- 判断范围:对比多个节点、多台设备、多种网络,确认问题是全局性的还是局部的。
- 排除安全软件:如果安全软件开启了“加密连接扫描”或类似功能,暂时关闭后测试。
- 更换网络测试:用手机热点测试,如果热点下正常,说明原网络对握手存在干扰。
- 反馈给服务商:如果个别节点持续报证书错误,把节点名称、报错信息和时间发给客服。
能不能关闭证书校验
部分客户端提供“跳过证书验证”或类似选项。开启后可以绕过证书错误,但也意味着客户端不再确认对方身份,连接可能被中间人冒充或窃听。除非服务商明确说明某个节点需要这样设置,否则不建议为了连上而开启;遇到证书错误,优先找到根本原因。
注意事项
- 证书错误有时是真实的安全警告,不要把它当成普通故障随手忽略。
- 公司或学校网络可能部署了流量检查设备,在这类网络中使用代理前,请遵守所在单位的网络管理规定。
- 协议和传输方式的选择由服务商决定,用户能做的主要是保持客户端更新并使用最新订阅。
- 不要从来路不明的渠道获取“修复版”配置文件,这类文件可能包含恶意设置。
- 如果握手失败只在特定时间段出现,可能与网络干扰有关,可以换时间段对比。