Skip to content

Clash 7890 端口被占用怎么办?找出占用进程与改端口方法 ​

Clash 7890 端口被占用怎么办?先理解端口占用的意思:客户端想在 7890(或 7891、7897、9090 等)端口监听,但这个端口已经被别的程序占了。解决办法只有两个,结束占用的程序,或者让客户端换一个端口。先找出谁占了,一分钟就能搞定。

速读要点

  • 同时开两个代理客户端是 7890 被占的第一原因
  • Windows 用 netstat 查 PID,macOS 用 lsof 查进程
  • 改端口后系统代理端口要跟着改,否则浏览器不走代理

现象 ​

  • 启动客户端或开启代理时报 bind: address already in use、listen tcp 127.0.0.1:7890: bind。
  • 内核反复重启,日志里循环出现端口错误。
  • 客户端界面正常,但节点测速全失败,系统代理指向的端口无响应。

先排除这 3 件事 ​

  1. 是否开了两个代理客户端:Clash Verge Rev 和 Clash for Windows、v2rayN 和 Clash 同时运行是最常见的占用来源,默认端口都是 7890 一类。
  2. 上一个实例是否没退干净:任务管理器或活动监视器里搜 clash、mihomo、verge、xray,有残留就结束掉。
  3. 重启后是否还占用:重启电脑后立刻启动客户端。还占用,说明有个开机自启的程序在用这个端口。

可能原因(按概率排序) ​

  1. 另一个代理客户端或加速器在运行。
  2. 上一次客户端异常退出,内核进程残留。
  3. 某个开机自启的软件恰好用了同一端口(开发工具、下载软件、远程桌面等)。
  4. 客户端里的多个端口设成了同一个值(如 HTTP 端口和混合端口都填了 7890)。
  5. 外部控制端口(通常 9090)被其他面板类工具占用。

Clash 7890 端口被占用怎么办:找出占用进程与改端口 ​

  1. 退出所有其他代理、加速器软件,结束残留进程,重启客户端。
  2. 找出占用者。Windows 管理员命令行执行 netstat -ano | findstr 7890,看最后一列 PID,再在任务管理器「详细信息」里按 PID 找到程序。macOS / Linux 执行 lsof -i :7890。
  3. 占用者是你不需要的程序就关掉或禁用自启;是需要的,就让客户端换端口。
  4. 在客户端「设置 → 端口」里把混合端口改成一个不常用的值(如 7899 或 17890),保存后重启客户端。
  5. 改完端口后同步检查系统代理设置里的端口是否跟着变了。没变就手动改,或关掉再开一次系统代理。
  6. 外部控制端口冲突的,在设置里把它改成别的值(如 9097)。它只影响面板与 API,不影响代理本身。

Windows、macOS、路由器三种环境的排查差别 ​

环境查占用的命令常见占用者
Windows管理员命令行 netstat -ano | findstr 7890第二个代理客户端、加速器、开发工具的本地服务
macOS终端 lsof -i :7890残留的内核进程、另一个客户端
Linux / 路由器ss -ltnp 或 netstat -tlnp同时启用的两个代理插件、手动装的 mihomo 服务

路由器上同时启用两个代理插件(如 OpenClash 与 passwall)是最常见的冲突来源,只保留一个。路由器端的端口设置见OpenClash 教程。

术语小注:客户端里的几个端口 ​

  • 混合端口:同时接受 HTTP 和 SOCKS 请求,系统代理通常指向它,默认多为 7890 一类。
  • HTTP 端口 / SOCKS 端口:分开监听的旧式设置,与混合端口填成同一个值就会自己和自己冲突。
  • 外部控制端口:给面板和 API 用,常见 9090,被占只影响面板显示,不影响上网。
  • 透明代理 / 重定向端口:TUN 或路由器透明代理用,电脑端一般用不到。

仍未解决 ​

提交工单时附上:客户端与版本、系统版本、节点名称、报错截图。附上 netstat 或 lsof 的输出,客服能直接看出占用者。

端口冲突是纯本地问题,和机场无关。但如果你同时装多个客户端是因为机场只给了一种格式,可以考虑换一家多格式都支持的,见多设备机场。

常见问题 ​

7890 端口被占用改成什么端口好 ​

选一个不常用的高位端口,比如 7899 或 17890,避开 1024 以下的系统端口和 3306、8080 这类常见服务端口。改完记得让系统代理设置里的端口跟着变。

怎么知道是谁占用了 7890 ​

Windows 管理员命令行执行 netstat -ano | findstr 7890,用最后一列 PID 到任务管理器「详细信息」里找程序;macOS / Linux 执行 lsof -i :7890,直接显示进程名。

改了端口以后浏览器不走代理了怎么办 ​

系统代理设置还指向旧端口。在客户端里关掉再打开一次系统代理让它重写,或到系统代理设置里手动把端口改成新值。

9090 端口被占用影响上网吗 ​

不影响。9090 通常是外部控制端口,只给面板和 API 用,代理流量走的是混合端口。在设置里把它改成别的值(如 9097)即可。

下一步 ​

相关阅读 ​

本站内容仅供参考,部分链接含推广说明,详见各优惠页。关于本站