Clash Verge 設定裡有一堆連接埠:混合連接埠、HTTP 連接埠、SOCKS 連接埠、重定向連接埠、外部控制連接埠。大部分人一輩子不用改,但一旦遇到連接埠衝突或者要配命令列工具,就得知道它們各自是干什麼的。
五個連接埠分別是什麼
混合連接埠(Mixed Port)
這是你 99% 情況下要用的那個。
它的特殊之處在於能自動識別協議:用戶端發來 HTTP 請求它就當 HTTP 代理處理,發來 SOCKS5 握手它就當 SOCKS5 處理。所以填地址的時候,不管對方要 HTTP 還是 SOCKS,填同一個連接埠就行。
HTTP 連接埠 / SOCKS 連接埠
歷史遺留。在混合連接埠出現之前需要分開設定。現在保留它們主要是為了相容某些只認固定連接埠的老軟體。
如果不需要,建議關掉(設為 0 或留空)——少開一個連接埠少一份暴露面。
重定向連接埠(Redir Port / TProxy Port)
用於 Linux 和 macOS 上的透明代理(配合 iptables/nftables 規則把流量重定向過來)。桌面使用者基本用不上,做軟路由才需要。
外部控制連接埠(External Controller)
預設 9090。這是 Mihomo 的 RESTful API,Clash Verge 介面本身就是通過它和核心通信的。
第三方面板(metacubexd、yacd)也連這個連接埠。
各類工具該填哪個連接埠
假設你的混合連接埠是 7897:
| 工具 | 設定方式 |
|---|---|
| Windows 系統代理 | 127.0.0.1 : 7897 |
| Chrome / Edge | 跟隨系統代理,不用單獨配 |
| Firefox | 設定 → 網路設定 → 手動,HTTP 和 SOCKS 都填 7897 |
| Git | git config --global http.proxy http://127.0.0.1:7897 |
| npm | npm config set proxy http://127.0.0.1:7897 |
| pip | pip install --proxy http://127.0.0.1:7897 包名 |
| curl | curl -x http://127.0.0.1:7897 https://example.com |
| SSH | 在 ~/.ssh/config 裡加 ProxyCommand(見下) |
| Docker | 設定 daemon proxy,或直接開 TUN |
SSH 走代理
# ~/.ssh/config
Host github.com
HostName github.com
User git
# Windows(需要裝 ncat 或用 connect.exe)
ProxyCommand ncat --proxy 127.0.0.1:7897 --proxy-type http %h %p
# macOS / Linux
# ProxyCommand nc -X connect -x 127.0.0.1:7897 %h %p環境變數一次搞定
大部分命令列工具都認這幾個環境變數:
# macOS / Linux
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
export no_proxy="localhost,127.0.0.1,::1,*.local,192.168.0.0/16"# Windows PowerShell
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:NO_PROXY = "localhost,127.0.0.1,::1,*.local"連接埠衝突怎麼辦
啟動時報「連接埠被佔用」「address already in use」,說明有別的程式搶先佔了。
找出是誰佔的
Windows:
netstat -ano | findstr :7897
# 拿到最後一列的 PID,再查是什麼程式
tasklist | findstr <PID>macOS / Linux:
lsof -i :7897
# 或
ss -tlnp | grep 7897兩條解決路
改連接埠的話,選一個 1024 到 65535 之間、沒被佔用的數字。常用備選:7898、7899、10808、10809。
一個常見誤解:改連接埠不會提速
有人以為換個連接埠能繞過限速。不會的——連接埠只是本機上的一個入口編號,跟你的網路速度、節點品質沒有任何關係。
真正影響速度的是節點線路、頻寬、和你到節點的網路路徑。
關於「允許區域網路連接」和連接埠的關係
打開「允許區域網路連接」後,連接埠的監聽地址會從 127.0.0.1 變成 0.0.0.0:
驗證方法:
netstat -an | findstr 7897看到 0.0.0.0:7897 說明區域網路可訪問,看到 127.0.0.1:7897 說明只有本機可用。
連接埠相關的排查小技巧
測試代理連接埠是否真的在工作:
curl -x http://127.0.0.1:7897 -I https://www.google.com回傳 HTTP 狀態碼說明代理通了。報 Connection refused 說明連接埠沒開或者填錯了。
測試外部控制 API:
curl http://127.0.0.1:9090/version回傳 JSON 裡帶版本號說明核心在正常執行。
這兩條命令在排查「到底是用戶端問題還是節點問題」時特別有用:如果 API 正常但代理請求失敗,問題在節點或規則;如果 API 都連不上,說明核心根本沒起來。
小結
- 日常只用混合連接埠,HTTP 和 SOCKS 單獨連接埠可以關掉
- 命令列工具用環境變數,記得配
no_proxy - 外部控制連接埠別暴露公網,要暴露就設 secret
- 連接埠衝突時先查佔用,改連接埠是最後手段