簡要說明
系統時間不準確可能導致我們提供的多種協定無法正常連線,原因有兩個。輕微的時間偏差通常不會有影響,只有當偏差超過下述容差範圍時才會出現問題。時區設定並不重要,關鍵在於您的時鐘在 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:設定 → 一般 → 日期與時間 → 開啟自動設定。
校正時間後,請重新啟動用戶端並重新連線。