v2rayN 能開啟,不代表代理核心已經執行。本文以 Windows 桌面版為例,依啟動流程查看第一則有效錯誤,再逐一檢查監聽連接埠、JSON 設定、協定相容性與核心檔案。先讓核心順利啟動,再處理系統代理、DNS 與路由,避免混淆不同階段的問題。
先確認故障階段:程序、設定或監聽
v2rayN 是設定與控制介面,Xray、V2Fly 等核心才負責實際處理流量。按下啟動後,客戶端需要找到可執行檔、產生設定、啟動程序,並讓核心綁定本機連接埠。任何一步出錯,都可能顯示「啟動失敗」或核心反覆結束,但處理方式各不相同。
開啟客戶端日誌顯示區域,先保存目前記錄,再觸發一次啟動。以這次操作的時間為起點,往下找最早出現的 failed、error 或程序啟動異常。結尾的「程序已結束」通常只是結果;真正原因常在前幾行,尤其要繼續查看冒號後的巢狀錯誤。
- 記下目前選用的設定、核心名稱,以及日誌所列的可執行檔路徑。
- 複製第一則錯誤及其前後幾行,不要只截取最後一行狀態訊息。
- 一次只調整一項設定,重新啟動後比對新日誌,確認錯誤是否有所變化。
連接埠占用:先查 PID,再決定結束程序或更換連接埠
日誌出現 bind、address already in use 或 Windows 通訊端占用提示時,先檢查對應的本機位址與連接埠。重複開啟客戶端、舊核心未結束,或其他程式使用相同連接埠,都可能讓新核心無法監聽。
錯誤:bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
原因與解法:相同的監聽位址與連接埠已被占用。查出占用中的程序並確認來源後,正常結束該程式;若必須同時執行,請為其中一個程式設定不同的連接埠。
以下以 10808 和 10809 示範排查。這些僅為設定範例,不代表各版本的預設值,也不表示必須同時啟用兩個入口。請以日誌中實際綁定的連接埠及客戶端參數為準。
在 PowerShell 中執行下列命令。輸出中的 OwningProcess 就是 PID,再用第二個命令查看程序名稱與路徑;部分程序資訊需要系統管理員權限才能讀取。
Get-NetTCPConnection -State Listen -LocalPort 10808,10809 -ErrorAction SilentlyContinue |
Select-Object LocalAddress,LocalPort,OwningProcess
Get-NetTCPConnection -State Listen -LocalPort 10808,10809 -ErrorAction SilentlyContinue |
ForEach-Object { Get-Process -Id $_.OwningProcess } |
Select-Object Id,ProcessName,Path -Unique
- 確認是客戶端重複執行時,請優先從系統匣正常結束多餘的執行個體,不要直接結束所有同名程序。
- 需要更換連接埠時,請到「設定」→「參數設定」檢查本機監聽項目;欄位名稱可能因版本而異,請以實際介面為準。
- 更換連接埠後,手動設定的瀏覽器代理、命令列代理與系統代理也要一併調整,否則仍會連到舊連接埠。
- 如果錯誤是權限不足,而非位址遭占用,請檢查系統保留連接埠與本機安全性原則,不要把所有
bind錯誤都歸因於重複程序。
JSON 格式錯誤:先修正語法,再檢查設定內容
JSON 解析失敗,表示核心尚未完成讀取設定。常見原因包括物件結尾多了逗號、使用全形引號、字串含有未跳脫的反斜線,或將訂閱內容當成完整 JSON 設定匯入。不同輸入格式不能只靠更改副檔名互相轉換。
錯誤:invalid character '}' looking for beginning of object key string
原因與解法:物件結尾前可能多了逗號。檢查錯誤位置附近的鍵值組,刪除末尾逗號,並確認前一行的引號與括號是否配對。
錯誤:unexpected EOF
原因與解法:解析器讀到內容結尾時仍在等待後續字元,常見原因是檔案遭截斷或括號未配對。請重新取得完整設定,再檢查物件與陣列的括號是否完整。
以下範例僅示範合法 JSON 的局部結構,不是可直接執行的代理設定。Windows 路徑寫入 JSON 字串時,反斜線必須跳脫;在檔案總管中則不需要重複輸入。
{
"log": {
"loglevel": "warning",
"error": "C:\\v2rayN\\logs\\error.log"
}
}
- 先備份使用者設定,再確認出錯的檔案是手動匯入的設定,還是客戶端自動產生的執行設定。
- 自動產生的檔案會在切換設定或重新啟動時遭覆寫。請修正來源設定或客戶端選項,不要只修改暫存輸出檔。
- 不要將含有訂閱網址、UUID、密碼或金鑰的完整設定上傳到線上格式化網站;如需分享,請先在本機移除敏感資訊。
未知協定與欄位:確認核心支援情況,不要只改欄位名稱
通過 JSON 語法檢查,不代表設定一定能啟動。設定還必須符合所選核心的結構與功能。VMess、VLESS 是協定名稱;REALITY 是需要相應核心支援的傳輸安全機制,不能將這些名稱當成可任意替換的標籤。
錯誤:unknown protocol: vless
原因與解法:可能使用了不支援該協定的舊版核心,或實際啟動的核心與預期不同。請確認核心路徑與版本,再依完整設定需求選用相容核心,不要直接把 VLESS 改成 VMess。
「未知欄位」與「缺少必要欄位」也要分開處理。不同核心、設定匯入方式與解析機制對未知欄位的處理並不相同,有些會忽略,有些則會拒絕。因此,沒有出現未知欄位錯誤,不代表該欄位已生效。請繼續核對啟動日誌及該版本的設定說明。
| 檢查項目 | 核對內容 | 修正方向 |
|---|---|---|
| 協定名稱 | 檢查 protocol 拼字及核心支援情況 | 使用支援原協定的核心,不要任意更換協定 |
| 傳輸安全 | 檢查 REALITY 等設定所需欄位與版本要求 | 依照服務提供者的參數完整重建設定 |
| 設定來源 | 確認來源是訂閱、分享連結,還是核心專用 JSON | 使用相應的匯入方式,避免跨格式貼上 |
| 實際執行檔 | 確認啟動日誌中的路徑與版本資訊 | 避免新介面仍在呼叫舊核心檔案 |
v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心;這不代表兩者匯出的任何執行設定都能原樣用於桌面版。移轉時請優先使用客戶端支援的訂閱或分享連結,再檢查協定與傳輸參數。實際支援功能取決於核心版本,而非客戶端名稱。
核心檔案遺失:檢查是否完整解壓、架構與檔案存取權限
如果連核心版本資訊都沒有輸出,日誌直接顯示找不到檔案,應先處理程式檔案,而不是修改節點。客戶端介面能夠啟動,只代表介面程式可以執行,無法證明核心及相關資源已完整放入指定資料夾。
錯誤:The system cannot find the file specified.
原因與解法:啟動目標或相依路徑不存在。對照日誌中的完整路徑,檢查壓縮檔是否已完整解壓、核心是否位於預期資料夾,以及檔案是否遭移動或隔離。
錯誤:Access is denied.
原因與解法:目前帳戶或系統原則拒絕執行、讀取或寫入。請檢查檔案權限、受控資料夾與安全軟體記錄,依實際封鎖原因處理,不要直接關閉所有防護。
- 將完整程式解壓縮到目前帳戶可寫入的獨立資料夾,例如
C:\Tools\v2rayN,不要直接在壓縮檔預覽視窗中執行。 - 在 Windows「設定」→「系統」→「系統資訊」查看系統類型,選擇符合系統與處理器架構的安裝套件。
- 如果曾變更核心資料夾,請確認客戶端實際呼叫的路徑;只把新檔案複製到其他資料夾,不會自動更新舊路徑。
- 若日誌明確指出缺少規則資源檔,再檢查相應資源。不要把可執行檔遺失與路由資源遺失當成同一種問題。
透過設定測試與重新啟動確認修復結果
需要區分設定本身與客戶端啟動環境時,可以使用核心提供的測試功能。以下範例僅適用於支援該命令的 Xray:在實際核心資料夾開啟 PowerShell,先查看說明,再測試已儲存的完整設定副本。範例檔名為 diagnosis.json,必須事先準備,不能只複製前文的日誌設定片段。
.\xray.exe version
.\xray.exe help run
.\xray.exe run -test -config .\diagnosis.json
測試參數須以目前可執行檔的說明輸出為準,不要將 Xray 命令直接套用到其他核心。設定測試主要用來確認設定能否載入,不能取代實際啟動、連接埠綁定與遠端連線測試;即使測試通過,仍可能有連接埠占用或節點無法連線的問題。
- 關閉獨立執行的測試程序,返回 v2rayN 啟動目前設定,避免手動啟動的程序占用相同連接埠。
- 確認日誌不再出現原本的錯誤,且程序沒有啟動後立即結束。
- 再次查詢本機監聽連接埠,確認對應 PID 屬於這次啟動的核心。
- 最後啟用所需的系統代理或 TUN,並測試瀏覽器連線;先確認基本代理可用,再加入較複雜的路由規則。
常見問題:重新安裝、系統管理員權限與日誌去識別
重新安裝後,為什麼仍出現相同錯誤?
重新匯入相同的錯誤設定,或舊程序仍占用連接埠,都可能讓問題再次出現。請先保存舊資料,在獨立資料夾中用一份已知格式正確的設定進行比對,再逐項還原訂閱與規則,不要直接覆寫所有舊設定。
啟動失敗一定要以系統管理員身分執行嗎?
不一定。一般本機代理監聽與需要提高權限的 TUN 操作要分開判斷。先根據日誌確認失敗項目;JSON 錯誤與協定不相容,不會因提高權限而消失。只有在明確涉及相應權限時,才需要以較高權限執行。
訂閱更新成功,為什麼核心仍無法啟動?
訂閱下載成功只代表內容已取得,不代表每個項目都與目前核心相容。請選取單一設定啟動,檢查其協定、傳輸與安全參數,再確認實際核心版本;不要反覆更新訂閱來取代啟動錯誤分析。
尋求協助時應提供哪些日誌?哪些資訊需要遮蔽?
請提供客戶端與核心版本、系統架構、發生錯誤的操作,以及第一則錯誤與前後文。遮蔽訂閱網址、UUID、密碼、金鑰及個人資料夾資訊;保留欄位名稱、錯誤原文與本機連接埠,方便判斷問題發生在哪個步驟。