適用於 Windows 上啟動 v2rayN 後,遇到監聽失敗、核心結束或瀏覽器連線遭拒的情況。先查看記錄,確認衝突的是本機 10808,再用 PID 找出占用程序;若可安全關閉舊程序,就釋放連接埠;若需同時執行多個程序,則改用確認空閒的 10818。最後同步更新系統代理、瀏覽器擴充功能與終端機變數,分別測試本機監聽和實際連線;先別修改訂閱或遠端節點。
先判讀錯誤:本機監聽失敗不代表節點故障
開啟 v2rayN 主視窗,查看底部的記錄區,特別留意包含 listen、bind 和本機位址的行。如果失敗位址是 127.0.0.1:10808,表示核心未能成功建立這個入口。此時瀏覽器尚未將要求送交核心,改用其他 VMess、VLESS 節點或一再更新訂閱,都無法釋放本機連接埠。
錯誤:bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
原因與解法:相同的監聽位址與連接埠通常已被其他程序使用。依照這行顯示的位址查詢 PID,確認占用者後關閉重複執行的程序,或修改 v2rayN 的監聽連接埠。
錯誤:bind: An attempt was made to access a socket in a way forbidden by its access permissions.
原因與解法:可能與系統保留連接埠、獨占繫結或安全性原則有關,不一定是一般的程序占用。先查詢監聽清單,再檢查 Windows 排除的連接埠範圍,不要直接關閉安全性軟體。
錯誤:Failed to connect to 127.0.0.1 port 10808
原因與解法:這表示連線端無法連上本機代理,不能只憑這點判定連接埠衝突。請確認核心是否正在執行,以及用戶端目前的監聽連接埠是否仍為 10808。
本文以 Windows 10、Windows 11 與 v2rayN 7.x 中文介面的混合監聽設定為例。不同小版本的選項分組可能有所調整,請以目前視窗顯示的欄位為準。舊版設定也可能將 SOCKS 與 HTTP 連接埠分開設定,因此 10808、10809 並非所有版本通用的固定組合。
找出監聽 10808 的程序與程式路徑
先在 PowerShell 執行下方指令。這只會查詢 TCP 監聽狀態,不會終止任何程序。若沒有傳回資料,表示查詢當下未找到監聽此連接埠的 TCP 程序;若有資料,記下 OwningProcess,再確認本機位址是回送位址還是通用位址。
Get-NetTCPConnection -LocalPort 10808 -State Listen -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, State, OwningProcess
假設查詢結果中的 PID 是 6420,使用下方指令查看程序名稱、路徑與命令列。6420 僅為示範值,執行時必須換成本機剛查到的數字。若一般權限無法檢視路徑,可改用系統管理員 PowerShell 重新查詢;不必因此提高用戶端的執行權限。
Get-Process -Id 6420 | Select-Object Id, ProcessName, Path
Get-CimInstance Win32_Process -Filter "ProcessId = 6420" |
Select-Object ProcessId, ExecutablePath, CommandLine
若習慣使用命令提示字元,也可以執行下方查詢。findstr 只會篩選文字,仍須自行確認本機位址欄中的連接埠確實是 10808,且狀態為 LISTENING;不要將遠端連接埠或已建立的連線誤認為監聽衝突。
netstat -ano -p tcp | findstr ":10808"
tasklist /FI "PID eq 6420"
- 查到位於另一個資料夾的 v2rayN:可能同時啟動了舊版解壓縮資料夾與新版資料夾中的程式。查看兩個視窗和系統匣圖示,保留要使用的版本。
- 查到 Xray 或 V2Ray 核心程序:根據命令列中的設定檔路徑判斷所屬程式。v2rayN 正常啟動的核心本來就會占用連接埠,看到核心名稱不代表程序一定異常。
- 查到其他應用程式:保留正常運作的服務,優先修改 v2rayN 的本機入口。不要只看連接埠號碼就決定終止程序。
- 查到 0.0.0.0 或 :::這代表通用位址監聽,可能涵蓋對應位址系列的回送位址;不要只查找顯示為 127.0.0.1 的資料。
關閉舊執行個體,或更換本機混合監聽連接埠
先分清楚是「重複啟動」還是「確實需要同時執行」。如果占用者是已不再使用的舊執行個體,請從系統匣選單選擇「結束」,等幾秒後重新查詢。關閉主視窗可能只是縮到系統匣,不代表監聽連接埠已釋出。
-
記下原設定
在「設定」→「參數設定」中記下目前的監聽連接埠、監聽位址和區域網路連線選項。先保留原本的 10808,方便之後還原;不要修改節點編輯視窗中的伺服器連接埠。
-
確認新連接埠可用
使用前述 PowerShell 指令查詢 10818,將
-LocalPort 10808改成-LocalPort 10818。確認沒有監聽資料後,再依照後文檢查排除範圍;10818 只是範例,不保證每台電腦都未被占用。 -
修改監聽連接埠
前往「設定」→「參數設定」→「Core: 基礎設定」,找到「本機混合監聽連接埠」,將 10808 改為 10818。若版本使用分開的 SOCKS、HTTP 欄位,請分別記錄並設定,之後依實際協定填入對應連接埠。
-
儲存並重新載入
按一下「確定」,查看核心重新載入時的記錄。如果介面提示需要重新啟動,請依提示完全結束並重新開啟 v2rayN;確認沒有新的繫結失敗記錄後,再查詢 10818 是否正在監聽。
-
確認連線入口
確認新連接埠對應的 PID 屬於目前使用的用戶端資料夾。若只在本機使用,請保留回送位址監聽;不要為了解決衝突而啟用「允許來自區域網路的連線」,擴大監聽範圍並不能排除連接埠衝突。
同步更新系統代理、瀏覽器與命令列設定
本機混合連接埠可讓 HTTP 與 SOCKS 要求共用同一個入口,但不會自動更新所有應用程式的個別設定。改為 10818 後,如果瀏覽器擴充功能或終端機仍指向 10808,就會出現「核心已執行,網頁仍無法開啟」的第二層問題。
- 重新套用系統代理:在 v2rayN 主畫面底部的「系統代理」中,先選擇「清除系統代理」,再選擇「自動設定系統代理」。這個步驟會重新寫入入口設定,但不代表所有程式都會依照設定運作。
- 檢查 Windows 設定:前往 Windows「設定」→「網路和網際網路」→「代理伺服器」。使用手動代理時,請確認位址與連接埠;使用自動設定指令碼時,檢查是否仍留有舊的指令碼位址,避免混用兩套舊設定。
- 確認瀏覽器擴充功能:若擴充功能接管了代理設定,請將其中的 HTTP 或 SOCKS 入口改為
127.0.0.1:10818,或暫時切換為使用系統代理後再測試。保留舊的擴充功能連接埠會覆蓋系統設定。 - 檢查終端機變數:確認
HTTP_PROXY、HTTPS_PROXY、ALL_PROXY是否仍包含 10808,也要留意應用程式自己的代理設定檔。
下方指令只會修改目前的 PowerShell 工作階段,不會寫入永久環境變數。啟用混合監聽時,可用 HTTP 入口設定這兩個變數;變數名稱 HTTPS_PROXY 表示提供 HTTPS 要求使用的代理,代理位址本身不必以 https:// 開頭。
$env:HTTP_PROXY = "http://127.0.0.1:10818"
$env:HTTPS_PROXY = "http://127.0.0.1:10818"
Remove-Item Env:ALL_PROXY -ErrorAction SilentlyContinue
如果應用程式原本使用 SOCKS,可依其支援情況改用 socks5h://127.0.0.1:10818。不要假設所有命令列程式都支援相同的變數;若曾透過系統介面儲存永久變數,也須更新儲存值並重新開啟終端機。
查不到占用資料時,檢查排除連接埠與監聽設定
如果記錄顯示權限相關的繫結錯誤,但查詢不到監聽資料,請繼續檢查 Windows 排除的連接埠範圍。虛擬化與網路服務可能會讓某些連接埠無法一般繫結;監聽清單空白,不代表連接埠一定可用。
netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp
- 連接埠位於排除範圍:選擇排除範圍以外、且查不到監聽資料的新連接埠,再回到「參數設定」修改。不要為了保留 10808 就任意刪除系統保留範圍。
- 只在啟動瞬間發生衝突:檢查工作管理員中的「啟動應用程式」和工作排程器,確認沒有兩個 v2rayN 執行個體同時自動啟動。手動查詢時舊程序可能已經結束,請在錯誤出現後立即重新查詢。
- 記錄顯示的是其他連接埠:依記錄中的實際數字進行排查。自訂設定可能包含多個入站,修改混合連接埠無法解決另一個入站的衝突。
- 記錄明確指出 UDP:另外使用
Get-NetUDPEndpoint -LocalPort 10808查詢 UDP 端點。TCP 與 UDP 是不同的協定範圍,不能只根據 TCP 查詢結果推斷 UDP 狀態。
不要透過修改遠端節點的伺服器連接埠來避開本機繫結失敗。伺服器連接埠是輸出連線參數,本機混合連接埠則是輸入監聽參數,兩者不必相同。也不要一開始就重設整個網路或重新安裝用戶端;這些操作會擴大變更範圍,卻未必能改變占用連接埠的程序。
分兩步確認:先檢查監聽,再測試要求
修改完成後,先確認 10818 正在監聽,再明確指定代理測試要求。如此一來,就能區分「核心未啟動」、「應用程式仍使用舊連接埠」和「遠端連線失敗」,避免只看系統匣圖示就判定修復完成。
Get-NetTCPConnection -LocalPort 10818 -State Listen -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, OwningProcess
curl.exe --noproxy "" --proxy http://127.0.0.1:10818 --connect-timeout 5 --max-time 15 -I https://example.com/
此處使用 curl.exe,避免舊版 Windows PowerShell 將 curl 解讀為其他指令;--noproxy "" 可避免現有的略過清單跳過這次代理測試。5 秒是連線逾時上限,15 秒是整個要求的逾時上限,都是測試參數,並非實測延遲。範例網站僅用於確認要求路徑,最後仍須測試實際需要連線的目標。
- 立即提示連線遭拒:重新檢查監聽連接埠與核心記錄;目前還不到排查遠端節點的階段。
- 連線後逾時或遭重設:配合核心記錄檢查路由命中、節點連線與目標網站,不要再把所有問題都歸因於連接埠占用。
- 收到 HTTP 回應標頭:表示這次要求已透過指定的本機入口取得回應;即使狀態碼是 403,也與本機連接埠連線失敗不同。
- 指令成功但瀏覽器失敗:優先檢查瀏覽器擴充功能、獨立代理設定與舊視窗的狀態。若要確認流量是否透過代理送出,還須查看記錄中的路由結果,不能只憑回應判定。
常見問題:修改連接埠後容易漏掉哪些設定
一定要把 10808 改成 10818 嗎?
不一定。10818 只是方便對照的範例;請先查詢監聽狀態與排除範圍,再選擇可用的連接埠。連接埠號碼較大不會讓連線變快,選定後只要確保所有連線端使用相同設定即可。
每次重新啟動電腦都發生衝突,該怎麼處理?
錯誤出現後查詢占用 PID,並確認程序路徑。檢查 Windows「設定」→「應用程式」→「啟動」,以及工作排程器中是否留有舊資料夾的啟動項目;只保留預期的一種啟動方式,不要一再更換連接埠來掩蓋重複啟動。
修改混合連接埠後,訂閱和節點也要重新填寫嗎?
不必因本機連接埠變更而重新填寫節點。保留遠端伺服器位址、連接埠與驗證參數,只更新指向本機入口的應用程式設定。如果訂閱更新透過代理,也要確認更新要求實際使用的是新入口。
以系統管理員身分啟動就能直接解決嗎?
無法讓兩個一般監聽程序同時使用同一個衝突入口。系統管理員權限主要用於讀取受限制的程序資訊或執行系統診斷;若確實有程序占用,仍須關閉舊執行個體或更換連接埠。
結束前請記下三項資訊:最後使用的監聽連接埠、對應的程序路徑,以及哪些應用程式使用了個別代理設定。下次升級或移動資料夾後,先核對這三項,就能更快判斷問題出在本機入口還是後續連線路徑。