適用於 v2rayN、v2rayNG 或 v2flyNG 記錄中出現 TLS、x509、交握中斷等狀況。先根據原始錯誤分辨連線逾時與憑證驗證失敗,再依序檢查系統時間、節點位址與 SNI、憑證鏈、指紋及傳輸參數。一般 TLS 和 REALITY 應分開排查;略過憑證驗證無法取代設定修正。
一、先看記錄:交握失敗不一定是憑證錯誤
TLS 位於建立連線與代理協定通訊之間。節點位址解析失敗、TCP 連接埠無法連線,或伺服器關閉連線,都可能讓用戶端最後顯示「連線失敗」。只有記錄明確出現憑證有效期限、主機名稱或信任機構相關錯誤時,才應優先檢查憑證。單獨一行 EOF 或 context deadline exceeded 不足以判斷根本原因。
在 v2rayN 主畫面的記錄區重現一次連線,記下錯誤時間,並往前查看同一連線的內層錯誤;Android 用戶端可從選單中的「記錄」查看。不同版本的記錄入口可能不同,但要取得的是核心原始輸出,而不是測速清單中的「失敗」結果。分享記錄前,請遮蔽訂閱網址、使用者識別資訊及驗證資料。
錯誤:x509: certificate has expired or is not yet valid
原因與解法:本機時間不在憑證有效期間內,或伺服器憑證確實已過期。先同步裝置日期與時間,再確認憑證的生效日及到期日。
錯誤:x509: certificate signed by unknown authority
原因與解法:驗證鏈無法連至受信任的根憑證,可能是缺少中繼憑證、使用自簽憑證,或網路中的憑證遭到置換。請檢查伺服器提供的完整憑證鏈及本機信任環境,不要直接停用驗證。
錯誤:tls: unrecognized name
原因與解法:伺服器可能拒絕了用戶端傳送的 SNI 名稱。請逐字比對節點中的伺服器名稱與伺服器允許的名稱,並確認是否連到錯誤的入口。
錯誤:remote error: tls: handshake failure
原因與解法:對端主動中止交握,可能與 TLS 參數、用戶端憑證要求或伺服器入口政策有關。請搭配伺服器記錄及節點參數排查,不能只憑這一行就判定憑證過期。
二、同步系統時間:日期、時區與憑證有效期限
憑證驗證會比對目前時間與憑證的 notBefore、notAfter。裝置年份錯誤,或從睡眠狀態恢復後時鐘明顯偏移,都可能讓有效憑證被判定為尚未生效或已過期。時區主要影響時間顯示;關鍵在於系統實際時間是否準確,不能只改正介面上的時區就結束檢查。
-
同步電腦時間
在 Windows 11 開啟「設定」→「時間與語言」→「日期與時間」,啟用「自動設定時間」,再於同步區域按一下「立即同步」。確認日期、年份及所選時區。
-
同步 Android 時間
在原生 Android 的「設定」→「系統」→「日期與時間」中,啟用自動設定時間與時區。若各品牌系統的選單位置不同,可在設定中搜尋「日期與時間」,並確認網路校時已生效。
-
重新連線並確認
中斷連線後重新連上節點,再查看新記錄的時間戳記。如果仍顯示憑證過期,請檢查遠端憑證日期;已過期的伺服器憑證須由維護者續期並重新載入。
時間同步失敗時,請先確認裝置能正常連上網路;公司網路可能會限制校時流量。不要為了配合過期憑證而將系統日期調回過去,這會影響其他 HTTPS 連線,也可能掩蓋伺服器未續期的問題。
三、確認 SNI:分清伺服器位址、憑證名稱與 Host
節點的「位址」決定要連線的主機或 IP,「連接埠」決定要連線的服務;SNI 則是在 TLS 交握時傳送的伺服器名稱。在一般 TLS 設定中,明確設定的 serverName 通常也會用於憑證主機名稱驗證。連線位址可以是 IP,但用於驗證的名稱必須符合憑證涵蓋的網域,並符合伺服器入口要求。
| 欄位 | 用途 | 常見填寫錯誤 |
|---|---|---|
| 位址與連接埠 | 指定遠端連線入口 | 將 HTTPS 常用的 443 連接埠當成所有節點的連接埠 |
| SNI / serverName | 選擇 TLS 虛擬主機,並用於一般 TLS 名稱驗證 | 填入 https:// 前綴、路徑或錯誤的子網域 |
| WebSocket Host | TLS 建立後,HTTP 請求中的主機欄位 | 誤以為修改 Host 就能修正憑證名稱不符 |
| WebSocket path | 指定 WebSocket 請求路徑 | 漏掉開頭的斜線,或使用其他節點的路徑 |
| gRPC serviceName | 指定 gRPC 服務名稱 | 誤填為網域,或與伺服器設定的名稱不符 |
在 v2rayN 節點清單中按兩下目標節點,開啟節點編輯視窗,檢查「位址」、「連接埠」及 TLS 區域中的「SNI」或伺服器名稱欄位;在 v2rayNG 中點選節點右側的編輯圖示,確認 TLS 與 SNI 欄位。欄位名稱會隨版本變動,請以該節點的編輯頁面為準,不要到全域路由設定中尋找 SNI。
- SNI 通常填寫純網域,例如
www.example.com,不含通訊協定、連接埠或路徑;此處的網域僅供語法示範,實際值必須使用伺服器提供的名稱。 - 一般憑證中的萬用字元
*.example.com通常可比對a.example.com,但不能因此認定它也涵蓋根網域或多層子網域。 - 服務商所說的「偽裝網域」可能含義不明。請確認它指的是 TLS SNI、HTTP Host,還是 REALITY 的伺服器名稱,不能將三者直接互換。
如果記錄明確指出憑證對某個名稱有效、但不適用於目前名稱,請先確認是否連到錯誤 IP、入口是否回傳預設網站憑證,再修正 SNI。隨意改成知名網站的網域,通常只會造成新的名稱不符。
四、檢查憑證鏈、指紋與 REALITY 參數
根憑證受信任,不代表伺服器傳送的憑證鏈一定完整。一般 TLS 伺服器通常應提供葉憑證及必要的中繼憑證;部分瀏覽器可能透過快取補齊中繼憑證,因此「瀏覽器能開啟」不代表代理核心一定能驗證相同的憑證鏈。也請確認測試的是相同位址、連接埠與 SNI,而不是網域的另一個入口。
- 憑證鏈錯誤:請伺服器維護者檢查完整憑證鏈檔案,以及續期後是否已載入。本機信任存放區過舊時,請更新系統與用戶端後再測試。
- 指紋不符:支援 uTLS 的核心可透過
fingerprint選擇 ClientHello 特徵。這不是憑證指紋,也不是憑證信任開關;請先使用節點要求的值。 - REALITY 節點:伺服器名稱、公鑰及 shortId 等參數都必須符合伺服器設定。不同版本的欄位名稱可能不同,建議優先匯入維護者提供的完整設定。
- 核心支援:v2rayNG 使用 Xray,v2flyNG 使用 V2Fly;兩者支援的安全性與傳輸選項並不完全相同。需要 REALITY 的節點,無法只靠在不支援的核心中變更 TLS 選項來連線。
v2rayN 是用戶端介面,實際連線行為也取決於節點使用的核心。升級介面後,如果仍在執行舊版核心,新參數可能無法如預期生效。請確認記錄中的核心名稱與啟動版本,再依節點需求更新;不要把「更換指紋後偶爾成功」當成已找出憑證問題。
五、為什麼不該長期使用 allowInsecure
在一般 TLS 中,allowInsecure 用來允許不安全的憑證驗證方式。啟用後通常會略過正常的憑證鏈與主機名稱檢查,但不代表連線退回明文:加密可能仍然存在,問題在於用戶端無法依正常驗證流程確認對端身分。因此,連線恢復不代表設定已正確。
狀況:啟用略過驗證後可以連線
原因與解法:問題可能與憑證驗證有關,但仍無法分辨是時間偏差、名稱錯誤、憑證鏈不完整,還是憑證遭到置換。請恢復驗證,依照記錄逐項修正;不能因此認定對端可信。
狀況:啟用略過驗證後仍然逾時
原因與解法:連線可能尚未進入憑證驗證階段,或存在傳輸及入口政策問題。請檢查位址、連接埠、網路連通性及伺服器記錄,不要繼續啟用無關選項。
在經授權的受控測試環境中,維護者有時會暫時調整驗證選項以縮小問題範圍,但不應在不可信任的網路上將此方式當成日常連線方案。尤其涉及帳號登入、取得訂閱或傳送敏感請求時,應先建立可驗證的連線。使用私有憑證體系時,應透過核心支援的信任設定正確建立信任,而非永久略過驗證。
- 儲存原始節點設定或截圖,記下原先的驗證選項,避免測試後忘記還原。
- 在啟用正常憑證驗證的狀態下重現一次,保留完整的內層錯誤。
- 每次只修改一個有依據的欄位,例如校準時間或修正 SNI,然後重新連線。
- 修正完成後,確認
allowInsecure為false,或介面中的「略過憑證驗證」已關閉。
六、重新測試清單:憑證驗證通過後仍無法開啟
TLS 交握成功只是其中一個階段。接下來的 WebSocket 交握、gRPC 服務比對、代理協定驗證及目標網域解析仍可能失敗。如果新記錄已不再出現 x509 錯誤,而改為 HTTP 狀態碼異常或驗證失敗,就應針對相應層級排查,不要反覆修改已設定正確的 SNI。
時間已同步,為什麼仍顯示憑證過期?
查看新產生的記錄,確認不是舊資料;再請維護者檢查目前入口實際回傳的憑證。續期檔案已產生但服務尚未重新載入,或負載平衡器中的某個入口仍使用舊憑證,都可能造成錯誤持續出現。
手機可以連線,電腦不行,需要修改 SNI 嗎?
先比對兩端的完整節點參數、實際使用的核心與時間,再比較所連接的網路。確認電腦沒有遭安全軟體置換憑證,也沒有連到不同入口;不能只憑裝置差異就判斷 SNI 設定錯誤。
WebSocket 回應 400 或 404,還是 TLS 問題嗎?
收到 HTTP 回應通常表示已進入 HTTP 層,接著應檢查 WebSocket Host、path 及反向代理規則。同時確認回應是否來自預期的服務,避免把預設網站的回應誤認為節點正常。
更新訂閱後,剛修改的參數又變了?
更新訂閱可能會覆寫節點欄位。可先複製節點進行獨立測試,記下修正項目,再請維護者修正訂閱來源。不要長期依賴每次更新後手動重新填寫參數。
回報疑難時需要提供哪些資訊?
請提供用戶端與核心版本、系統時間、錯誤發生時間、已遮蔽敏感資訊的原始記錄,以及是否使用 TLS 或 REALITY。說明更換網路後結果是否不同,請勿公開完整分享連結與訂閱憑證。
最後一次測試時,請保持憑證驗證開啟,使用同一個節點連續完成連線、存取目標網站及中斷後重新連線。只有錯誤消失且實際請求正常,才算完成本次修復。更多基礎欄位請參閱術語手冊;若要區分網路、代理連線與核心問題,可接著查看技術參考。