Skip to content

Clash 7890 端口被占用 (Address In Use) 秒级排查与修复 2026 ​

直接结论:遇到 Clash 核心启动日志提示 bind: address already in use :7890 或 listen tcp 127.0.0.1:7890: bind: permission denied / address in use 时,95% 的原因在于:旧版 Clash 崩溃后残留的僵尸内核进程未退出,或是本地运行了其他代理/调试工具(如 v2rayN、Fiddler、Charles)。最立竿见影的解决对策是:在终端用一条命令精准定位并强制结束霸占端口的进程,或直接在客户端将混合端口改为 7899。


一、端口冲突典型触发场景与决策排查树 ​

mermaid
flowchart TD
    PortErr["启动报 7890 端口被占用"] --> CheckPort{"谁在占用 7890 端口?"}
    CheckPort -->|残留的 clash-core/mihomo| KillGhost["执行 Stop-Process 杀灭僵尸进程"]
    CheckPort -->|其他代理工具 (v2rayN/NekoBox)| CloseConflict["退出竞态代理软件并重试"]
    CheckPort -->|未知系统服务或无权限结束| ChangePort["修改 Clash 混合端口为 7899"]
    KillGhost --> RestartClash["重启 Clash Verge 恢复正常"]
    CloseConflict --> RestartClash
    ChangePort --> RestartClash

二、Windows 平台:两步精准杀灭占用进程 ​

在 Windows 10/11 环境下,最常见的情况是客户端主界面虽然关闭,但后台的 clash-verge-service.exe 或 mihomo.exe 仍然存活并持有套接字(Socket)。

步骤 1:查找占用端口的 PID ​

以管理员身份打开 PowerShell,执行以下命令:

powershell
# 查找本地监听 7890 端口的连接与对应进程 PID
Get-NetTCPConnection -LocalPort 7890 -ErrorAction SilentlyContinue | Select-Object LocalAddress, LocalPort, State, OwningProcess

如果习惯使用传统 CMD 命令行:

cmd
netstat -ano | findstr ":7890"

终端将输出类似如下行:

TCP    127.0.0.1:7890         0.0.0.0:0              LISTENING       14892

最后一列的数字 14892 即为持有端口的进程 ID(PID)。

步骤 2:识别进程名称并强制结束 ​

确认占用者身份并执行强杀:

powershell
# 1. 确认该 PID 到底是什么软件
Get-Process -Id 14892 | Select-Object ProcessName, Path

# 2. 强制杀灭该进程
Stop-Process -Id 14892 -Force

若在 CMD 中操作:

cmd
taskkill /F /PID 14892

结束后重新在 Clash Verge 界面点击「启动内核」或重启客户端,端口监听即可顺利恢复。


三、macOS 与 Linux 平台:终端一行流排查 ​

在 macOS 或各类 Linux 终端下,操作更为便捷:

bash
# 1. 使用 lsof 查看端口占用情况
lsof -i :7890

# 预期输出示例:
# COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
# mihomo    23841 root    7u  IPv4  78239      0t0  TCP *:7890 (LISTEN)

# 2. 一行流强制结束占用 7890 端口的进程
sudo kill -9 $(lsof -t -i:7890)

若在某些精简版 Linux 环境中未预装 lsof,可改用 ss 命令定位:

bash
sudo ss -tulpn | grep :7890

四、一劳永逸对策:直接在客户端修改监听端口 ​

如果您电脑上运行着特定的开发环境或企业 VPN 软件,必须长期固定占用 7890 端口,最稳妥的策略是将 Clash 的混合代理端口修改为一个冷门端口(如 7899 或 10808):

1. 在图形界面修改 ​

  1. 打开 Clash Verge Rev 或 Clash Verge 设置页面;
  2. 找到「基础设置 / General」中的「混合代理端口 (Mixed Port)」;
  3. 将数值从 7890 更改为 7899;
  4. 点击保存并重启内核。

2. 在配置文件 config.yaml 中修改 ​

直接编辑配置文件顶部字段:

yaml
# 修改混合代理端口为 7899
mixed-port: 7899
port: 0
socks-port: 0

保存后,客户端的系统代理服务会自动将 Windows 注册表中的代理指向更新为 127.0.0.1:7899,从此彻底告别端口冲突。


五、相关故障排查指南 ​


商业评测参考jichangblog.blog
2026 高可用晚高峰不卡顿机场深度横评
全专线 BGP 入口与多线机房容灾,完美契合多设备高吞吐并发传输需求。