本文重點

遇到核心啟動失敗、監聽位址繫結失敗,或更改連接埠後瀏覽器無法上網時,先確認本機監聽連接埠及所屬程序,再決定要關閉重複執行的執行個體,還是更改連接埠。本文以 10808 改為 10818 為例,說明如何查看記錄、定位 Windows 程序、設定 v2rayN 參數並同步更新應用程式代理設定。連接埠僅為操作範例,請以本機設定為準。

分辨本機監聽衝突與節點連線失敗

v2rayN 是設定與管理介面,實際接收本機代理連線的是它啟動的核心。瀏覽器將請求送至本機監聽位址,再由核心依路由規則分流。若本機連接埠無法繫結,連線流程在請求抵達遠端節點前就已中斷;更新訂閱或更換 VMess、VLESS 節點通常無法解決問題。

瀏覽器請求本機監聽連接埠核心路由遠端節點目標網站

先查看主畫面的記錄區,找出啟動失敗前後的完整錯誤訊息。以下兩則是 Windows 常見的通訊端錯誤原文,記錄前面可能還會附上監聽位址、連接埠及核心資訊。不要只憑「連線失敗」四個字就判定是連接埠衝突。

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

原因與解法:通常表示位址或連接埠已遭占用,Windows 錯誤碼為 10048。核對錯誤訊息中的位址與連接埠,再查出監聽程序;關閉重複執行的執行個體,或為目前的執行個體選擇未占用的連接埠。

錯誤:An attempt was made to access a socket in a way forbidden by its access permissions.

原因與解法:通常對應 Windows 錯誤碼 10013,可能與系統連接埠排除範圍、安全性原則或其他通訊端繫結限制有關。若查不到一般監聽程序,請接著檢查排除範圍,不要直接認定是節點故障。

如果記錄只有遠端連線逾時、驗證失敗或網域名稱解析失敗,而本機監聽已建立,應改查節點參數、DNS 或網路路徑。本文處理的是本機連接埠繫結問題,不會把所有無法上網的情況都歸因於連接埠遭占用。

使用 netstat 查出連接埠與 PID

先開啟「設定」→「參數設定」,記下目前的本機監聽連接埠。較新版介面通常會在「Core: 基礎設定」中顯示「本機混合監聽連接埠」;不同版本的分類與文字可能略有差異,請以實際欄位為準。以下使用一組明確的範例值,不代表各版本都採用相同的預設值。

10808
範例:待排查的原連接埠
10818
範例:檢查後選用的新連接埠
127.0.0.1
本機 IPv4 迴送位址

按下 Win + R,輸入 cmd 後按 Enter。在命令提示字元中執行第一個命令;第二個命令用來確認準備改用的連接埠。

netstat -ano -p tcp | findstr ":10808"
netstat -ano -p tcp | findstr ":10818"
  • 查看「本機位址」欄,確認冒號後的數字確實是目標連接埠;findstr 也可能比對到遠端位址或更長的數字,因此不能把每一行都當成連接埠遭占用的證據。
  • 請特別查看狀態為 LISTENING 的記錄。最後一欄是 PID,也就是程序識別碼,不是連接埠號碼。
  • 留意 0.0.0.0:10808 和 [::]:10808 等萬用監聽位址,不要只搜尋 127.0.0.1。是否構成衝突,仍取決於繫結位址與通訊端選項。
  • 不要把 TIME_WAIT 直接視為應用程式仍在監聽,也不要因此結束無關的程序。

若要精確篩選,可在 PowerShell 中執行以下命令。它只會篩選本機 TCP 監聽連接埠;OwningProcess 是接下來需要核對的 PID。沒有輸出表示查詢當下找不到對應的 TCP 監聽,不代表連接埠一定能成功繫結。

Get-NetTCPConnection -State Listen |
  Where-Object { $_.LocalPort -in 10808,10818 } |
  Select-Object LocalAddress,LocalPort,State,OwningProcess

使用資源監視器確認程序身分

查到 PID 後,先辨識程序再決定是否關閉。監聽程序可能是目前正在使用的核心,也可能來自另一個 v2rayN 資料夾、殘留程序或其他本機服務。僅憑程序名稱相同,無法判斷它屬於哪個執行個體。

  1. 開啟資源監視器

    按下 Win + R,輸入 resmon 後按 Enter。切換到「網路」索引標籤,展開「接聽連接埠」,在連接埠欄搜尋 10808,並核對映像名稱、PID 與通訊協定。

  2. 確認檔案路徑

    開啟工作管理員的「詳細資料」,依 PID 找到同一個程序,按右鍵選擇「開啟檔案位置」。必要時啟用「命令列」欄,確認啟動目錄與參數是否屬於目前的 v2rayN。

  3. 關閉重複執行的執行個體

    如果程序來自另一個 v2rayN 執行個體,請優先從對應的系統匣選單選擇「結束」。關閉主視窗可能只是將程式最小化到系統匣,不代表程序已停止。

  4. 重新檢查監聽狀態

    再次查詢連接埠,確認舊的監聽已消失,再啟動要保留的執行個體。若監聽很快又出現,請檢查工作管理員的「啟動應用程式」及工作排程器是否有重複的啟動項目。

也可以在命令列依 PID 查詢映像名稱,例如 tasklist /FI "PID eq 4321";其中 4321 僅為語法範例,請替換成查詢到的實際 PID。不要照抄數字來執行結束程序的命令,也不要為了釋出連接埠而任意終止系統服務。若該服務必須保留,為 v2rayN 更改連接埠通常更合適。

更改 v2rayN 本機監聽連接埠

選擇新連接埠前,先查詢一次,避免從一個衝突換到另一個衝突。連接埠範圍為 1 至 65535,本例使用 10818;這只是方便說明的候選值,不是保證未被占用的特殊連接埠。要更改的是本機入站監聽連接埠,不是節點編輯視窗中的伺服器連接埠。

  1. 記下原設定

    記下原本的監聽位址、連接埠及目前的系統代理模式。如果其他軟體使用手動代理,也請記下代理類型與連接埠,以便同步修改或還原。

  2. 前往參數設定頁面

    開啟「設定」→「參數設定」→「Core: 基礎設定」,找到「本機混合監聽連接埠」。若目前介面使用「本機監聽連接埠」等名稱,請依原連接埠與欄位說明確認,不要更改節點位址或訂閱網址。

  3. 儲存新連接埠

    將本例中的 10808 改為 10818,然後儲存設定。若此版本分別提供 HTTP 與 SOCKS 監聽欄位,請逐一檢查;不要假設另一個連接埠一定會自動加 1,也不要任意將兩個獨立監聽設為相同數值。

  4. 重新啟動並確認

    重新載入設定;若儲存後核心沒有重新啟動,請正常結束 v2rayN 再重新開啟。查看啟動記錄,接著查詢 10818,確認監聽已建立,且 PID 屬於這次啟動的核心。

同步更新系統代理、瀏覽器與命令列設定

核心改為監聽 10818 後,仍指向 10808 的應用程式會繼續連線到舊位址。因此,「核心啟動成功但網頁無法開啟」通常不是新連接埠失效,而是使用端沒有同步更新。請依照以下清單逐項檢查,比起反覆更改節點更容易找出問題。

  • 系統代理:在 v2rayN 系統匣選單的「系統代理」中,先選擇「清除系統代理」,再選擇「自動設定系統代理」。接著開啟 Windows 11「設定」→「網路和網際網路」→「Proxy」,確認產生的設定與目前連接埠一致。若使用 PAC,也請檢查目前的設定,不要只查看手動代理項目。
  • 瀏覽器:使用系統代理的瀏覽器通常會隨系統設定更新;使用獨立代理設定的瀏覽器或擴充功能,則需要手動改為新連接埠。Firefox 可在「設定」→「一般」→「網路設定」→「設定」中確認系統代理或手動代理選項。
  • 代理類型:HTTP 代理與 SOCKS 代理使用不同的通訊協定。混合監聽可依支援範圍接收不同類型的連線;個別監聽則應填入相應的連接埠,不能只因連接埠連得上就認定代理類型正確。
  • 命令列:檢查目前終端機及使用者環境變數中的 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY。如果其中包含舊連接埠,更新後重新開啟終端機;已啟動的程序通常仍會沿用啟動時讀取的環境變數。

先測試本機 TCP 連線,再測試代理請求。第一個命令只會檢查能否建立 TCP 連線,不能證明代理協定或節點可用。第二個命令會明確使用 HTTP 代理,適用於已確認支援 HTTP 的混合監聽或 HTTP 監聽。

Test-NetConnection -ComputerName 127.0.0.1 -Port 10818
curl.exe --proxy http://127.0.0.1:10818 --connect-timeout 10 --max-time 20 --head https://example.com/

這兩個命令都可在 PowerShell 中執行。若第一個失敗,請回頭檢查監聽與程序;若第一個成功、第二個失敗,接著檢查代理類型、核心記錄與節點連線。若明確指定代理的請求能取得回應,但瀏覽器仍無法連線,請優先檢查瀏覽器的個別設定、系統代理及既有連線快取,不要據此推論所有網站都能正常存取。

查不到占用程序時,檢查系統保留範圍

若出現 10013,且一般監聽查詢沒有結果,可在系統管理員終端機查看 Windows 的連接埠排除範圍。虛擬化或容器網路元件可能會影響連接埠分配;是否相關,應以本機命令的結果為準,不能只因安裝過某項功能就下結論。

netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp
  • 比對起始連接埠與結束連接埠,確認 10808 或候選連接埠是否落在某個區間內;檢查時也要考量實際監聽的位址家族。
  • 若候選連接埠位於排除範圍內,請優先改用範圍外且未被監聽的連接埠,然後儲存並驗證。不要直接照抄刪除系統排除範圍的命令。
  • 若連接埠既沒有被監聽,也不在相關排除範圍內,請繼續檢查安全性軟體記錄、組織原則,以及自訂設定中是否有重複的入站項目。
  • 若衝突只在啟動瞬間發生,請保留該時刻的完整記錄並立即查詢程序;程序結束後才查,可能已經找不到先前的占用者。

不要把關閉防火牆當成首選方法。防火牆放行、監聽繫結與遠端連線是不同環節;一般的入站封鎖規則不代表某個連接埠已被程序占用。系統管理員權限也無法讓兩個衝突的監聽自動共存;只有記錄明確指出權限或原則問題時,才沿著相應方向繼續處理。

連接埠衝突常見問題

更改連接埠會影響訂閱或節點嗎?

更改本機監聽連接埠通常不會改變訂閱內容,也不會影響遠端節點的伺服器連接埠。需要同步更新的是連線至本機代理的應用程式。若使用自訂設定,還應確認其中是否固定指定入站連接埠,避免介面設定與實際設定不一致。

占用程序是 Xray,可以直接結束嗎?

請先用 PID、檔案路徑及命令列確認程序所屬。它可能是目前正常運作的核心,也可能來自另一個執行個體。請優先結束對應的 v2rayN;確認管理程式已結束但核心仍殘留後,再透過工作管理員處理該程序,接著重新檢查監聽狀態。

開機後又發生衝突,每次都要更換連接埠嗎?

不必一直更換。開機後立即查詢連接埠的 PID,確認是否有來自不同資料夾的 v2rayN 同時自動啟動,或其他固定服務搶先監聽。保留需要的啟動項目,並為必須共存的程式分配不同連接埠,才能避免下次登入時再次發生衝突。

啟用 TUN 就能避開這個問題嗎?

不能把 TUN 當成修復連接埠衝突的開關。TUN 的接管路徑與系統代理不同,但設定中仍可能保留本機監聽;只要衝突的入站仍在啟動,錯誤就可能持續。請先修復繫結問題,再依應用程式是否讀取系統代理來決定是否需要 TUN。詳情請參閱手冊的 TUN 章節。

v2rayN 用戶端下載

依照作業系統與架構選擇用戶端下載入口;首次設定可參考教學,完成訂閱匯入與系統代理設定。