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

說明日誌等級與格式,解析連線逾時、交握失敗、時間不同步及連接埠占用等常見錯誤,並提供排查順序。

本文重點

適合遇到「核心啟動失敗」、「節點可以選取但網頁無法開啟」或持續出現交握錯誤的使用者。先分辨客戶端提示、存取日誌與錯誤日誌,再依序檢查本機監聽、DNS、伺服器連線與協定交握。每次只變更一個項目,並以同一筆請求的完整錯誤鏈確認結果;不要只憑單行錯誤就判定節點失效。

先確認日誌來自哪個層級

v2rayN、v2rayNG、v2flyNG 是客戶端;V2Ray、Xray 則是處理連線的核心。訂閱下載失敗可能發生在客戶端的更新程式中,此時核心尚未收到請求。反之,日誌若出現 proxy/vless/outbound、transport/internet 等模組路徑,通常表示請求已進入核心處理階段。這兩類問題的排查起點不同。

v2rayN 可先查看主視窗的日誌區域,再到「設定」→「參數設定」尋找日誌相關選項。v2rayNG 可從主畫面的選單進入「日誌」,並在「設定」中檢查日誌等級;不同版本的選項位置與名稱可能有所不同。請記下客戶端版本,以及啟動日誌中的核心名稱與版本,不要只寫「使用 V2Ray」。v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心,不能只根據應用程式名稱推斷錯誤格式。

日誌來源主要要確認的問題優先檢查項目
客戶端提示設定是否匯入、訂閱是否下載、程序是否啟動訂閱網址、啟動路徑、設定檔產生結果
存取日誌請求是否進入核心、目標為何、選用哪個出站入站連接埠、路由標籤、應用程式代理設定
錯誤日誌連線在哪個步驟中止、底層回傳了什麼錯誤監聽、解析、連線、TLS 與協定驗證

日誌等級與錯誤鏈的閱讀方式

V2Ray/Xray 常見的 loglevel 值包括 debug、info、warning、error、none。排查問題時可暫時設為 info;若資訊不足,再提高至 debug。只顯示 error 會過濾警告與一般資訊;設為 none 後,沒有輸出並不能證明連線正常。

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

以上只是核心設定中的日誌片段,並非可直接取代整份設定檔的內容。若使用客戶端產生設定檔,請優先修改介面中的選項;暫時手動修改產生的檔案,切換節點後可能會被覆寫。存取日誌與錯誤日誌的輸出位置,另由 access、error 等欄位及客戶端的啟動方式決定;提高日誌等級不保證一定會產生磁碟檔案。

  1. 先看時間。記下點擊測試或重新整理網頁的時間,查看前後約 10 秒的記錄,避免混入背景應用程式的請求。
  2. 再看關聯資訊。若有方括號括住的連線編號,請用相同編號串起多行記錄;若沒有編號,則依目標位址、連接埠與時間判斷。
  3. 由外往內讀。failed to process outbound traffic 通常只是外層摘要,後面的 connection refused 或 lookup ... 才更接近直接原因。
  4. 回頭找第一個異常。程序啟動失敗可能導致後續所有測試逾時。先修正啟動錯誤,再分析實際請求為何失敗。
本機連線路由選擇位址解析遠端連線協定交握資料傳輸

流程鏈用來判斷檢查層級,不代表所有協定都會嚴格依照相同順序執行。例如,伺服器位址若已是 IP,就不必先解析該位址;路由規則也可能觸發獨立的網域解析。請以目前的設定與日誌為準。

連線逾時、遭拒與解析失敗

「逾時」表示等待時間超過限制,但無法單憑這個錯誤判斷問題出在本機 DNS、遠端連接埠還是交握回應。先確認錯誤中的目標:它可能是代理伺服器,也可能是直連網站或訂閱伺服器。不要只看到任一處出現 timeout,就更換所有 DNS 與路由規則。

錯誤:i/o timeout

原因與解法:某項讀取、寫入或連線操作未能在期限內完成。先依前面的目標位址判斷所處階段,再分別測試伺服器連接埠與交握;不要直接把逾時歸因於密碼錯誤。

錯誤:connection refused

原因與解法:連線收到拒絕回應,常見原因是目標連接埠沒有監聽或主動拒絕連線。請確認伺服器連接埠與服務狀態;若目標是 127.0.0.1,先檢查本機核心是否已啟動。

錯誤:no such host

原因與解法:目前的解析路徑未取得可用的網域結果。請確認伺服器網域拼寫、系統 DNS 與核心 DNS 設定,並確認解析器本身可連線。

錯誤:failed to find an available destination

原因與解法:所有候選目標都未能建立可用連線,可能與解析、連線或重試次數用盡有關。請展開後續錯誤鏈,依最底層的具體錯誤處理,不要只憑這句錯誤就修改 DNS。

在 Windows 分別測試網域解析與連接埠

以下命令使用保留的示範網域,只用來說明檢查方式。執行前,請將網域與連接埠換成目前節點的實際伺服器位址及連接埠;不要填入瀏覽器要造訪的網站,也不要填 TLS 的 serverName,除非它剛好就是伺服器位址。

Resolve-DnsName server.example.com
Test-NetConnection server.example.com -Port 443

TLS 交握失敗與時間不同步

交握失敗表示連線在安全協商或協定初始化階段中止,但原因不一定是憑證。TCP 可連線後,才依序核對安全類型、伺服器名稱、憑證、傳輸參數與驗證欄位。VLESS 的 UUID 驗證與 TLS 憑證驗證屬於不同層級;修正憑證名稱不代表 UUID 也正確。

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

原因與解法:憑證有效期間與本機目前時間不相符。請先確認系統日期與時間同步,再請伺服器維護者檢查憑證是否過期。

錯誤:x509: certificate signed by unknown authority

原因與解法:目前環境無法信任憑證鏈。請檢查伺服器是否提供完整憑證鏈、本機信任存放區,以及網路中是否有憑證被替換;不要以關閉憑證驗證取代修復。

錯誤:tls: handshake failure

原因與解法:對端中止了 TLS 協商,可能與 SNI、協定政策或伺服器設定有關。請先確認 TLS 是否啟用及伺服器名稱是否正確,再比對伺服器同一時段的日誌。

錯誤:EOF

原因與解法:讀取時連線已結束,單憑這句無法確定原因。請確認錯誤發生在交握還是傳輸階段,核對連接埠、傳輸方式、路徑與驗證資訊,並查看前面的異常記錄。

先校正時間,再核對節點欄位

  1. 在 Windows 中前往「設定」→「時間與語言」→「日期與時間」,開啟自動設定時間並執行同步。可使用 w32tm /query /status 查看時間服務狀態;此命令出錯也可能只是時間服務尚未執行。
  2. 在 Android 中開啟系統「設定」,搜尋「日期與時間」,並啟用自動設定時間。請核對實際日期與時間;單純切換顯示時區並不能校正系統時鐘。
  3. 使用 VMess 時,客戶端與伺服器的時鐘偏差可能導致驗證失敗。兩端都應校正時間,不要只調整手機顯示的時區。VLESS 不適用相同的 VMess 時間驗證說明,但 TLS 連線仍需要正確時間來驗證憑證。
  4. 逐項比對伺服器位址、連接埠、UUID、安全類型、serverName、WebSocket 的 path 與 Host,或 gRPC 的 serviceName。各欄位請依伺服器提供的值填寫,不要反覆隨機修改來試錯。

連接埠占用:先讓核心正常啟動

日誌若出現 bind、address already in use,或 Windows 的 Only one usage of each socket address,請先檢查本機監聽位址。若本機入站建立失敗,即使瀏覽器已啟用系統代理,也沒有可用的連線入口。這與遠端伺服器連接埠是否開放是兩回事。

127.0.0.1
本節範例使用的本機迴路位址
10808
範例本機入站連接埠,請以設定為準
443
範例遠端連接埠,與本機連接埠不同

以日誌顯示 127.0.0.1:10808 綁定失敗為例,請在 PowerShell 中查詢監聽程序。若實際錯誤的連接埠不同,也要同步修改命令中的連接埠。

Get-NetTCPConnection -LocalPort 10808 -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess

Get-Process -Id 1234

第二個命令中的 1234 是示範程序編號,請替換為第一個命令結果中的 OwningProcess。若查不到記錄,也請檢查日誌是否對應 UDP 監聽、程序是否已結束,或錯誤是否來自舊的啟動記錄。

  1. 若監聽者是重複啟動的客戶端,請先從系統匣正常結束多餘的執行個體,再啟動一個執行個體進行驗證。
  2. 若監聽者是需要保留的其他程式,請在客戶端的參數設定中調整本機監聽連接埠,並讓使用手動代理的應用程式同步改用新連接埠。
  3. 修改後請重新啟動核心,確認出現正常的啟動訊息,再測試網頁。不要直接終止不熟悉的系統程序。
  4. 若錯誤是 permission denied 或 access permissions,也可能涉及系統連接埠保留與安全性政策,不能一概歸因於重複程序;也不要長期只靠系統管理員權限執行來掩蓋原因。

如何記錄可重現的排查過程

同時切換節點、修改 DNS、啟用 TUN 並調整路由,即使連線恢復,也無法判斷是哪項修改生效。較可靠的做法是固定一個目標、一個節點與一種連線方式,並將每次測試與日誌時間對照。以下流程適用於桌面端與 Android 上的同類問題。

  1. 記錄基準資訊:記下客戶端版本、核心版本、目前網路、代理連線方式與目標位址,並暫停不必要的背景下載。
  2. 確認啟動狀態:重新啟動連線,先處理設定解析失敗、監聽失敗與缺少資源等啟動階段錯誤。
  3. 送出單次請求:記下時間,只重新整理同一個頁面一次,並保留請求前後約 10 秒的日誌。
  4. 找出最深層錯誤:先判斷問題出在本機監聽、網域解析、遠端連線、TLS 還是協定驗證,再選擇相應的檢查項目。
  5. 一次只改一項:例如只校正時間,或只修正錯誤的連接埠;以相同目標重新測試,比較具體錯誤是否消失,或轉移到下一個階段。
  6. 還原日誌設定:排查完成後,退出除錯等級並記錄有效的修改。分享日誌前,請刪除 UUID、訂閱權杖、完整訂閱網址與個人存取記錄,保留模組名稱與錯誤鏈結構。

如需進一步了解出站標籤與規則的關係,請參閱設定欄位說明。若日誌顯示請求走直連出站,應檢查路由比對,不要將直連目標的連線失敗誤認為代理伺服器連線失敗。

常見問題:哪些日誌不能直接下結論?

日誌一直出現 warning,代表連線不能用嗎?

不一定。請在指定時間存取一個目標,再查看與該次請求相關的記錄。背景重試、遭取消的連線及個別目標失敗都可能產生警告;只有同一請求持續失敗且錯誤可重現時,才適合作為排查依據。

訂閱更新逾時,為什麼核心日誌完全沒有記錄?

訂閱可能由客戶端自行下載。請先查看更新提示,確認訂閱網址仍有效,再檢查目前版本的訂閱更新代理選項。只有現有代理已可正常使用時,才適合嘗試透過代理更新;核心日誌沒有內容,不代表訂閱服務正常。

節點測試成功,但瀏覽器還是無法開啟網頁,接下來要查什麼?

先確認測試類型。TCP 連接埠測試與完整網頁瀏覽並非同一回事。在瀏覽器送出請求時查看存取日誌;若沒有記錄,先檢查系統代理或瀏覽器代理;若有記錄,則查看出站標籤及後續錯誤。

可以只截取最後一行傳給維護者嗎?

建議保留同一連線的完整錯誤鏈、請求時間、客戶端與核心版本,以及故障前後約 10 秒的相關記錄。最後一行的 EOF 或逾時往往只是結果,前面的連線位址與交握錯誤才是判斷排查方向的關鍵。

下載 V2Ray 客戶端