錯誤訊息在說什麼?常見的埠衝突組合
Clash 系核心在啟動時要「綁定(bind)」本機的 TCP/UDP 埠,若該埠已被其他行程占用,就會在圖殼、終端或日誌裡出現 address already in use、bind: address already in use、listen ... already in use 之類字樣。這和「節點連不上、timeout、TLS 握手失敗」是不同一類問題;後者屬遠端或 DNS,前者是你這台機器上已經有人在聽那個埠。若日誌裡沒有明寫埠號,先把日誌等級調高或從圖殼的「匯出有效設定」讀實際的 mixed-port、port、socks-port,並對照
從日誌讀懂錯誤型別,
避免把「埠衝突」當成節點品質在猜。
多數圖殼與新手上手範本會用 mixed-port 同時提供 HTTP 與 SOCKS5(埠號相同、協定不同),預設常落在 7890 附近。若你另開了舊版 Clash、其他代理、本機轉發器、或 Docker/WSL2 的某個服務,也可能搶在 Clash 之前佔了同一埠。WSL2 從子系統連 Windows 宿主的埠語意、以及 localhost 的拆法,可與
WSL2 與宿主機 Clash 代理專文
一併對讀,避免以為是「埠壞了」其實是網路命名空間不同。
Windows 11:查佔用埠與 PID、決定釋出或關閉
在 Windows 11 上,以系統管理員開啟「命令提示字元」或 PowerShell,可快速鎖定誰佔了埠。假設日誌或設定指出衝突埠為 7890(請改成你實際埠號):
- 看 TCP 佔用:
netstat -ano | findstr :7890,最後一欄即行程識別碼 PID。 - 看 UDP(若核心同埠也綁 UDP): 同樣以
netstat -ano觀察;若列表混亂,可只篩LISTENING或對照圖殼顯示的通訊協定。 - 由 PID 反查程式名稱:
tasklist /FI "PID eq 12345"將12345替換成上一步的數字。
若發現佔用者是你上一個沒關乾淨的 Clash 圖殼,多半用工作管理員結束該處理程序即可,再重開 Clash。若佔用者是公司 VPN、遠端桌面代理、或你不確定能否關的服務,較安全的路線是走下一節「改 mixed-port」而不是強殺他牌行程。圖殼在 Win11 上首次開 TUN、權限與雜湊的完整首裝,可參 Clash Verge Rev 在 Windows 11 的安裝與 TUN 步驟; 該文脈絡是「能正常跑起來」,本文則補上「起不來、埠被占用」的交集。
macOS:lsof 與活動監視器
在 macOS 開「終端機」,以一般使用者多數可執行:
macOS — find process listening on a port (example 7890)lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iUDP:7890
輸出中會有命令名稱與 PID。若要圖形介面,開「活動監視器」→ 選單「檢視」→「直欄」→ 勾「PID」,再用搜尋或對照 lsof 的 PID 找到父行程。與 TUN、系統延伸、本機回環代理疊加時的整體排查,可與
macOS 上 TUN 與系統代理衝突專文
併讀,但它處理的是「授權與代理打架」,本文則是「還沒到那一步就卡在最底層的聽埠失敗」。
改 mixed-port 與圖殼、系統代理、環境變數對齊
釋出原埠、或更換一個不衝突的埠兩者擇一即可。若採用後者,請在圖殼的「本機覆寫/mixin」或圖殼內的埠設定裡,把 mixed-port 改成例如 7891、10808 等,並讓同一套「有效設定」在匯出後可見。接著在作業系統的手動代理、瀏覽器外掛、或終端中的 HTTP_PROXY/ALL_PROXY 一併改成新埠;終端、Docker 與 mixed-port 一條龍的寫法,見
Docker 與終端走 mixed-port 專文。
少數人會同時使用 mixed-port: 0 或拆成獨立 port 與 socks-port;那麼日誌裡報錯的可能是兩行中的其中一行。請在有效 YAML 裡數清楚到底綁了幾個埠,再各自用上一節指令查。若你曾依另一篇
關閉 Clash 後斷網、清系統代理
的步驟清過代理,也不妨確認系統沒有仍指向舊埠,導致「Clash 已換埠、但應用還在連舊的」的錯覺。
啟動後驗證與和「能連但怪」的差異
當圖殼顯示核心已執行、且沒有再報 listen 失敗,請做最小驗證:以瀏覽器或 curl -x 測一個能直連檢測的 HTTPS 頁面,確認回應的出口與你預期節點一致;可開著日誌觀察是否有新連線打到 127.0.0.1:新埠。若啟動成功但上網行為仍異常,就回到與本埠文無關的維度,例如訂閱、DNS、規則優先權。埠占用排完後,若仍斷斷續續,請不要與本題混談,改從你平常用的分流與測速文章往下追。
結語
Clash 埠占用本質是「要聽的埠已經被佔了」:在 Windows 11 用 netstat 找 PID、在 macOS 用 lsof 對上行程,再決定關掉重複的 Clash 實例、釋出第三方服務,或乾脆改一個空著的 mixed-port 並讓系統與應用同步更新。釐清錯誤型別、一次完成埠與代理字串的對齊,比反覆重裝圖殼更省時間。
想在一套介面裡匯出有效設定、讀日誌、驗證聽埠是否恢復,可選內建流程清楚的 Clash 系客戶端體驗。→ 立即免費下載 Clash,開啟流暢上網新體驗,先把「能穩定啟動、埠不打架」作為之後再談 TUN 與規則的前提。