本文重點

適合切換節點後核心立即退出、更新後無法啟動,或匯入自訂設定後出現錯誤的 v2rayN 使用者。依照「保留日誌、確認啟動階段、找出最內層錯誤、修改來源設定、重新驗證」的順序排查,先恢復本機監聽,再檢查遠端連線,避免把所有問題都歸咎於節點無法使用。

先釐清:核心未啟動,還是啟動後連線失敗

v2rayN 是圖形介面用戶端,負責管理節點、產生設定並呼叫核心;Xray 則負責讀取設定、建立監聽及處理連線。用戶端視窗能開啟,不代表 Xray 已正常執行。即使已啟用系統代理,也只代表系統代理位址已設定,不代表對應連接埠確實有程序在監聽。

排查時先暫時關閉系統代理,避免瀏覽器持續連線到失效的本機連接埠。Windows 桌面介面通常可從系統匣選單的「系統代理」選擇「清除系統代理」。接著開啟主視窗下方的資訊或日誌區域,清除舊內容後,只啟動或重新啟動核心一次。不同版本的介面按鈕名稱可能不同,請以這次啟動產生的日誌為準。

讀取設定解析欄位繫結連接埠核心就緒建立連線
觀察到的現象優先判斷下一步
程序未建立,並提示找不到檔案啟動路徑或安裝內容異常檢查實際呼叫的核心路徑
出現設定錯誤後,程序隨即退出JSON、協定欄位或資源載入失敗查看錯誤鏈最內層的內容
出現 bind 錯誤本機監聽連接埠無法繫結查詢連接埠占用情況與監聽位址
已有啟動訊息及本機監聽,只有發出請求時才報錯通常已進入連線階段檢查節點位址、TLS 與路由

例如 connection refused、i/o timeout 或 TLS 交握失敗;若是在發出網頁請求後才發生,通常不是設定載入階段的問題。先確認日誌時間及本機連接埠狀態,不要只憑一個英文關鍵字就判定核心啟動失敗。

讀取日誌:保留完整錯誤鏈,別只複製最後一句

Xray 的錯誤訊息常會逐層包裝。外層可能只顯示 Failed to start,中間指出設定檔,最內層才說明是哪個連接埠、協定欄位或資源檔案出了問題。日誌中的 > 通常用來連接這些錯誤原因,不是要輸入的指令。

  1. 記錄版本資訊:在用戶端的「說明」→「關於」或對應的版本資訊頁面記下 v2rayN 版本;再從啟動日誌記錄 Xray 版本。用戶端版本不等於核心版本。
  2. 保留一次完整的啟動紀錄:從呼叫核心的第一行開始,保存至退出提示;不要把連續多次重試的內容混在一起。
  3. 找出最明確的線索:搜尋 bind、invalid、failed to load、not found,並查看前後幾行。
  4. 確認設定來源:確認目前選用的是一般節點還是自訂設定。前者應優先修改節點編輯視窗和用戶端設定;後者則需要檢查實際載入的 JSON 檔案。

如果目前日誌資訊太少,可到「設定」→「參數設定」尋找日誌層級選項,暫時改為 info 後重新啟動一次。仍無法定位時,再短暫使用 debug。除錯日誌可能包含連線目標,排查完成後請恢復原本層級,不要長期記錄或公開上傳。

連接埠占用:先找出使用中的程序,再修改本機監聽設定

連接埠占用發生在本機,與遠端伺服器是否在線無關。常見情況包括同時執行兩個 v2rayN、舊核心仍在執行,或其他程式使用了相同的監聽位址和連接埠。以下的 10808 僅供示範,實際排查時請換成日誌中的連接埠號碼。

錯誤:bind: address already in use

原因:在出現此提示的系統上,目標位址和連接埠已被其他監聽程序占用。

解決方法:查詢占用中的程序,正常關閉重複執行的執行個體;若該連接埠必須留給其他程式使用,就修改 v2rayN 的本機監聽連接埠。

錯誤:Only one usage of each socket address (protocol/network address/port) is normally permitted.

原因:這是 Windows 常見的通訊端繫結衝突訊息,通常會一併顯示具體的監聽位址。

解決方法:核對日誌中的位址和連接埠,並檢查是否有繫結至所有位址的程序占用相同連接埠。

在 Windows 開啟 PowerShell,先查詢監聽狀態及所屬程序。以下指令僅會查詢資訊,不會終止程序:

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

Get-NetTCPConnection -State Listen -LocalPort 10808 -ErrorAction SilentlyContinue |
  ForEach-Object { Get-Process -Id $_.OwningProcess }

確認占用者是重複啟動的用戶端後,請透過該用戶端本身的退出選項關閉,不要直接結束身分不明的系統程序。如果要將監聽連接埠從 10808 改為 10818,請到「設定」→「參數設定」尋找本機監聽連接埠;部分版本會顯示為本機混合監聽連接埠。儲存並重新啟動核心後,也要更新手動輸入代理位址的應用程式。

結論:變更連接埠後,代理入口也要同步更新

核心改用 127.0.0.1:10818 後,仍指向 127.0.0.1:10808 的應用程式不會自動跟著變更。確認新連接埠正在監聽後,再重新設定系統代理,並核對應用程式內手動設定的代理資訊。

JSON 語法錯誤:先修正結構,再確認協定設定

JSON 解析失敗代表核心尚未進入正常的連線流程。一般節點的執行設定由 v2rayN 產生,手動修改產生的檔案通常會在下次啟動時被覆寫;應回到節點編輯視窗或相關設定修改來源。只有使用自訂設定時,才需要直接檢查載入的 JSON 檔案。

錯誤:invalid character '}' looking for beginning of object key string

原因:物件最後一個項目後多出逗號等語法問題,可能使解析器在等待下一個鍵名時遇到右大括號。

解決方法:檢查錯誤位置附近及前一個項目,刪除多餘的尾隨逗號,並確認鍵名使用英文雙引號。

錯誤:unexpected EOF

原因:讀取內容提前結束,常見原因包括檔案遭截斷、引號未成對,或括號缺漏。

解決方法:檢查檔案結尾及括號配對;若內容不完整,請從可信任的原始設定重新匯出,不要貿然補上括號。

以下僅示範 log 設定的語法,並非可直接代理流量的完整設定。錯誤範例在 "warning" 後多了一個逗號:

{
  "log": {
    "loglevel": "warning",
  }
}

正確的 JSON 寫法如下。中文彎引號不能取代英文雙引號;JSON 數值和布林值也不應任意改成字串。

{
  "log": {
    "loglevel": "warning"
  }
}

協定欄位缺漏:回到節點編輯視窗修改

JSON 成功讀取後,Xray 還會驗證協定及傳輸設定。VMess、VLESS、Trojan 的身分識別欄位各不相同,不能只改協定名稱就完成轉換。VLESS 常用 UUID 作為使用者識別碼,Trojan 則使用密碼;TLS、REALITY、傳輸方式及 flow 也必須符合伺服器端的設定。

錯誤:invalid UUID

原因:需要 UUID 的使用者欄位未填、格式錯誤,或混入複製時帶入的字元。

解決方法:在主清單開啟目前節點的編輯視窗,核對使用者 ID;從原始節點資訊重新複製,移除前後空白後儲存。

日誌線索檢查項目修改位置
使用者識別碼解析失敗VMess、VLESS 的 UUID 是否完整目前節點編輯視窗中的使用者 ID
位址或連接埠相關錯誤伺服器位址不可空白,遠端連接埠須介於 1–65535目前節點的位址與連接埠
安全層或傳輸設定建立失敗安全類型、傳輸類型及相關欄位是否受目前核心支援節點編輯視窗中的對應設定頁面
flow 或 REALITY 欄位相關錯誤是否符合伺服器提供的參數節點的流量控制與安全層設定

沒有啟動錯誤,不代表所有欄位都設定正確。例如 TLS 的伺服器名稱與憑證不符,通常要到連線遠端時才會顯現。不要透過啟用略過憑證驗證來掩蓋問題;應先核對裝置時間、伺服器名稱及伺服器憑證。REALITY 必須依照對應版本及伺服器要求填寫驗證參數,不能直接套用一般 TLS 設定。

訂閱節點修改後,後續更新可能會重新匯入來源參數。若只是為了定位問題,可先複製一份節點供本機測試,並清楚標記用途;確認問題出在來源資料後,再修正訂閱來源。不要把暫時修改誤當成訂閱長期有效的設定。

核心檔案或規則檔案遺失:依日誌路徑還原

找不到 Xray 執行檔時,通常是在建立程序階段就失敗;找不到 geoip.dat 或 geosite.dat 時,程序可能已經執行,但載入引用這些資源的路由規則時失敗。這兩種情況需要分開處理,不能一概透過更新訂閱解決。

錯誤:The system cannot find the file specified.

原因:Windows 啟動程序時找不到指定檔案;需根據前文路徑判斷是否為核心檔案。

解決方法:核對啟動日誌中的執行檔路徑,確認安裝套件已完整解壓縮、目錄未遭移動,並檢查安全軟體的隔離紀錄。

錯誤:failed to load geosite

原因:可能是規則檔案遺失、無法讀取,或規則引用了檔案中不存在的分類;光看這段錯誤開頭,無法判斷是哪一種情況。

解決方法:繼續查看後續錯誤,分別核對資源路徑、讀取權限及分類名稱,再還原對應的規則資料或修正路由引用。

  1. 確認安裝方式:使用壓縮檔時,請先完整解壓縮至一般目錄再啟動,不要直接從壓縮檔中開啟主程式。
  2. 確認系統架構:選擇符合系統架構的安裝套件和核心。架構不相符可能會導致無法執行,而非檔案遺失。
  3. 檢查安全軟體紀錄:先確認檔案來源及遭隔離的原因,再依照系統程序處理。不要把關閉整套防護當成一般排錯步驟。
  4. 檢查路由資源:若日誌指出規則分類不存在,請更新規則資料或修正規則分類名稱;檔案存在不代表其中包含所需分類。

需要還原安裝內容時,可前往用戶端下載頁面依平台選擇安裝套件。請先備份自行維護的設定,再還原程式檔案;排錯時不要任意刪除整個使用者資料目錄。一般檔案遺失也不應優先用管理員權限來掩蓋,只有日誌明確指出權限問題時,才針對特定路徑處理。

修復後驗證:每次只修改一項

每修正一項,就重新啟動並保存新日誌。先確認設定載入成功,再確認本機監聽,最後透過應用程式發出一次請求。這樣才能區分「原本的啟動錯誤已解決」和「接著出現新的遠端連線問題」。兩種問題可能同時存在,但不應一次修改連接埠、協定、DNS 和路由。

視窗可以開啟,為什麼仍提示核心啟動失敗?

圖形介面和核心是不同的程序。開啟日誌區域,找出這次呼叫 Xray 後的具體錯誤,再檢查對應的本機連接埠是否正在監聽;介面可操作不代表核心狀態正常。

將 10808 改為 10818 後,為什麼網頁還是無法開啟?

先確認新連接埠已開始監聽,再重新設定系統代理。若應用程式中有手動輸入代理設定,請同步將連接埠改為 10818,並確認所選的代理類型與監聽入口相容。

直接修改執行中的 JSON,為什麼重新啟動後又還原了?

一般節點的執行設定會由 v2rayN 重新產生。請回到目前節點的編輯視窗,或前往「設定」→「參數設定」修改來源選項;只有明確使用自訂設定時,才維護對應檔案。

切換核心後可以啟動,就代表修好了嗎?

還需要確認協定和欄位是否受到支援。不同核心支援的設定不盡相同;請記錄切換前後的版本與錯誤,只保留符合節點參數的設定,不要把切換核心當成欄位錯誤的通用解法。

最後應留下三項明確結果:使用哪個版本的核心、是哪一項設定導致失敗,以及修改後哪個連接埠成功開始監聽。這些資訊比「重新安裝後就好了」更有參考價值,也方便日後更新、匯入訂閱或調整路由時快速追查。