V2Ray 日誌怎麼看?常見錯誤訊息與排查方式

說明日誌等級與輸出位置,解析連線逾時、交握失敗、連接埠占用及憑證異常等常見錯誤,並提供由近到遠的排查順序。

本文重點

適合遇到「用戶端已啟動,但網頁無法開啟」的使用者。先區分用戶端日誌與核心日誌,再依序檢查本機監聽、規則比對、網域解析、遠端連線與通訊協定交握。本文整理可辨識的錯誤訊息、連接埠檢查指令與複測方法;每次只調整一項設定,避免同時改動連接埠、DNS 與節點參數,造成問題更難判斷。

一、先找到日誌:用戶端提示不等於核心錯誤

v2rayN 是圖形化用戶端,實際連線通常由所選核心負責執行;Android 版 v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。用戶端負責訂閱、產生設定與管理程序,核心則負責監聽、路由與轉送。因此,「訂閱下載失敗」和「連線至伺服器逾時」可能出現在不同輸出中,不能只憑視窗最後一則提示就判定節點失效。

在 v2rayN 中,先查看主視窗的日誌或資訊區域,再開啟「設定」→「參數設定」,尋找目前版本提供的日誌等級與記錄選項。不同桌面介面和版本的分組名稱可能不同,不能假設每個版本都有相同按鈕。Android 版可從用戶端的日誌頁面檢查連線過程;若目前介面只顯示簡要訊息,請再查看可用的核心日誌或匯出功能。

二、日誌等級與重現方式:先保留一次完整請求

V2Ray 與 Xray 常見的錯誤日誌等級包括 debug、info、warning、error 和 none。一般可先用 info 觀察連線過程;資訊不足時,短暫啟用 debug,重現問題後再恢復原設定。存取日誌通常有獨立的輸出控制,不會只因為將錯誤日誌調成 debug 就一定出現。

  1. 記下目前的用戶端名稱、實際使用的核心、節點通訊協定、代理模式與本機監聽連接埠,先不要修改節點。
  2. 記下開始測試的時間,關閉持續重新整理的網頁與背景下載,減少無關連線。
  3. 確認核心已重新啟動並套用日誌設定,接著只連線至一個已知目標一次。
  4. 截取同一時段內完整的錯誤鏈,優先查看最底層的具體原因,不要只看外層的「處理失敗」。
  5. 每次只修改一項因素,再重送相同請求,比較錯誤是否從「本機拒絕」變成「遠端逾時」或其他階段。

以下是核心 JSON 中的日誌片段,僅供理解欄位之用,並非完整設定。使用圖形化用戶端時,應優先透過用戶端設定進行調整;直接修改自動產生的執行設定,可能在切換節點或重新啟動後遭到覆蓋。

{
  "log": {
    "loglevel": "info"
  }
}

三、由近到遠排查:先確認請求進行到哪一層

應用程式請求 本機監聽 路由比對 位址解析 遠端連線 通訊協定交握

這套流程是排查模型,不代表所有設定都會嚴格依此順序執行。例如,路由規則可能先觸發 DNS 查詢,代理伺服器網域與目標網站網域也可能透過不同路徑解析。重點是區分「應用程式到本機用戶端」、「用戶端到代理伺服器」及「代理伺服器到目標網站」這三段連線。

如果瀏覽網頁時完全沒有對應日誌,先檢查應用程式是否遵循系統代理、是否略過本機位址,以及目前日誌是否會記錄存取連線。系統代理只會影響遵循該設定的應用程式;啟用系統代理也不代表所有程式的流量都會自動進入核心。TUN 模式還涉及虛擬介面、權限與路由,應另外驗證;避免同時啟用多種流量接管方式,以免難以判斷流量來源。

10808
本文本機 SOCKS 測試連接埠
443
本文遠端 TLS 連接埠範例
15 秒
本文單次請求的等待上限

以上是診斷範例,不代表所有用戶端都應使用相同連接埠。請先在參數設定中確認實際的入站通訊協定與連接埠;若 10808 未提供 SOCKS 入站,以下指令就不能直接照用。在 Windows 終端機中可使用 curl.exe,在 macOS 終端機中則使用 curl。

curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 5 --max-time 15 -I https://example.com/

socks5h 表示由 SOCKS 代理處理目標網域解析,但代理伺服器本身的網域仍可能需要在本機解析。收到 HTTP 回應表示這次請求至少已到達目標服務;即使回傳拒絕或錯誤狀態碼,也不能直接視為代理連線失敗。

四、連接埠占用與連線遭拒:先修復本機入口

錯誤:bind: address already in use

原因:核心嘗試監聽的位址與連接埠已被其他程序占用;Windows 上也可能出現「Only one usage of each socket address」訊息。

解法:找出占用中的程序,正常結束重複啟動的用戶端,或更改本機監聽連接埠,並同步更新應用程式的代理設定。

錯誤:connect: connection refused

原因:連線遭到主動拒絕,常見原因是該位址沒有服務正在監聽;防火牆明確拒絕連線也可能造成此情況,請先辨認錯誤訊息中的目標位址。

解法:若目標是 127.0.0.1,請檢查本機核心與連接埠;若目標是遠端伺服器,請確認伺服器的監聽連接埠與入站規則。

在 Windows 上,可先查詢本機 10808 的監聽資訊,再依輸出的 PID 查找程序。不要一看到連接埠占用就結束不熟悉的系統程序;先確認是否為另一個仍在執行的用戶端執行個體。

netstat -ano -p tcp | findstr ":10808"
tasklist /FI "PID eq 1234"

第二個指令中的 1234 是示範用 PID,請替換成第一個指令輸出的實際程序編號,並確認狀態是否為 LISTENING。macOS 可使用 lsof -nP -iTCP:10808 -sTCP:LISTEN 查看監聽程序。變更連接埠後,請重新啟動核心,再執行前面的單次請求測試。

五、連線逾時與解析失敗:區分位址問題和連線問題

錯誤:dial tcp: lookup …: no such host

原因:待連線的網域沒有取得可用的解析結果;錯誤訊息中的網域可能是代理伺服器,也可能是目標網站。

解法:確認網域拼字與訂閱內容,並確認該次查詢使用的解析器;先測試代理伺服器位址能否解析,再排查目標網站的 DNS 路徑。

錯誤:dial tcp …: i/o timeout

原因:連線未能在指定時間內完成,可能與網路無法連通、封包遺失、防火牆丟棄封包或遠端服務沒有回應有關。

解法:確認錯誤訊息中的位址與連接埠是否屬於預期節點,再使用相同節點切換網路測試;若在多種網路環境下都失敗,請伺服器管理者檢查監聽狀態與存取規則。

錯誤:context deadline exceeded

原因:某項操作超過時限,光憑這句訊息無法判斷問題發生在訂閱下載、DNS 查詢或代理連線階段。

解法:查看前後日誌,先確認操作對象,再分別測試訂閱網址或節點連線;不要把所有逾時都直接歸因於節點故障。

在 Windows 上可執行 nslookup example.com 檢查系統解析結果,但這只能反映目前系統解析器的狀況,無法證明核心設定中的 DNS 路徑也正常。遠端連接埠可使用 PowerShell 的 Test-NetConnection 測試:將下方範例中的網域替換為節點的實際伺服器位址。

Test-NetConnection -ComputerName node.example.net -Port 443

TcpTestSucceeded 為 true,只代表 TCP 連線成功,不代表 VMess、VLESS、TLS 或 REALITY 交握成功。反之,一般 TCP 測試也無法涵蓋所有使用其他傳輸方式的情境。不要直接把伺服器位址改成任意 IP 來「略過 DNS」,否則可能造成 TLS 名稱不符等新問題。

六、憑證異常與交握失敗:先看最內層原因

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

原因:目前時間不在憑證有效期間內,可能是本機時間設定錯誤,也可能是伺服器憑證已過期。

解法:先啟用系統自動校時並確認日期;若時間正確但仍出現錯誤,請由伺服器端更新憑證,並確認服務實際載入了新憑證。

錯誤:x509: certificate signed by unknown authority

原因:憑證信任鏈無法建立,可能是伺服器憑證鏈不完整,也可能是連線經過會替換憑證的網路設備。

解法:檢查伺服器憑證鏈與本機信任環境,必要時切換網路重新測試;不要以停用憑證驗證來取代問題排查。

錯誤:tls: handshake failure

原因:TLS 協商遭到拒絕或未完成,可能是連線至錯誤服務、伺服器名稱不符,或兩端 TLS 參數不相容。

解法:依據伺服器端資料確認位址、連接埠、伺服器名稱與傳輸設定;先還原一組已確認相符的參數,再逐項測試。

錯誤:EOF / connection reset by peer

原因:對端關閉或重設了連線,可能發生在傳輸、交握或正常連線結束時;單獨出現這則訊息,無法證明身分憑證有誤。

解法:根據失敗時間與前後文判斷,確認通訊協定與傳輸參數,並查看伺服器同一時間的日誌。

VMess 與 VLESS 的身分欄位、傳輸設定及安全層參數都必須與伺服器端相符;WebSocket 路徑、Host 與 TLS 伺服器名稱是不同概念。不要因為它們看起來都像網域,就把所有欄位改成相同值。使用 VMess 時也應留意系統時間,先完成時間同步再繼續排查。

七、訂閱、分流與部分連線失敗:常見問題

訂閱更新逾時,但現有節點還能用,需要更換節點嗎?

先不要更換。更新訂閱是用戶端連線至訂閱伺服器,與測試節點不同。請檢查訂閱網址是否有效;若用戶端提供「透過代理更新」功能,可在現有節點正常運作時啟用後再試。不要把訂閱網址當成代理伺服器位址填入節點設定。

測速正常,但瀏覽器還是無法開啟網頁,該先檢查什麼?

先確認瀏覽器請求是否進入本機監聽,再查看命中的出站。測速可能只測試延遲或特定目標,不代表瀏覽器請求使用相同路徑。使用本文指定 SOCKS 連接埠的指令重新測試,可減少系統代理設定造成的判斷誤差。

只有部分網站無法連線,是 DNS 問題還是路由分流?

記錄一個成功目標與一個失敗目標,比較同一時段的目標網域、解析結果及出站標籤。若失敗請求被分流至直連,先確認規則順序;若經代理仍失敗,再檢查解析、交握及目標服務回應,不要直接清空所有規則。

日誌一直出現 warning,需要一直開啟 debug 嗎?

不需要。先判斷警告是否對應實際失敗的請求;瀏覽器取消連線或背景探測也可能留下記錄。短暫啟用 debug,重現一次問題後恢復原本等級,並視需要清除含有存取記錄的舊日誌。

八、回報問題前:保留可重現問題的最少資訊

排錯的目標不是讓日誌完全沒有紅字,而是找出問題發生在哪一段,以及哪項調整能穩定改變結果。若本機監聽正常、伺服器位址可解析且 TCP 可連線,接下來應聚焦通訊協定與交握,而不是反覆重新安裝用戶端。若完全沒有本機監聽,則應先處理啟動失敗與連接埠衝突。

  1. 環境:作業系統、用戶端與核心的實際版本,以及是否啟用系統代理或 TUN 模式。
  2. 設定特徵:通訊協定名稱、傳輸類型,以及是否使用 TLS 或 REALITY;不必公開身分憑證。
  3. 重現步驟:測試時間、使用的本機連接埠、請求目標,以及問題是否能穩定重現。
  4. 比較結果:切換網路、更換已知可用節點或還原原設定後,具體有哪些結果改變。
  5. 日誌內容:提供從請求開始到錯誤結束的一小段去識別化記錄,避免只提供最後一行「連線失敗」。
下載v2rayN桌面版與 Android 用戶端