2026-11-06 · 故障排除 · 約 10 分鐘

V2Ray TLS 交握失敗原因:系統時間不同步與 SNI 網域填寫錯誤

憑證過期、x509 驗證失敗等錯誤,多半與裝置時間不準或 SNI 和憑證網域不符有關。本文整理各平台的校時與設定檢查步驟。

本文重點

先從記錄判斷是時間驗證失敗、憑證網域不符,還是一般連線逾時;接著同步系統時間、核對節點 SNI,最後以真實連線延遲和實際瀏覽測試。適用於已匯入訂閱、核心可啟動,但連線時出現 TLS 或 x509 錯誤的情況;若是伺服器憑證到期,則需由節點維護者處理。

判斷 TLS 交握失敗的階段

TLS 交握發生於建立安全連線的過程。連線一般 TLS 節點時,用戶端會與伺服器協商參數,並檢查伺服器憑證的有效期間、簽發鏈與身分。TCP 連接埠可連線,只代表傳輸層可到達,不代表憑證檢查通過,也不代表後續 VMess 或 VLESS 驗證成功。

解析位址 建立傳輸連線 TLS 交握 代理驗證 送出目標請求

先在 v2rayN 底部的記錄區找到這次測試的紀錄。保留最末端的具體原因,不要只截取外層的 failed to process outbound traffic。同一條連線可能經過多層包裝,真正有用的資訊通常在後面的 x509:、tls: 或 dial tcp 附近。

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

原因與解法:裝置目前時間不在憑證有效期間內——先同步日期與時間;若時間正確仍出現錯誤,請維護者檢查憑證起訖時間及實際部署的憑證。

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

原因與解法:用於驗證的伺服器名稱不在憑證允許的名稱中——依節點提供者的設定核對 SNI,並確認伺服器是否因名稱不符而回傳預設網站憑證。

錯誤:x509: certificate signed by unknown authority

原因與解法:憑證鏈無法連結至受信任的根憑證——檢查伺服器的中繼憑證是否完整、裝置的信任存放區是否正常,以及網路中是否有 TLS 檢查設備。

同步系統時間與時區

憑證有效期間是依絕對時間判定,不是看桌面顯示的時區名稱。只有時區設定錯誤、但系統實際時間仍正確,通常不會造成憑證失效;手動調快日期、雙系統的時間處理不一致,或虛擬機從舊快照還原,則可能讓系統實際時間偏移。先確認年份、月份和日期,再檢查分鐘,不要只看右下角顯示的時數。

  1. 記錄時間

    記下記錄中的目前時間與憑證有效期間。若記錄使用 UTC 時間,請先換算再比較:例如 UTC 02:00 和 UTC+8 的 10:00 是同一時間,不能直接判定相差八小時。

  2. 啟用自動校時

    在 Windows 11 開啟「設定」→「時間與語言」→「日期與時間」,啟用「自動設定時間」,確認時區後再按一下「立即同步」。若同步失敗,先檢查目前網路能否連上時間服務。

  3. 確認同步狀態

    在 Windows 終端機執行 w32tm /query /status,查看時間來源與最近一次成功同步的時間。需要手動同步時,請在系統管理員終端機執行 w32tm /resync;若出現錯誤,先不要反覆修改節點參數。

  4. 重新進行測試

    返回用戶端,重新選取目前使用的伺服器並執行真實連線延遲測試。確認新記錄的時間戳記對應這次新連線,不要用舊紀錄判斷修復結果。

在其他平台確認時間來源

443
HTTPS 常用 TCP 連接埠,但不代表所有節點都使用此連接埠
123
NTP 常用 UDP 連接埠,校時受阻時請檢查
8 小時
UTC 與 UTC+8 的顯示時間差,不代表時鐘不準

這些數字用來區分服務用途,不是要把所有節點都改成 443。校時後仍提示憑證已過期,請檢查記錄中的憑證到期時間;調整用戶端時間無法取代伺服器更新憑證。

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

SNI 是 TLS ClientHello 中用來指定目標伺服器名稱的資訊。介面上常標示為「SNI」、「伺服器名稱」或「serverName」,部分教學也稱為偽裝網域。這不是可任意填寫的裝飾文字:在一般 TLS 驗證中,它通常會同時影響伺服器選用哪張憑證,以及用戶端要核對哪個名稱。

欄位用途檢查重點
位址與連接埠指定要連線的遠端入口依訂閱保留網域或 IP,不要因憑證錯誤而自行更改連接埠
SNI / serverName指定 TLS 伺服器名稱,通常用於名稱驗證填入提供者指定的主機名稱,不要加上通訊協定、路徑或連接埠
WebSocket Host參與 HTTP 請求的虛擬主機選擇無法直接取代 SNI;兩者是否相同取決於部署方式
WebSocket path指定 HTTP 升級請求的路徑保留開頭斜線、大小寫及必要參數,不要填入 SNI

例如教學用主機名稱 edge.example.invalid 僅用來說明 SNI 的文字格式,無法用於實際連線。SNI 不應填成 https://edge.example.invalid:443/path,也不能直接貼上整條訂閱網址。請使用節點提供者提供的實際名稱,不要任意換成常見網站的網域。

  1. 確認目前使用的節點

    在 v2rayN 伺服器清單中確認目前選取的項目和訂閱群組,按兩下該項目開啟編輯視窗。先記下位址、連接埠、傳輸方式及傳輸安全類型,避免修改到名稱相同的其他節點。

  2. 核對伺服器名稱

    在傳輸安全設定中檢查 SNI 或伺服器名稱欄位。逐字比對提供者給的參數,並移除前後空格;不要加上 https://、連接埠或路徑。欄位位置會因用戶端版本及通訊協定而異。

  3. 分別檢查 Host

    使用 WebSocket 時,還要檢查 Host 和 path。不要為了排除網域錯誤,把位址、SNI、Host 三處全部改成相同值;入口位址和憑證名稱本來就可能不同。

  4. 儲存並重新測試

    儲存後重新選取該節點,執行一次真實連線延遲測試。記錄錯誤是否從憑證不符變成其他類型,每次只調整一組相關欄位。

在 Android 上,可從 v2rayNG 或 v2flyNG 的節點清單開啟該項目的編輯頁面,再展開 TLS 相關設定核對伺服器名稱。手動修改訂閱節點的內容可能會在下次更新訂閱時被覆寫;若修正後確實有效,請聯絡提供者更新訂閱來源,不要長期依賴本機修改。

區分憑證鏈問題與 REALITY 參數問題

即使裝置時間正確,SNI 也符合設定,仍不能排除伺服器端問題。一般 TLS 服務必須回傳正確的葉憑證及必要的中繼憑證;只部署葉憑證、更新憑證後沒有重新載入服務,或入口負載平衡器中只有部分機器更新,都可能造成同一節點間歇性連線失敗。

v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。遇到 REALITY 等功能相關問題時,請先確認用戶端及核心是否支援該節點設定;換個介面不會自動補足通訊協定功能。桌面端可參考用戶端比較了解 v2rayN 的用途,再確認目前實際使用的核心與版本。

重新測試真實連線延遲與實際瀏覽

修正後先重新測試節點,再測試應用程式。TCPing 成功但真實連線延遲測試失敗,表示問題仍可能出在 TLS、代理驗證或測試目標連線階段。真實連線延遲也會受測試位址與路由規則影響,不能只憑一個耗時數字判斷所有應用程式都正常。

  1. 保留原節點副本或記下重要參數,修正時間後先測試一次;若仍出現網域錯誤,再核對 SNI,避免同時修改太多設定。
  2. 對目前的節點執行真實連線延遲測試,並查看相同時間戳記的記錄。測試方式請參考真實連線延遲說明。
  3. 依照系統代理說明確認應用程式確實透過代理連線。系統代理與 TUN 的接管範圍不同,瀏覽器無法連線不一定代表核心沒有啟動。
  4. 連線至允許使用的 HTTPS 目標,並確認出口資訊。若只有單一目標連線失敗,請檢查路由分流和該目標的憑證,不要立刻再修改節點 SNI。
  5. 需要回報問題時,請提供錯誤原文、發生時間、系統版本、用戶端與核心版本,以及已完成的檢查項目。請隱藏訂閱 token、使用者識別資訊及完整節點憑證資料。

TLS 交握疑難排解常見問題

電腦時間看起來正確,為什麼還是提示憑證過期?

先比對記錄中的絕對時間與憑證有效期間,排除 UTC 顯示差異。若系統時間確實正確,可能是伺服器憑證已過期,或入口仍在使用舊憑證,需由維護者檢查;無法靠用戶端「延長有效期間」。

節點位址是 IP,SNI 也一定要填 IP 嗎?

不一定。連線位址可以是 IP,伺服器名稱仍可使用提供者指定的網域。若實際以 IP 驗證憑證身分,憑證必須包含相符的 IP 位址識別資訊;不要因此自行清空 SNI。

更新訂閱後又不能用了,應該一直修改嗎?

先確認更新後項目的 SNI、傳輸方式和連接埠是否有變化。若訂閱來源持續提供錯誤欄位,請將修改前後的差異回報給提供者,並依照訂閱群組說明確認沒有更新錯群組。

同一個節點手機能用、電腦不能用,應該先檢查什麼?

先比對兩台裝置的系統時間、節點參數和核心版本,再讓兩台裝置連上同一個網路重新測試。若只有電腦出現未知簽發機構錯誤,請檢查系統信任存放區及安全軟體的 HTTPS 檢查設定,不要直接停用憑證驗證。

下載v2rayN