システム時刻が正しくないと接続できなくなるのはなぜですか?

概要

システム時刻が不正確な場合、当社が提供する複数のプロトコルで接続できなくなることがあります。理由は 2 つあります。わずかなずれであれば通常は問題ありませんが、以下の許容範囲を超えると接続できなくなります。タイムゾーンの設定は関係なく、重要なのは UTC 基準で時計が正確であることです。

理由 1:プロトコル自体がタイムスタンプを含む場合

  • VMess は認証情報に UTC タイムスタンプを含めており、サーバーはこれを用いてリプレイ攻撃を拒否します。お使いの時計がサーバーと約 120 秒以上ずれている場合、そのリクエストは無効と判断されます。
  • Shadowsocks 2022 もリプレイ防止のためリクエストヘッダーにタイムスタンプを含みます。許容誤差は約 30 秒で、VMess よりも厳格です。

理由 2:TLS 証明書の有効期限(その他の多くのプロトコルに影響)

TLS を用いるプロトコル(QUIC + TLS 上で動作する Hysteria2AnyTLS、Trojan、TLS 経由の VLESS など)は通常、端末の時計を基準にサーバー証明書とその有効期限を検証します。証明書の検証が有効な状態で時計のずれが大きく、証明書がまだ有効でないまたはすでに期限切れと判定されると、通信が始まる前にハンドシェイクが失敗します。異なる検証ポリシーを設定している場合はこの限りではありません。

タイムスタンプを持たないプロトコルでも「時刻を修正する」ことで接続の問題が解決するのは、このためです。

主な症状

  • クライアント上では設定が成功しているのに、通信がまったく行われない。
  • 接続がすぐに失敗する、またはすべてのノードが利用不可と表示される。
  • クライアントのログに証明書、ハンドシェイク、または "invalid user" に関するエラーが出る。

対処方法

  • Windows:設定 → 時刻と言語 → 日付と時刻 →時刻を自動的に設定するをオンにします。(タイムゾーンを自動的に設定するは便利ですが、時計のずれ自体は修正されません。重要なのは UTC 時刻の正確さです。)強制的に同期するには、管理者としてコマンドプロンプトを開き w32tm /resync を実行します。
  • macOS:システム設定 → 一般 → 日付と時刻 →日付と時刻を自動的に設定をオンにします。
  • Android:設定 → システム → 日付と時刻 →日付と時刻を自動的に設定をオンにします。
  • iOS:設定 → 一般 → 日付と時刻 →自動設定をオンにします。

時刻を修正したあと、クライアントを再起動して再接続してください。

  • 0 これは役に立つとユーザーは感じています
この回答は役に立ちましたか?

関連記事

Cannot use the proxy on Firefox

Firefox does not always follow the system proxy, so it can show no connection while other apps...

"error: spawn unknown"

このエラーの正式名称は "error: spawn unknown" で、通常はVS Codeが必要なプログラムまたはスクリプトを見つけられないために発生します。...

Windows端で設定が成功してもインターネットに接続できない理由

Windows端で設定が成功してもインターネットに接続できない理由   まず、Windowsの時刻が正確かどうかを確認してください。プロトコルによっては 30 秒~2...

Windows側が起動しないのですが、v2rayNが動かなくなった場合はどうしたらよいですか?

"v2rayNが停止しました"と表示される場合   おそらくWindowsのバージョンが古すぎるため、.NET Frameworkの依存パッケージをインストールする必要があります。...

不明なエラーが発生したようです Error: Command failed sysproxy.exe

インストールディレクトリを確認してください。ディレクトリには空白文字/中国語などの奇妙な文字が含まれていない必要があります(ユーザー名も含む)。...