You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac启动Node项目提示EADDRINUSE端口5000已占用无法解决怎么办

问题根因

Mac 系统版本在 macOS 12 Monterey 及以上时,系统默认开启的隔空播放接收器服务会占用 5000、7000 端口,该服务属于系统内置服务,常规的端口查询、进程杀死命令无法正确识别、终止该服务,这也是同一份代码在Windows上可以正常运行的核心原因。

验证方法

执行以下命令可以确认是否为系统服务占用5000端口:

lsof -nP -iTCP:5000 | grep LISTEN

如果返回结果中进程名为ControlCenter,即可确认是隔空播放接收器占用。

解决方案

有两种可选方案:

方案1:关闭系统隔空播放接收器(释放5000端口)

操作路径:

  • 打开系统设置 → 通用 → 隔空投送与接力
  • 找到「隔空播放接收器」选项,关闭对应的开关即可
    关闭后无需重启设备,直接重新启动你的Node服务即可正常占用5000端口。

方案2:修改Node服务监听的绑定地址

如果你不想关闭隔空播放功能,可以修改Node服务的监听逻辑,指定仅绑定IPv4地址即可,因为系统服务默认占用的是IPv6的:::5000地址,修改方法如下:
找到你server.js第45行的监听代码,原来的代码大概率是:

app.listen(5000, () => { ... })

修改为指定绑定127.0.0.1:

app.listen(5000, '127.0.0.1', () => { ... })

修改后重启Node服务即可正常启动。

内容的提问来源于stack exchange,提问作者Moody Omar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:36:06