V2Ray TLS 握手失敗、憑證錯誤排解:系統時間、SNI 與指紋設定

從系統時間、SNI 與偽裝網域設定,到誤用略過憑證驗證,逐步排查 v2rayN、v2rayNG 常見的 TLS 憑證錯誤。

本文重點

適用於節點已匯入,但連線時出現 TLS 或 x509 錯誤的情況。先確認錯誤發生在下載訂閱,還是連線節點,再依序檢查系統時間、憑證網域、信任鏈與指紋。每次只修改一個欄位,並保留原始節點作為比對;不要把關閉憑證驗證當成修復方式。

先分清訂閱錯誤與節點握手失敗

「TLS 握手失敗」並非單一原因。訂閱網址使用 HTTPS 時會建立一次 TLS 連線;用戶端連線至啟用 TLS 的代理節點時,還會建立另一條連線。瀏覽器連線至 HTTPS 網站時,也會自行驗證憑證。這三種錯誤都可能出現 x509,但需要檢查的項目各不相同。

如果按下更新訂閱後立刻出現錯誤,且節點清單尚未變動,請優先檢查訂閱網址所屬網站的憑證。如果訂閱更新正常,但選取某個節點瀏覽網頁時核心回報錯誤,才檢查該節點的 TLS 設定。若只有瀏覽器顯示憑證異常,核心沒有相關錯誤,還要檢查瀏覽器的信任庫、網路登入頁面與本機 HTTPS 檢查軟體。

解析網址 建立傳輸連線 傳送握手資訊 驗證伺服器憑證 代理協定驗證

根據錯誤原文判斷檢查方向

記錄中可能會在以下英文訊息前後附上伺服器位址、時間與核心呼叫資訊。閱讀時請找出最具體的原因。只有 EOF 或 context deadline exceeded,不能證明是憑證問題;也可能是伺服器主動中斷、網路遭阻擋或握手逾時。

錯誤:x509: certificate has expired or is not yet valid

原因:目前時間不在憑證有效期限內,可能是裝置時鐘錯誤,也可能是伺服器憑證已過期。處理方式:先同步裝置時間;時間正確後仍出現錯誤,請將記錄中的有效期限資訊提供給服務供應商,確認憑證部署狀況。

錯誤:x509: certificate is valid for …, not …

原因:用戶端驗證的名稱不在伺服器憑證允許的網域範圍內;省略處會顯示實際網域。處理方式:核對節點的 SNI、serverName 與供應商提供的憑證網域,不要只修改連線位址。

錯誤:x509: certificate signed by unknown authority

原因:憑證鏈無法連結至受信任的根憑證,常見原因包括缺少中繼憑證、使用自簽憑證,或本機信任庫異常。處理方式:先更換網路進行比對,再請伺服器端檢查完整憑證鏈;不要任意安裝來源不明的根憑證。

錯誤:remote error: tls: handshake failure

原因:遠端拒絕握手,可能與 SNI、TLS 參數、協定入口或伺服器端政策有關。處理方式:還原訂閱中的原始參數,確認連接埠與安全層設定一致,再搭配伺服器端記錄繼續排查,不要直接關閉驗證。

系統時間:先同步,再重新連線

憑證驗證比對的是絕對時間,不只是螢幕顯示的時數。時區顯示不同但絕對時間正確,通常不會造成憑證失效;手動將時鐘調快或調慢,則可能觸發錯誤。裝置長時間關機、切換雙系統或自動校時失敗後,尤其應先檢查這項設定。

  1. 同步電腦時間

    在 Windows 開啟「設定」→「時間與語言」→「日期與時間」,啟用「自動設定時間」,確認時區後,再按一下「立即同步」。若同步失敗,先確認一般網路連線正常,不要反覆修改節點設定。

  2. 同步手機時間

    Android 通常可在「設定」→「系統」→「日期與時間」中啟用「自動設定時間」和「自動設定時區」。部分裝置也能直接在設定中搜尋「日期與時間」;選單名稱依系統版本而異。

  3. 重新建立連線

    在 v2rayN 重新啟動核心;在 v2rayNG 停止連線後再重新啟動。重新發出請求並查看最新記錄,避免把校時前留下的錯誤當成目前結果。

  4. 確認有效期限

    時間恢復正確後,若仍出現有效期限錯誤,請記下記錄中的目前時間、憑證起訖時間與時區。若憑證確實已過期,必須由伺服器端更新並重新載入憑證;修改用戶端日期無法正確修復。

在 Windows 中,可於終端機使用以下指令查看本機時間與時間服務狀態。第二個指令可能因系統服務未執行而回報錯誤;此結果僅供輔助診斷,不代表節點本身有問題。向他人求助時,不必提供完整裝置資訊。

powershell -NoProfile -Command "Get-Date -Format o"
w32tm /query /status

分別核對 SNI、連線位址與 Host

節點的「位址」決定要連線至哪個 IP 或網域;SNI 是 TLS 握手時傳送的伺服器名稱,通常也會用於憑證名稱驗證;WebSocket 的 Host 則是後續 HTTP 要求中的欄位。有些架設方式會讓三者相同,另一些則不同。把三個欄位都改成能開啟的網站網域,不會因此讓節點變得可用。

設定項目用途與檢查內容
位址與連接埠指定實際連線入口。連接埠 443 常用於 TLS,但僅憑連接埠號碼無法判定該入口是否啟用了 TLS;請以訂閱提供的設定為準。
SNI / serverName向 TLS 伺服器宣告目標名稱。一般 TLS 節點應使用供應商指定且與憑證相符的網域,不含通訊協定前綴、路徑或連接埠。
Host常用於 WebSocket 等 HTTP 傳輸的虛擬主機比對。修改 Host 不等於修改 SNI,也無法修復憑證名稱不相符的問題。
路徑與 ALPN路徑供相應的傳輸入口使用;ALPN 用於應用層協定協商。若沒有明確要求,請保留訂閱中的設定,不要自行強制使用 h2 或 http/1.1。

在 v2rayN 主畫面雙擊目標節點,進入伺服器編輯視窗,檢查位址、連接埠、傳輸協定,以及 TLS 區域中的伺服器名稱。在 v2rayNG 中,點選目標節點右側的編輯圖示,檢查「位址」、「連接埠」及 TLS 下的「SNI」。不同版本的介面可能顯示為 serverName 或伺服器名稱,請依欄位用途判斷,不必尋找各版本通用的選單名稱。

結論:先還原原始 SNI,再檢查解析結果

若憑證名稱不相符,請先比照新匯入的訂閱節點還原 SNI。若欄位一致仍收到錯誤憑證,再檢查節點位址的 DNS 解析與伺服器入口;隨機更換「偽裝網域」只會增加變因。

憑證鏈與略過驗證:不要混為同一個開關

憑證驗證不只檢查網域,也會檢查簽章鏈與有效期限。伺服器漏傳中繼憑證時,部分瀏覽器可能因為已有快取而能開啟頁面,代理核心卻仍會回報錯誤。因此,「瀏覽器能開啟」只能作為線索,不能取代核心的驗證結果。

曾經啟用略過驗證的使用者,應在排查完成後關閉該選項,再重新連線。必須在恢復驗證後,記錄中不再出現同類錯誤,且實際要求也成功,才能算修復完成。一次延遲測試成功,不代表所有要求都經過預期的 TLS 入口。

TLS 指紋:依節點要求設定,不要輪流嘗試

TLS 指紋會影響用戶端握手訊息的特徵,例如擴充項目的排列與支援參數組合;它不能取代憑證,也無法讓過期憑證恢復有效。一般 TLS 與 REALITY 對相關參數的要求不同,不要把某種節點的設定方式直接套用到另一種節點。

v2rayN 是用戶端介面,實際握手由目前選用的核心執行;v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。介面上看得到欄位,不代表不同核心都以相同方式支援它。排查時請記下正在使用的核心名稱,並核對服務供應商的要求,不要只比較用戶端名稱。

  1. 確認安全層。編輯節點,查看使用的是 TLS 還是 REALITY,並保留原始訂閱。一般 TLS 出現 x509 錯誤時,請先檢查時間、SNI 與憑證鏈。
  2. 檢查指紋欄位。在節點編輯頁面的 TLS 或 REALITY 區域,尋找「指紋」或 fingerprint。若訂閱明確提供 chrome 等值,請先保留該設定,不要額外修改 ALPN。
  3. 確認核心支援狀況。若記錄顯示不支援某個欄位,請先更新相容的用戶端與核心,再重新匯入訂閱;不要把刪除欄位當成通用的相容方案。
  4. 另外檢查 REALITY。除了 serverName 和指紋,還需核對公鑰、shortId 等供應商提供的參數。不要把公鑰填入憑證路徑,也不要用一般 TLS 的略過驗證開關取代這些參數。

結論:憑證錯誤應優先修正憑證條件

若記錄明確指出憑證過期或網域不相符,請先修正相應問題,再處理指紋相容性。只有確認時間、入口與參數都正確,遠端仍拒絕握手時,才繼續檢查用戶端握手特徵與伺服器端政策。

常見問題與修復後測試

為什麼手機可以連線,電腦卻顯示憑證錯誤?

先確認兩端使用的確實是同一個節點、相同的 SNI 與安全層,再同步電腦時間。接著讓兩端連上同一個網路進行測試;若仍只有電腦失敗,請檢查電腦的信任庫與本機 HTTPS 檢查軟體。不要只因節點名稱相同,就認定設定也相同。

開啟「略過憑證驗證」後可以使用,需要保留嗎?

不建議保留為日常設定。先記下原始憑證錯誤,再關閉該選項,依序修正時間、網域與憑證鏈。若供應商要求長期忽略驗證,請先確認其身分驗證方式,不要直接接受未知憑證。

改成全域模式可以解決 TLS 握手失敗嗎?

無法直接修復憑證。路由規則決定要求要經過哪個出口,TLS 驗證則負責確認該連線的伺服器身分。請先檢查記錄中實際選用的節點;切換模式後錯誤消失,也可能只是流量改走其他出口,原節點仍需修復。

更新訂閱時出現憑證錯誤,也要修改節點 SNI 嗎?

不用先修改節點。請先同步系統時間,並確認訂閱 URL 的網域是否正確。若只有該訂閱網址失敗,請聯絡供應商檢查訂閱網站的憑證;修改現有節點的 SNI,不會改變訂閱網站的 HTTPS 憑證。

最後測試時,請使用同一台裝置、同一個網路與同一個節點,每次只修改一項。重新啟動連線後,分別檢查核心記錄與實際網頁連線,並確認關閉略過驗證後仍正常。若需要求助,提供以下必要資訊即可;請勿公開完整訂閱網址、UUID、密碼或其他驗證參數。

下載v2rayN查看四個平台的安裝檔