2026-09-29 · 故障排除 · 約 9 分鐘

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

V2Ray 憑證錯誤多半與裝置時間不同步、SNI 和偽裝網域不符,或誤用 allowInsecure 有關。依序檢查即可排除握手問題。

本文重點

適用於在 v2rayNG 使用一般 TLS 的節點:先從記錄檔判斷是憑證驗證失敗還是連線逾時,再檢查 Android 自動校時、節點的伺服器名稱及憑證信任鏈。本文也說明 v2rayN 的檢查位置,以及為何不應長期略過憑證驗證。若節點使用 REALITY,請改查其專屬驗證參數,不要直接套用一般 TLS 的憑證排除步驟。

1. 開啟記錄檔,確認失敗發生在哪個階段

在 v2rayNG 主畫面開啟側邊選單,選擇「記錄檔」。記下目前時間,回到主畫面停止連線,再啟動同一個節點並載入一次網頁。接著回到記錄檔,只查看這次操作後新增的錯誤。不同版本的選單配置可能不同,請以「記錄檔」入口為準。

不要只截取最後一行 failed to process outbound traffic。這通常是上層彙整訊息,真正原因往往接在 x509、tls 或 dial tcp 之後。請保留從連線目標到最內層原因的完整錯誤鏈,才能判斷該調整時間、欄位,還是聯絡伺服器維護者。

解析節點位址建立連線TLS 握手憑證驗證代理通訊

此流程適用於一般 TCP 加 TLS 的節點。若出現 connection refused 或 i/o timeout,可能還沒取得憑證;若出現 x509 錯誤,通常已進入憑證驗證階段。延遲測試有數值,不代表 TLS 驗證已通過,尤其是只測試 TCP 連線的方式。

2. 先同步 Android 日期與時間

開啟 Android「設定」→「系統」→「日期和時間」,啟用「自動設定時間」和「自動設定時區」。部分裝置會將選項放在「更多設定」或「一般管理」中,也可以在系統設定搜尋「日期和時間」。完成後回到 v2rayNG,停止連線再重新啟動,讓核心重新進行握手。

  1. 檢查日期與年份:裝置長時間關機或手動調整時間後,時間可能落在憑證有效期限之外。即使誤差不大,剛續約的憑證也可能因幾分鐘的差距而被判定尚未生效。
  2. 確認時間確實已同步:開啟自動設定不代表同步成功。請先確認裝置網路正常,再核對系統顯示的日期和時間。
  3. 查看記錄檔中的兩個時間:有效期限錯誤通常會列出用戶端目前時間,以及憑證的起訖時間。若目前時間明顯不正確,先修正裝置時間;若時間正確但憑證已過期,則應由伺服器端續約。

時區會影響畫面顯示的時間,憑證驗證比較的則是實際時間點。單純將時區從一個地區切換到另一個地區,通常無法修正系統時鐘錯誤。不要為了暫時通過過期憑證驗證而回調日期,這也會影響訂閱請求及其他安全連線。

3. 核對伺服器位址、SNI 與傳輸 Host

在 v2rayNG 節點清單中,點選該節點的編輯圖示,檢查「位址」、「連接埠」、「TLS」及「SNI」或「伺服器名稱」欄位;若使用 WebSocket,再檢查「Host」和「路徑」。儲存前先保留原始設定。訂閱節點也可以複製一份作為對照,避免一次測試就覆蓋所有節點。

欄位實際用途檢查方式
位址與連接埠決定連線至哪個服務入口依節點提供者提供的資訊填寫,不要因憑證錯誤而自行更換連接埠
SNI / serverName用於 TLS 伺服器名稱指示,通常也是憑證名稱驗證的依據填入提供者指定的名稱,且憑證必須涵蓋該名稱
WebSocket Host用於 HTTP 請求及反向代理的站點路由對照傳輸設定檢查,不要將它當作憑證驗證開關
WebSocket 路徑決定反向代理要轉送至哪個服務檢查開頭斜線、大小寫及完整路徑

「偽裝網域」並不是精確的欄位名稱。有些說明會把 SNI 和 HTTP Host 都稱為偽裝網域,但兩者位於不同層。它們可以相同,也可能依伺服器架構分別設定;請逐項核對,不要看到兩個網域就強行改成一致。

如果節點位址填的是 IP,而憑證只包含網域,就必須使用正確的伺服器名稱進行驗證。只有憑證包含對應 IP 時,才可能通過 IP 驗證。SNI 欄位通常填純主機名稱,不要加上 https://、連接埠或路徑。留白時的預設行為也會受核心和節點類型影響,請勿靠猜測設定。

443
HTTPS 常見連接埠;節點設定仍以實際資訊為準
TLS 1.2
常見協商版本之一,不是節點協定名稱
TLS 1.3
另一種常見版本,排除問題時不必隨意指定版本

連接埠是 443,不代表一定啟用了正確的 TLS 服務。若連到錯誤的反向代理入口,也可能收到其他站點的憑證。VMess、VLESS 是代理協定,TLS 則是傳輸安全層;單純將 VMess 改成 VLESS,無法修正錯誤的憑證名稱。

4. 根據錯誤原文區分憑證與伺服器端問題

以下片段可能出現在較長的錯誤鏈中,前後包裝訊息會隨核心版本而異。請依據最明確的錯誤處理,不要只看到「握手失敗」四個字就決定修改方向。

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

原因:目前時間不在憑證有效期限內。解決方式:先同步裝置時間;若時間正確,請維護者確認伺服器實際提供的憑證是否已過期,以及續約後是否已重新載入。

錯誤:x509: certificate signed by unknown authority

原因:目前的驗證器無法建立可信任的憑證鏈,可能是缺少中繼憑證,或使用了不受信任的簽發機構。解決方式:請維護者檢查完整憑證鏈;只有在明確的自建環境中,才依核心支援的方式設定已確認的信任憑證。

錯誤:x509: cannot validate certificate for

原因:若後文包含 because it doesn't contain any IP SANs,表示目前是以 IP 進行驗證,但憑證沒有對應的 IP 項目。解決方式:核對提供者指定的伺服器名稱,不要直接把連線 IP 填入 SNI。

錯誤:remote error: tls: handshake failure

原因:對端拒絕了握手,可能與 SNI、TLS 參數或伺服器端政策有關,不能只憑這一行就判定憑證過期。解決方式:先還原訂閱提供的原始設定,再由維護者比對同一時間的伺服器端記錄,找出拒絕原因。

錯誤:tls: first record does not look like a TLS handshake

原因:目標回傳的資料不像 TLS 記錄,常見原因是連到未加密服務或錯誤的連接埠。解決方式:核對連接埠和傳輸安全類型,確認該入口確實提供 TLS;不要直接關閉 TLS 碰運氣。

如果時間和名稱都正確,而且同一節點在不同網路下都出現相同的憑證錯誤,應優先檢查伺服器端的憑證設定。相反地,若只有某個 Wi-Fi 網路連線失敗,請先完成該網路的登入驗證,再檢查是否有網路端攔截。瀏覽器能開啟某個 HTTPS 網頁只能作為參考,無法證明節點核心看到的憑證鏈完全相同。

5. 保持關閉 allowInsecure,分別處理 TLS 與 REALITY

回到節點編輯頁,找到「略過憑證驗證」、「允許不安全連線」或對應的 allowInsecure 選項,一般使用時請保持關閉。這個選項會放寬伺服器身分驗證,不會補齊憑證鏈、續約憑證,也無法讓錯誤的傳輸入口變正確。

{
  "tlsSettings": {
    "allowInsecure": false
  }
}

這只是一般 TLS 設定中的單一欄位示意,並非可直接匯入的完整節點。使用圖形介面時,請優先修改對應的開關;不要將這段內容貼上並覆蓋整個設定檔。開啟略過驗證後暫時可以連線,只能說明問題可能出在驗證環節,不代表已連上預期的伺服器。

6. 儲存後一次只改一項,再完整測試

每次只調整一項:先檢查時間,再檢查伺服器名稱,最後檢查憑證鏈。儲存節點後,停止並重新啟動連線,再次發出請求並查看新記錄檔。若同時更改 DNS、路由分流、連接埠和 TLS 開關,即使恢復連線,也無法判斷是哪項變更生效。

  1. 保留一份原始節點,並記下用戶端版本、核心版本和錯誤發生時間,方便重現問題。
  2. 保持憑證驗證開啟,前往原先無法連線的目標,確認顯示的不是快取頁面。
  3. 檢查新記錄檔是否仍出現同類的 x509 或 tls 錯誤,不要只依據單次延遲測試結果判斷。
  4. 更新訂閱後再次核對欄位。若手動修正遭到覆蓋,請訂閱維護者修正來源設定。

在桌面版 v2rayN 中,按兩下節點開啟編輯視窗,核對 TLS 的伺服器名稱及允許不安全連線選項;在記錄檔區域或記錄檔視窗查看核心輸出。Windows 可透過「設定」→「時間與語言」→「日期與時間」同步時間。選單名稱可能隨版本不同,但檢查時間、憑證名稱及信任鏈的原則不變。

7. TLS 憑證錯誤排除常見問題

時間已自動同步,為什麼仍顯示憑證過期?

先確認錯誤記錄中的目前時間是否正確。若正確,再核對憑證到期時間。伺服器可能已續約憑證檔案,但反向代理仍載入舊憑證;請將錯誤時間提供給維護者,檢查實際監聽的入口,不要繼續調整手機日期。

SNI 和 WebSocket Host 一定要填相同網域嗎?

不一定。SNI 用於 TLS 層,Host 用於 HTTP 路由。開啟節點編輯頁,分別核對提供者的原始參數;若沒有明確的設定依據,不要用其中一個欄位覆蓋另一個。

略過憑證驗證後就能連線,可以一直開著嗎?

不建議。先關閉該選項,再依錯誤訊息檢查裝置時間、伺服器名稱和憑證鏈。若只有關閉驗證才能連線,應請維護者修正憑證或提供明確可信的設定,不要長期略過身分驗證。

節點可以連線,只有更新訂閱時出現憑證錯誤,該怎麼辦?

先區分訂閱的 HTTPS 請求和節點的 TLS 握手。這是兩條不同的連線,可能使用不同的網路路徑和信任機制。請確認訂閱網址有效、裝置時間正確,並查看更新時的錯誤訊息;修改節點 SNI 通常無法直接修正訂閱伺服器的憑證問題。

更換 DNS 就能解決所有 TLS 握手失敗嗎?

不能。只有解析錯誤或解析到錯誤入口時,DNS 才是重要線索。若明確顯示憑證過期或名稱不符,應先修正相關設定;使用自訂路由分流時,也要確認測試請求確實經過正在排查的節點。

下載用戶端v2rayNG / v2rayN