這幾個連接埠分別管什麼
混合連接埠同時接受 HTTP 與 SOCKS5 請求,絕大多數情況只用它一個就夠。外部控制連接埠是核心的管理介面,用戶端介面、面板、第三方工具都透過它讀狀態與切換節點。兩者的預設值在不同版本改過,新版是 7897 與 9097,早期版本是 7890 與 9090,從舊版升級上來的設定可能仍是舊值。
如果設定檔裡另外寫了 port 或 socks-port,它們會和混合連接埠一起監聽。沒有特殊需求不必開,多一個監聽連接埠就多一個曝險面。
以介面顯示的為準
動手前先在設定裡看一眼目前實際的連接埠號碼,不要照抄教學裡的數字。
改連接埠的正確順序
- 1
先在用戶端裡改
在 Clash 設定裡修改混合連接埠並儲存。系統代理會自動跟著更新,不需要手動去改 Windows 或 macOS 的代理設定。
- 2
再改手動設定過代理的地方
常見的有四處:git config --global http.proxy、npm 的 proxy 設定、終端機裡的 http_proxy 環境變數、瀏覽器的代理切換擴充功能。這些都不會自動更新。
- 3
最後逐項驗證
瀏覽器能開網頁代表系統代理沒問題;命令列另外測一次 curl。如果只有部分程式不通,代表還有地方留著舊連接埠。
連接埠被佔用怎麼辦
Windows 上先用 netstat -ano 搭配 findstr 過濾連接埠號碼找到 PID,再用 tasklist 查是哪個程式。macOS 與 Linux 直接用 lsof -i 加連接埠號碼。
還有一種更隱蔽的狀況:連接埠沒被任何程式佔用,卻仍然綁不上。Hyper-V 與 WSL 啟動時會預留大段動態連接埠,落在保留區間裡的連接埠誰都用不了。用 netsh interface ipv4 show excludedportrange protocol=tcp 看一眼保留區間,如果你的連接埠在裡面,換一個區間外的最省事。
- 連接埠選 1024 以上,避開常用服務
- 要給區域網路裝置使用,還得另外開啟「允許區域網路連線」
- 改完讓瀏覽器重新載入一次,否則可能還在用舊連線
常見問題
提示位址已被佔用,但 netstat 查不到?
多半是落進了 Windows 的排除連接埠區間,或上一個核心處理程序沒退乾淨。先在工作管理員確認沒有殘留的核心處理程序,再檢查保留區間。
外部控制連接埠可以關掉嗎?
不建議。儀表板、節點切換、連線列表都依賴它。擔心被外部存取的話,讓它只監聽 127.0.0.1 就夠了,不要綁到 0.0.0.0。