日誌裡出現 listen tcp 127.0.0.1:7897: address already in use,或者系統代理開關開啟就自動彈回——都是同一件事:Clash 想用的埠被別的程式先佔了。三步定位,兩種解法。
第一步:找出佔用者
Windows 按 Win+R 輸入 cmd 回車,執行:
netstat -ano | findstr 7897
輸出最後一列是程序 PID(比如 14232),再查它是誰:
tasklist /FI "PID eq 14232"
macOS / Linux 一條命令直接看名字:
lsof -i :7897
第二步:決定誰讓路
情況 A:佔用者是別的代理軟體
最常見。Clash for Windows、v2rayN、Shadowsocks 等預設埠相近,雙開必撞。徹底退出那個軟體(注意托盤裡可能還掛著),再重啟 Clash Verge。長期共存沒有意義——一臺機器留一個代理客戶端就夠了,從 CFW 過來的看遷移教程。
情況 B:佔用者是殘留的 verge-mihomo 程序
上次退出沒退乾淨,舊核心還抓著埠。工作管理員(Ctrl+Shift+Esc)搜 verge-mihomo,結束程序後重啟軟體。命令列黨直接:
taskkill /IM verge-mihomo.exe /F
情況 C:佔用者是你不認識的正經軟體
別結束它,給 Clash 換埠更穩妥——看第三步。
第三步(可選):給 Clash Verge 換埠
「設定」頁面找到「埠設定」,把混合埠從 7897 改成一個冷門值,比如 17890,儲存後核心自動重啟。改完注意兩處聯動:
- 系統代理由 Clash Verge 自動管理,會跟著新埠走,無需手動改;
- 但手動配過代理的地方要同步更新——瀏覽器外掛、終端環境變數、區域網裡指向這臺電腦的裝置。
預防復發
- 解除安裝不再使用的舊代理軟體,別讓它們開機自啟搶埠;
- 迅雷、某些下載器和開發工具(如本地除錯伺服器)會隨機監聽高位埠,偶發撞上 7897 的話,固定給 Clash 一個不常見埠一勞永逸;
- 如果埠衝突伴隨核心反覆重啟,問題可能不止埠,接著看核心啟動排查。