先確認核心是否真的啟動失敗,再從同一次啟動的日誌找出最根本的原因。本文適合能開啟 v2rayN 主視窗,但啟用節點後核心便退出的使用者,將依序檢查本機連接埠、JSON 語法、協定與核心是否相容,以及檔案存取問題,並說明哪些設定應回到介面修改,避免反覆編輯每次都會重新產生的 config.json。
先分辨核心退出與連線失敗
v2rayN 是管理介面,Xray、V2Fly 等核心則負責讀取設定、監聽本機連接埠及建立對外連線。主視窗能開啟,不代表核心已在執行;網頁無法開啟,也不表示 config.json 有誤。排查時先確認日誌是否顯示載入設定失敗、監聽失敗或處理程序退出,再決定後續方向。
若日誌顯示本機入站已開始監聽,之後才出現遠端連線逾時、TLS 交握失敗或連線遭重設,通常應改查節點參數與網路連線。此時反覆更改本機連接埠,無法解決遠端故障。系統代理只是將應用程式的請求轉交給本機監聽連接埠,也無法讓已退出的核心重新運作。
- 啟動階段失敗:啟用節點後立即出現
Failed to start、failed to load config files或連接埠繫結失敗,接著相關核心處理程序便退出。 - 連線階段失敗:核心持續執行,直到瀏覽網站時才出現
dial tcp、i/o timeout等訊息。請根據訊息所指的位址與連接埠判斷問題。 - 代理入口設定錯誤:核心正常執行,但瀏覽器仍連線至舊連接埠,或應用程式未使用系統代理。先確認入口設定,不必急著修改節點協定。
擷取同一次啟動的完整錯誤鏈
日誌常會把外層錯誤與內層原因寫在同一行:前半段表示「載入設定失敗」,後半段才指出出問題的欄位或連接埠。只複製最後一則「處理程序退出」,通常無法找出原因。先保存目前設定,再只觸發一次啟動,避免多個測試工作與背景更新混在一起。
-
記錄版本
開啟「說明」→「關於」,記下 v2rayN 版本;同時從啟動日誌記下實際使用的核心名稱與版本。用戶端版本和核心版本要分別記錄,不能以用戶端版本代替核心版本。
-
簡化操作
回到主視窗底部的日誌區,記下目前時間,暫時不要執行批次測速或更新訂閱。選取一個節點,透過伺服器清單的右鍵選單選擇「設為作用中伺服器」,觸發載入設定。
-
複製錯誤鏈
保留這次啟動的核心版本行、設定檔路徑、第一個錯誤及後續原因。若介面只顯示退出提示,請查看本次執行對應的日誌檔,不要拼接不同時間的記錄。
-
標記關鍵字
優先標記
bind、invalid character、unknown config id、Access is denied。沿著錯誤鏈繼續往下看,通常會找到更明確的連接埠、欄位或檔案路徑。
不同版本的 v2rayN,選單配置和日誌開關位置可能不同;以上以常見的中文介面為參考。欄位名稱若有變動,請以目前介面和啟動日誌為準。對外提供日誌前,請隱藏訂閱網址、UUID、密碼及個人資料夾名稱,但保留協定名稱、錯誤關鍵字和本機連接埠。
處理 bind 錯誤與本機連接埠占用
本機連接埠屬於入站設定。兩個程式無法同時在互相衝突的監聽位址上占用同一個 TCP 連接埠。重複執行 v2rayN、核心處理程序未完全退出,或其他程式使用相同連接埠,都可能導致新核心啟動失敗。以下連接埠僅供排查示範,不代表所有版本的預設值。
錯誤:bind: Only one usage of each socket address
原因與解法:Windows 提示監聽位址與連接埠發生衝突;先找出占用的處理程序並確認其身分,再關閉重複執行的程式,或變更 v2rayN 的本機監聽連接埠。
錯誤:bind: An attempt was made to access a socket in a way forbidden by its access permissions
原因與解法:連接埠可能受到系統保留範圍或安全性政策限制,不一定是被一般處理程序占用;請確認保留連接埠與安全軟體的記錄,再改用未受限制的本機連接埠。
在 Windows 終端機執行以下兩個命令。第一個命令找出包含 10808 的連線記錄,重點查看本機位址欄與 LISTENING 狀態;第二個命令查詢指定的 PID。這裡的 4321 僅為示範用 PID,實際執行時請換成第一個命令查到的數字。
netstat -ano | findstr ":10808"
tasklist /FI "PID eq 4321"
確認占用者是重複啟動的 v2rayN 或未完全退出的核心後,先從系統匣正常關閉相關程式,再重新開啟。不要直接結束身分不明的系統處理程序。若要變更連接埠,請前往「設定」→「參數設定」,找出本機監聽連接埠相關項目,例如將範例中的 10808 改為 10818;儲存並重新啟動核心後,再重新設定系統代理,也要更新手動填入連接埠的應用程式設定。
結論:先修正監聽,再檢查節點
明確發生本機繫結失敗時,請先讓目標連接埠恢復監聽。更換訂閱群組或切換遠端節點,無法釋放被其他處理程序占用的本機連接埠。
找出 config.json 的語法與型別錯誤
config.json 通常是 v2rayN 根據節點、路由和參數設定產生的執行設定,不是訂閱網址本身。請以啟動日誌指出的檔案路徑為準,不要只憑檔名搜尋到舊副本就開始修改。一般節點設定應優先回到介面修正;直接修改產生的檔案,可能在下次切換節點時遭到覆寫。
錯誤:invalid character '}' looking for beginning of object key string
原因與解法:物件最後一個項目後常會多出逗號,解析器原本正在等待下一個欄位名稱;請檢查錯誤位置之前的逗號、引號與括號,並依實際 JSON 結構修正。
錯誤:unexpected EOF
原因與解法:檔案可能遭截斷,或字串、物件、陣列尚未結束;先檢查檔案末尾與儲存過程,再從已備份的完整設定還原。
錯誤:cannot unmarshal string into Go struct field
原因與解法:某個欄位需要數字、布林值或物件,實際收到的卻是字串;依錯誤訊息找到欄位路徑,並按照目前核心的設定格式修正型別。
以下片段僅用來說明 JSON 語法差異,不是可獨立執行的核心設定。第一行的最後一個屬性後多了逗號;第二行移除逗號後才是有效的 JSON。連接埠是否允許使用字串則屬於設定結構問題,不能只看「語法通過」就下結論。
錯誤片段:
{"listen": "127.0.0.1", "port": 10808,}
正確片段:
{"listen": "127.0.0.1", "port": 10808}
- 查看行列位置:如果日誌提供行號、欄號或位移量,請從該位置往前檢查;問題常出在前一個項目的結尾,而不是目前的字元本身。
- 區分語法與結構:缺少引號屬於 JSON 語法錯誤,欄位型別錯誤則屬於反序列化問題;欄位含義有誤,也可能直到後續建立設定時才被發現。
- 區分設定來源:一般節點應優先在節點編輯視窗和參數設定中修正;自訂設定則先備份來源檔案,再使用本機編輯器檢查。不要將含有憑證的完整設定上傳至線上格式化工具。
確認協定欄位與實際執行的核心
JSON 能順利解析,不代表目前的核心認得其中的協定和傳輸欄位。v2rayN 是設定入口,實際支援範圍取決於這次啟動的核心及其版本。尤其是手動複製的出站、路由或傳輸設定片段,可能來自不同核心,欄位名稱看似相近,卻不能直接互換。
錯誤:unknown config id:
原因與解法:在 Xray 或 V2Fly 建立設定時,協定或元件識別碼可能尚未註冊、拼寫錯誤,或不受目前版本支援;請查看冒號後的識別碼,確認其所屬欄位及核心支援情況。
錯誤:failed to parse outbound detour config
原因與解法:出站設定建立失敗,這只是外層提示;請繼續查看後續原因,檢查協定名稱、伺服器參數、傳輸設定,以及 TLS 或 REALITY 相關欄位。
例如,REALITY 是安全層設定,不能把 reality 當成出站協定填入;XTLS Vision 對應的是特定設定組合,也不是可以任意填入傳輸類型的名稱。Xray 與 V2Fly 支援的設定範圍不可混為一談。Android 版 v2rayNG 使用 Xray,v2flyNG 使用 V2Fly,但這不代表 Android 用戶端匯出的任意設定片段都能直接套用於桌面核心。
- 從啟動日誌確認實際執行的是哪個核心,不要只看節點名稱或資料夾名稱。
- 前往「設定」→「參數設定」,確認目前版本提供的核心選擇項目;若有依協定選擇核心的設定,請檢查該節點協定對應的選項。
- 回到節點編輯視窗,確認協定、傳輸方式、TLS、SNI 和 flow。請依伺服器提供的資訊填寫,不要為了消除錯誤而隨意填入陌生欄位。
- 若設定需要較新的核心功能,請先備份,再更新相符的用戶端與核心元件;保留更新前後的版本記錄,避免同時修改協定和路由。
排除檔案存取與核心程式問題
若日誌尚未進入協定解析階段,就已提示無法開啟設定、找不到檔案或無法建立處理程序,請先檢查檔案與執行環境。把這類問題誤判為節點失效,容易讓人白費工夫刪除訂閱並重建群組。
錯誤:The system cannot find the file specified.
原因與解法:設定檔、核心程式或其他參照檔案不存在;依錯誤訊息核對完整路徑,檢查檔案是否未解壓縮、遭移動或被安全軟體隔離。
錯誤:Access is denied.
原因與解法:讀取設定、寫入執行檔案或執行程式的動作遭拒;查看錯誤涉及的路徑與系統安全性記錄,修正資料夾權限。不要把長期以系統管理員身分執行當成通用解法。
- 先退出再完整解壓縮:不要在壓縮檔預覽視窗中執行程式。更新可攜式程式時,請先正常退出,避免舊處理程序占用檔案,導致元件只更新了一部分。
- 確認系統架構:依實際系統選擇 x64 或 ARM64 對應的版本。主程式能開啟,不代表資料夾中的所有核心檔案都與系統相容。
- 檢查參照檔案:若錯誤明確提到
geoip.dat或geosite.dat,請檢查對應的規則資料及其路徑;這與遠端伺服器 DNS 解析失敗不同。 - 保留安全性記錄:遇到攔截時,先查看具體對象與原因,不要為了排查問題而全面關閉防火牆或安全防護。
重新測試啟動、監聽與實際請求
每次只修改一個原因明確的項目,再重複相同的驗證流程。如此才能判斷問題是因修正連接埠、修復設定還是更新核心而解決,而不是把多項變更混在一起,留下無法重現的結果。
-
重新啟動核心
儲存設定並重新載入目前節點,查看新時間段的啟動日誌。確認原先的第一個錯誤已消失,不要只因舊日誌被捲動到畫面之外就以為問題已解決。
-
確認監聽狀態
使用
netstat -ano檢查設定中的實際連接埠,確認 PID 屬於這次啟動的核心。若已改為 10818,查詢時也要使用 10818。 -
驗證請求
重新設定系統代理,對目前節點執行真實連線延遲測試,再用瀏覽器開啟目標網站。查看存取日誌,確認請求確實進入代理,並視需要確認對外 IP。
修改 config.json 後,切換節點怎麼又變回原樣?
一般節點的執行設定通常由 v2rayN 重新產生。先查看日誌中的檔案路徑,再回到節點編輯視窗或「設定」→「參數設定」修改來源。若確實需要使用自訂設定,請維護獨立的來源檔案並保留備份。
更新訂閱能解決本機連接埠占用嗎?
不能。更新訂閱主要是更新訂閱群組中的節點資訊,不會釋放其他處理程序占用的監聽連接埠。請先查出占用連接埠的 PID;只有節點參數已過期或缺漏時,才需要更新訂閱。
啟用 TUN 後出現錯誤,需要直接重新安裝嗎?
先關閉 TUN,保留原本節點進行對照測試。若一般本機代理可以啟動,請優先檢查 TUN 的權限、虛擬網卡與路由設定;若兩種模式都出現相同的 JSON 錯誤,請先修正共用設定。
核心不再退出,但真實連線延遲測試仍失敗,該怎麼辦?
將排查方向轉至連線階段。記下這次測試的時間,查看遠端連線、DNS 和 TLS 錯誤,再檢查節點位址、連接埠、SNI 與路由。若要確認入口設定,可參考系統代理設定和真實連線延遲測試說明。
需要進一步求助時,請提供用戶端版本、核心版本、系統架構、已隱去敏感資訊的完整錯誤鏈,以及最近一次單項修改。這樣才能將「啟動失敗」縮小至可驗證的欄位、連接埠或檔案,而不是從頭重新安裝,導致故障線索一併遺失。