V2Ray 日誌怎麼看?access 與 error 常見錯誤訊息解析

說明 loglevel 各級別用途,解析連線逾時、交握失敗、DNS 解析失敗等常見日誌,並教你從日誌判斷問題所在。

本文重點

排查日誌時,先確認實際執行的核心,再區分存取紀錄與診斷資訊。本文適合遇到 v2rayN 網頁無法開啟、v2rayNG 連線逾時或 v2flyNG 解析失敗的使用者:從可重現的請求開始,依序檢查本機入站、路由出站、DNS、TCP 與 TLS,避免看到一則 error 就反覆更換整份訂閱。

1. access 與 error 日誌各記錄哪些資訊

v2rayN 是用戶端介面,V2Ray 與 Xray 則是處理連線的核心;日誌格式取決於實際啟動的核心及其版本。v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心。開始排查前,先從啟動輸出記下核心名稱與版本,不要只記用戶端名稱。

紀錄類型主要內容無法據此證明的事項
access連線來源、目標位址,以及部分格式中的入站與出站標籤。出現 accepted 不代表目標網頁已成功回傳。
error核心啟動、建立連線、解析與傳輸過程中的診斷資訊。檔名包含 error,不代表裡面的每一行都是錯誤等級。
用戶端執行輸出可能包含核心標準輸出、用戶端事件與訂閱請求資訊。訂閱更新失敗不一定代表代理出站連線失敗。

例如存取日誌出現 accepted tcp:example.com:443,通常表示本機入站已接收這項請求。後續仍可能發生節點連線逾時、TLS 驗證失敗或遠端關閉連線。若日誌包含 [入站標籤 -> 出站標籤],可用來確認路由分流;標籤名稱則取決於目前的設定。

2. loglevel 怎麼選:日常用 warning,重現問題時暫用 debug

V2Ray 與 Xray 常見的日誌等級有 debug、info、warning、error、none。從 debug 到 error,輸出內容會逐步減少;none 則用來關閉這類診斷輸出。存取日誌有獨立的輸出設定,不能只根據 loglevel 判斷是否啟用了 access 日誌。

在 v2rayN 的「設定」→「參數設定」中,尋找目前版本提供的日誌等級選項,儲存後重新啟動核心。不同介面的分類名稱可能不同,請以目前使用的介面為準。使用 v2rayNG 或 v2flyNG 時,也先在設定中尋找日誌相關選項,再開啟日誌檢視畫面;不要把訂閱清單當成核心執行日誌。

以下是核心設定中的 log 欄位範例,並非可直接啟動的完整設定檔,僅用來說明欄位關係。用戶端管理的設定應優先透過介面修改;手動變更產生的檔案,可能在下次啟動時被覆寫。

{
  "log": {
    "access": "C:/Temp/v2ray-logs/access.log",
    "error": "C:/Temp/v2ray-logs/error.log",
    "loglevel": "debug"
  }
}

範例使用 Windows 絕對路徑。請先建立 C:\Temp\v2ray-logs,並確認啟動核心的帳戶具有寫入權限。啟用檔案輸出後,部分內容可能不再顯示於原本的主控台視窗,請一併檢查指定檔案。完成一次問題重現後,請恢復為 warning,避免日誌持續增加。

3. 連線逾時或遭拒:先確認失敗的位址

以下各項列出的是常見日誌中的錯誤片段,並非固定格式的完整日誌範本。模組前綴、套件路徑與包裝層數會隨核心版本而異。閱讀時先找出最內層的原因,再確認它對應的是節點伺服器、DNS 伺服器,還是目標網站。

錯誤:dial tcp …: i/o timeout

原因:無法在期限內與日誌指定的位址建立 TCP 連線。

解法:先確認失敗位址是否為節點端點,再檢查節點連接埠、目前網路及伺服器端入站設定;若位址屬於目標網站,則應檢查遠端出口至目標的連線狀況。

錯誤:connect: connection refused

原因:連線遭到明確拒絕,常見原因是目標連接埠沒有服務監聽,或網路設備主動拒絕連線。

解法:確認錯誤訊息中的 IP 與連接埠;若為 127.0.0.1:10808,先確認本機核心已啟動,且監聽連接埠設定一致,不要先更換遠端節點。

錯誤:context deadline exceeded

原因:某項操作超過時限,僅憑這行訊息無法判斷問題發生於 DNS、連線撥號或交握階段。

解法:保留前後相關日誌,找出同一連線的模組名稱與更內層錯誤,再判斷問題發生階段。

Windows 可能會以包含 connectex 的系統錯誤訊息顯示連線遭拒,而非上述英文文字;排查原則相同。逾時表示等待未完成,遭拒則表示收到否定回應;兩者都不能直接推斷 VMess 或 VLESS 設定一定有問題。

10808
本文的本機代理測試連接埠,請以實際監聽設定為準
443
HTTPS 常用連接埠,不代表所有節點都使用此連接埠
53
傳統 DNS 常用連接埠;加密 DNS 另計

判斷重點:錯誤位址比「逾時」兩字更有用

先將錯誤位址分類為本機監聽、節點端點或目標服務,再只檢查該段連線。節點使用其他連接埠時,請以訂閱設定為準,不要一律改成 443。

4. TLS 交握失敗:分別檢查憑證、網域與系統時間

TLS 交握發生在底層連線建立之後,但交握失敗的原因不只有憑證。若以為 TCP 連得上就代表節點完全可用,便可能忽略 SNI、傳輸路徑與伺服器端參數不一致等問題。使用 VLESS 的節點也不一定採用相同的安全層;請先確認設定實際使用 TLS、REALITY 或其他組合。

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

原因:憑證有效期限與目前系統時間不符,可能是本機時間錯誤,也可能是伺服器憑證已過期。

解法:先校正系統日期、時區並確認時間同步正常;若時間無誤,請服務提供者檢查憑證是否續期及憑證鏈是否完整。

錯誤:x509: certificate signed by unknown authority

原因:目前環境無法建立可信任的憑證鏈,可能與缺少中繼憑證、本機信任存放區或網路中的憑證遭替換有關。

解法:檢查伺服器憑證鏈與本機信任環境,不要將停用憑證驗證當成一般修復方式。

錯誤:tls: handshake failure

原因:TLS 協商遭到拒絕,僅憑這段訊息無法判斷具體參數。

解法:依照服務提供者的設定,核對伺服器名稱、TLS 設定與傳輸方式,再比對同一時間的伺服器端日誌。

5. DNS 解析失敗:分清節點網域與目標網域

只說「DNS 有問題」仍不夠明確。用戶端可能需要先解析節點伺服器網域;建立代理連線後,目標網站網域則可能由本機或遠端解析。路由中的 domainStrategy 也可能為了比對 IP 規則而觸發解析,這與出站的網域解析策略不同。

日誌片段訊息所能判斷的範圍下一步
lookup …: no such host這次解析未取得可用的名稱結果,可能是網域不存在或收到否定回應。確認錯誤網域的拼寫,判斷它是節點還是網站,再檢查實際使用的解析器。
failed to lookup ip上層訊息指出 IP 查詢失敗,具體原因通常會出現在後續或更內層的資訊中。繼續尋找逾時、空結果或解析器連線錯誤,不要只停留在這句概括訊息。
read udp …: i/o timeout若錯誤位址是 DNS 伺服器,可能是 DNS 回應未及時傳回。檢查至解析器的網路路徑、UDP 是否可連通及相關路由設定。

在 Windows 上可使用以下命令查看系統解析結果。這裡的 example.com 僅用於示範命令;實際排查時請換成日誌中的網域。系統命令執行成功,只代表系統解析器可用,無法證明核心內建 DNS、加密 DNS 或透過代理查詢的路徑也正常。

Resolve-DnsName example.com

6. 以單次請求串起日誌:本機監聽 → 路由 → 遠端

重現問題前,先暫時關閉會產生大量背景連線的應用程式,並固定使用一個節點和一種代理接入方式。以下以 Windows 及 HTTP 或混合入站 127.0.0.1:10808 為例;若目前連接埠只接受 SOCKS,請使用相應的 SOCKS 測試命令,不要將協定不符誤判為節點故障。

  1. 檢查監聽:在 PowerShell 中查詢本機連接埠。若沒有監聽,先處理核心啟動或連接埠設定,暫時不必檢查遠端憑證。
  2. 暫時啟用詳細日誌:記下開始時間,只發出一次測試請求,再查看該時段的 access 與 error 輸出。
  3. 檢查入站:若沒有存取紀錄,先確認 access 已啟用且查看位置正確,再確認應用程式是否確實使用代理。
  4. 檢查路由:若輸出包含出站標籤,確認請求是否進入預期的代理出站;直連、封鎖與代理出站須分開判斷。
  5. 追查最內層錯誤:依 DNS、TCP、TLS、協定驗證與目標服務的順序逐一定位。每次只修改一項相關設定,再重送相同請求。
Get-NetTCPConnection -LocalPort 10808 -State Listen
curl.exe --proxy http://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/

這條 curl 命令會明確指定代理,不依賴瀏覽器或系統代理開關;10 秒是連線階段的逾時上限,20 秒是整個命令的執行時間上限,兩者都是本次測試參數,不是核心效能指標。HTTP 代理輸出顯示通道建立成功,也不代表後續 TLS 與網頁回應正常,請繼續檢查完整結果。

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

第二條命令僅適用於實際支援 SOCKS 的入站。socks5h 會將目標網域交由 SOCKS 代理解析;一般的 socks5 通常由 curl 在本機解析目標網域。比較兩種方式時,請留意解析位置已經改變,不要把結果差異全歸因於節點速度。

判斷重點:明確指定代理可連線、瀏覽器卻不行,先檢查流量入口

使用相同節點與目標時,若明確指定代理的請求成功,但瀏覽器沒有對應的 access 紀錄,請優先檢查系統代理、瀏覽器擴充功能與略過清單;此時反覆修改 VMess 或 VLESS 參數,通常無助於解決問題。

7. 日誌排查常見問題與回報資訊

為什麼日誌一直出現 warning,但網頁仍能開啟?

先依時間與目標確認 warning 屬於哪項請求。背景應用程式、已取消的連線或無法連線的附屬資源都可能產生紀錄。單一警告不代表所有流量都失敗;請使用固定目標重現問題,並確認對應請求是否真的失敗。

開啟 debug 後,日誌視窗仍是空白,怎麼辦?

先確認儲存設定後已重新啟動核心,再檢查是否設定檔案輸出。若日誌寫入檔案,請確認絕對路徑與目錄權限;同時確認目前查看的是核心輸出,而非訂閱更新紀錄。

看到 accepted,是否代表節點已連上?

不是。這通常只表示入站已接受請求。請繼續沿著同一連線查看出站撥號與交握資訊,並以 curl 的最終回應確認目標是否可連線,不要只截取 accepted 那一行就下結論。

訂閱更新逾時,也要當成節點連線逾時處理嗎?

先區分訂閱網址請求與代理資料連線。檢查訂閱更新是否經由代理、目前代理是否可用,以及訂閱服務本身是否能連線。回報問題時請遮蔽訂閱網址中的權杖,不要公開完整訂閱連結。

若需要進一步求助,提供足以串起同一次失敗的最少資訊,比整個畫面的截圖更有幫助。日誌可能包含存取網域、伺服器位址與本機路徑;分享前請檢查內容,在保留錯誤類型與關聯資訊的同時,移除帳號識別資訊、UUID、密碼、私鑰及訂閱權杖。

v2rayN 下載平台與安裝套件選擇