日志里出现 listen tcp 127.0.0.1:7897: address already in use,或者系统代理开关打开就自动弹回——都是同一件事:Clash 想用的端口被别的程序先占了。三步定位,两种解法。

使用 netstat 定位占用 7897 端口的进程并结束它
netstat 找 PID,tasklist 看进程名,taskkill 结束

第一步:找出占用者

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,保存后内核自动重启。改完注意两处联动:

预防复发

  1. 卸载不再使用的旧代理软件,别让它们开机自启抢端口;
  2. 迅雷、某些下载器和开发工具(如本地调试服务器)会随机监听高位端口,偶发撞上 7897 的话,固定给 Clash 一个不常见端口一劳永逸;
  3. 如果端口冲突伴随内核反复重启,问题可能不止端口,接着看内核启动排查