適合處理 v2rayN、v2rayNG 與 v2flyNG 中出現的 TLS 交握失敗、憑證過期、網域不符及連線被關閉問題。先校準系統時間,再核對節點位址、SNI 與傳輸層設定,最後搭配核心日誌判斷是本機設定、網路攔截,還是伺服器憑證異常。
先依 TLS 交握順序定位故障階段
TLS 位於傳輸連線之上。用戶端先解析伺服器位址並建立 TCP 連線,接著傳送包含通訊協定版本、加密套件與 SNI 的 ClientHello。伺服器回傳憑證後,Xray 或 V2Fly 核心會檢查憑證有效期限、簽發鏈與網域。任何一項檢查失敗,VMess 或 VLESS 的驗證資料都尚未進入正常交換階段,因此更換 UUID、alterId 或路由規則通常無法解決憑證錯誤。
排查時先保存一份完整的核心日誌,不要只看介面上的「連線失敗」。v2rayN 可從主視窗底部的日誌區,或「說明」→「檢視日誌」檢查近期輸出;v2rayNG 可開啟左上角選單中的「日誌」查看核心錯誤。不同核心版本的用詞可能略有差異,但 x509、certificate、handshake、server name 等關鍵字已足以判斷故障方向。
錯誤:x509: certificate has expired or is not yet valid
原因與解法:本機時間超出憑證有效期間,或伺服器憑證確實已過期。先自動同步日期、時間與時區,再重新連線;若多台裝置同時發生錯誤,請聯絡設定提供者更新憑證。
錯誤:x509: certificate is valid for another domain, not current domain
原因與解法:SNI 指定的網域不在憑證的主體別名中。將 TLS 的 serverName 改為憑證涵蓋的網域,不要直接照填伺服器 IP。
錯誤:remote error: tls: handshake failure
原因與解法:伺服器拒絕交握,常見原因包括 SNI、連接埠、TLS 開關或傳輸方式不一致。逐項比對伺服器設定,確認沒有混用 WS、gRPC、TCP 等傳輸參數。
錯誤:tls: failed to verify certificate
原因與解法:憑證鏈、網域或有效期限驗證未通過。優先修正時間與 SNI,不要把關閉憑證驗證當成一般處理方式。
校準系統時間、時區與網路時間
憑證包含明確的生效時間與失效時間,驗證時會使用裝置目前的時鐘。系統時間即使只差幾分鐘,也可能讓剛簽發或剛續期的憑證落在「尚未生效」區間。休眠後時鐘漂移、雙系統寫入不同的時鐘標準、虛擬機器暫停後恢復,以及路由器阻擋時間同步,都可能觸發這類錯誤。
Windows 依序開啟「設定」→「時間與語言」→「日期與時間」,啟用自動設定時間與自動設定時區,再執行立即同步。macOS 可在「系統設定」→「一般」→「日期與時間」中啟用自動設定。Android 進入系統「設定」→「系統」→「日期與時間」,同時開啟網路提供的時間與時區。Linux 應確認系統時間、時區及時間同步服務都運作正常。
-
記錄原始錯誤
中斷目前連線,清除日誌顯示後重新連線一次,保留包含 x509、TLS 與目標網域的完整錯誤行。
-
核對日期與時區
檢查年份、月份、日期、時、分與時區。只調整時鐘而未修正時區,重新啟動後仍可能再次偏移。
-
執行時間同步
啟用系統自動設定時間,並手動觸發一次同步。若同步失敗,先切換到能正常存取網路時間服務的連線。
-
重新啟動用戶端
完全結束 v2rayN、v2rayNG 或 v2flyNG,再重新啟動核心,避免舊連線繼續沿用先前的交握狀態。
-
交叉驗證裝置
在另一台時間準確的裝置上測試相同設定。若只有單台裝置失敗,優先繼續檢查該裝置的時間與憑證環境。
核對伺服器位址、SNI 與憑證網域
伺服器位址負責將連線送往目標主機,SNI 則在 TLS 交握階段告知伺服器應回傳哪一張憑證。兩者可以相同,也可以不同。例如伺服器位址可能是 IP,而 SNI 必須填寫憑證涵蓋的網域。若將 IP 同時填入 SNI,通常會出現網域不符錯誤,因為公開憑證一般只涵蓋網域。
檢查憑證網域時,要區分主網域與子網域。憑證涵蓋 example.net,不代表一定涵蓋 edge.example.net;通配符憑證涵蓋一級子網域時,也不會自動涵蓋更深層級。節點提供的 host、SNI、serverName 與偽裝網域可能各自負責不同用途,不應因文字相似就全部填成同一個值。
| 設定項目 | 用途 | 正確填寫原則 | 常見錯誤 |
|---|---|---|---|
| 位址 | 用於 DNS 解析並建立連線 | 填寫節點提供的網域或 IP | 貼上協定前綴、路徑或多餘空格 |
| 連接埠 | 指定遠端服務的監聽位置 | 與伺服器實際監聽的連接埠一致 | 誤填成本機代理連接埠 10808 |
| SNI | 選擇 TLS 憑證與虛擬主機 | 填寫憑證涵蓋且伺服器要求的網域 | 填寫 IP 或無關網域 |
| Host | 用於 HTTP、WS 或其他傳輸層請求 | 依節點說明填寫,不要強行與 SNI 合併 | 將完整網址連同路徑一併填入 |
| 傳輸安全 | 決定是否啟用 TLS 或相應的安全層 | 與伺服器部署方式完全一致 | 伺服器已啟用 TLS,用戶端卻選擇 none |
錯誤:x509: cannot validate certificate for an IP because it does not contain any IP SANs
原因與解法:用戶端以 IP 驗證憑證,但憑證未包含該 IP。保留 IP 作為連線位址,並在 SNI 或 serverName 中填寫憑證對應的網域。
錯誤:EOF 或 connection closed by peer
原因與解法:遠端在交握期間直接關閉連線。先確認連接埠與 TLS 開關,再檢查 SNI、傳輸方式,以及網路是否將連線送到錯誤的服務。
訂閱節點中的 TLS 欄位通常由訂閱內容產生。手動修改後再次更新訂閱,修改內容可能會被覆蓋。若同一群組內所有節點都出現相同錯誤,應先更新訂閱並確認內容是否已修正;若只有一個節點失敗,則較可能是該節點的憑證、網域或伺服器監聽設定異常。
正確理解 allowInsecure 的用途
allowInsecure 控制用戶端是否略過部分憑證驗證。正常連線至公開服務時應保持關閉,讓核心繼續檢查憑證鏈、有效期限與網域。啟用後即使連線暫時恢復,也只能表示問題位於憑證驗證環節,不能證明 SNI、憑證部署或系統時間已設定正確。
- 日常使用:保持 allowInsecure 關閉,修正憑證、系統時間與 SNI。
- 短時間診斷:只有在充分了解風險且需要確認故障層級時才暫時測試,完成後立即恢復關閉。
- 自簽憑證環境:優先將受信任的根憑證正確安裝到受控裝置,而不是長期略過驗證。
- 訂閱設定:不要批次為所有節點啟用此選項,這會掩蓋各節點不同的憑證問題。
REALITY 設定也可能出現與 serverName 相關的問題,但其安全層參數不能直接套用一般 TLS 節點的設定。VLESS 只是代理協定,TLS、XTLS Vision 或 REALITY 屬於傳輸安全設定;排查時應先確認節點採用哪一種安全方式,再檢查對應欄位。不要將一般 TLS 的憑證處理方式機械套用到不同安全層。
在 v2rayN、v2rayNG 與 v2flyNG 中逐項複查
桌面版與 Android 版的介面名稱有所不同,但需要核對的欄位相同:位址、連接埠、傳輸協定、傳輸安全、SNI、Host、路徑及核心日誌。先複製原始設定作為備份,每次只修改一項並重新測試,才能判斷究竟是哪個欄位造成變化。
-
檢查核心設定
在 v2rayN 中開啟「設定」→「參數設定」→「Core 類型」,確認節點由預期的核心處理。一般 Xray 設定不要誤切換至不相容的核心。
-
編輯節點欄位
雙擊 v2rayN 節點進入編輯介面,依序檢查位址、連接埠、傳輸協定、TLS、安全類型與 SNI。不要在位址欄中加入 https:// 前綴。
-
檢查 Android 設定
在 v2rayNG 或 v2flyNG 的設定清單中點選目標設定並進入編輯,核對「偽裝網域」「SNI」或同義欄位,儲存後重新啟動連線。
-
更新訂閱內容
開啟訂閱群組並執行更新,再比較失敗節點的欄位是否發生變化。訂閱更新失敗與節點 TLS 失敗屬於不同的連線流程,應分別查看日誌。
-
關閉舊連線
停止用戶端代理,等待舊連線釋放後再啟動。桌面版也要確認系統代理指向目前的本機監聽連接埠,而不是已結束的舊執行個體。
-
比較其他節點
測試同一訂閱中的另一個節點。若所有節點都失敗,請檢查本機環境;若只有單一節點失敗,則重點檢查該節點的憑證與伺服器設定。
路由分流通常不會改變遠端憑證內容,但可能決定連線從哪個出站發起。若規則將節點網域送往不可用的代理出站,可能表現為逾時或連線關閉。為排除分流影響,可暫時切換至直接且明確的測試規則;確認 TLS 恢復後,再還原原有路由設定並逐條檢查命中日誌。
常見問題與最終排查清單
完成時間、SNI 與憑證驗證檢查後仍然失敗的連線,應繼續從網路層與伺服器端排查。DNS 污染可能將網域解析到錯誤位址,透明代理可能改寫連線路徑,伺服器反向代理也可能未載入續期後的憑證。此時需要結合解析結果、連接埠與伺服器日誌判斷,不要繼續反覆修改 UUID。
手機可以連線,電腦卻一直提示憑證時間錯誤?
優先檢查電腦的年份、時區與自動時間同步。同步完成後完全結束 v2rayN,再啟動核心進行測試;不要只中斷節點後立即重新連線。
SNI 留空可以讓用戶端自動判斷嗎?
當連線位址就是憑證網域時,部分設定可以使用位址作為預設 serverName;若位址是 IP、前置網域或特殊部署入口,則應依節點說明明確填寫 SNI。
更新訂閱後所有節點同時交握失敗怎麼辦?
先確認系統時間,再查看訂閱是否變更了傳輸安全、SNI 或連接埠。若多台裝置在同一時間出現相同錯誤,通常需要設定提供者檢查憑證與伺服器部署。
啟用 allowInsecure 後可以使用,能一直開著嗎?
不建議。它只適合作為短時間的定位手段。應恢復嚴格驗證,並修正網域匹配、憑證鏈或時間問題。
TLS 錯誤與 VMess、VLESS 金鑰有關嗎?
憑證驗證發生在代理協定驗證之前。若日誌明確指向 x509、certificate 或 server name,請先處理 TLS;交握成功後再檢查 UUID、加密方式與流控參數。
- 確認裝置日期、時間與時區準確,並成功執行自動同步。
- 確認節點位址沒有協定前綴、路徑、空格或複製錯誤。
- 確認遠端連接埠與伺服器監聽設定一致,沒有誤填 10808 等本機連接埠。
- 確認 SNI 對應憑證涵蓋的網域,而不是直接填寫未受憑證涵蓋的 IP。
- 確認 TLS、WS、TCP、gRPC 等傳輸參數與伺服器一致。
- 保持 allowInsecure 關閉,透過日誌定位實際憑證錯誤。
- 確認訂閱更新沒有覆蓋手動修正,必要時複製設定後單獨測試。
- 比較另一台裝置與另一個節點,區分本機問題和伺服器端問題。
排查順序應保持穩定:先讀取日誌,再同步時間,接著核對位址、連接埠、SNI 與傳輸安全,最後檢查憑證鏈及伺服器狀態。依此順序處理,可避免將憑證故障誤判為節點驗證、系統代理或路由規則問題,也能減少無效的批次修改。