为什么系统时间不正确会导致无法连接?

简要说明

系统时间不准确可能导致我们提供的多种协议无法正常连接,原因有两个。轻微的时间偏差通常不会有影响,只有当偏差超过下述容差范围时才会出现问题。时区设置并不重要,关键在于您的时钟在 UTC 标准下是否准确。

原因一:协议本身带有时间戳

  • VMess 会在认证信息中包含 UTC 时间戳,用于让服务器拒绝重放请求。如果您的时钟与服务器相差超过约 120 秒,服务器会判定该请求无效。
  • Shadowsocks 2022 同样在请求头中携带时间戳用于防重放,容差约为 30 秒,比 VMess 更为严格。

原因二:TLS 证书有效期(影响大多数其他协议)

基于 TLS 的协议——包括 Hysteria2(运行于 QUIC + TLS)、AnyTLS、Trojan 以及基于 TLS 的 VLESS——通常会依据设备时钟校验服务器证书及其有效期。如果已启用证书校验,且时钟偏差过大导致证书显示为尚未生效已过期,握手会在任何流量传输之前直接失败。若配置采用了其他校验策略,则不受此限制。

这也是为什么即使某些协议本身不含时间戳,"校正时间"仍然能解决连接问题。

常见症状

  • 客户端显示配置成功,但没有任何流量通过。
  • 连接立即失败,或所有节点均显示不可用。
  • 客户端日志中出现证书、握手或 "invalid user" 相关错误。

解决方法

  • Windows:设置 → 时间和语言 → 日期和时间 → 开启自动设置时间。(自动设置时区虽然方便,但并不能修正时钟偏差——真正重要的是 UTC 时间是否准确。)如需强制同步,请以管理员身份打开命令提示符并运行 w32tm /resync
  • macOS:系统设置 → 通用 → 日期与时间 → 开启自动设定时间与日期
  • Android:设置 → 系统 → 日期和时间 → 开启自动设置日期和时间
  • iOS:设置 → 通用 → 日期与时间 → 开启自动设置

校正时间后,请重启客户端并重新连接。

  • 0 用户发现这个有用
这篇文章有帮助吗?

相关文章

Firefox不能使用代理

Firefox 不一定会跟随系统代理设置,因此可能出现其他程序都正常、只有 Firefox 无法上网的情况。 如果您使用 TUN 模式(VilaNet 在多数平台的默认模式)...

错误代码 "error: spawn unknown"

这个错误的全称是 "error: spawn unknown",它通常是由于 VS Code 无法找到所需的程序或脚本而引发的。   你可以尝试以下步骤来解决这个错误:...

Windows端为什么显示配置成功还是无法上网

首先请检查Windows时间是否正确。依协议不同,时钟误差达 30 秒~2 分钟即可能导致无法连接,详见为什么系统时钟不准确会导致 VPN 无法连接。...

Windows端无法启动,提示v2rayN已停止工作怎么办?

如果出现 “v2rayN 已停止工作" 可能是Windows版本太老,需要安装 .NET framework 依赖包...

好像发生了未知错误 Error: Command failed sysproxy.exe

请检查安装目录,目录不得有任何空格/中文等奇怪字符(包括你的用户名),否则会出错   *注意*默认目录中的\Program Files\中间包含一个空格...