M1芯片Mac运行Node.js项目报EADDRINUSE端口5000占用如何解决?
问题根因
macOS Monterey 及更高版本系统默认开启的 AirPlay接收器 功能会占用 5000、7000 两个端口,该服务属于系统内置服务,普通的杀进程操作无法终止,进程被强制关闭后也会自动重启,这就是你排查普通端口占用方案无效的核心原因。
修复方案
方案1:关闭AirPlay接收器(无需修改项目代码,优先推荐)
操作步骤如下:
- 打开Mac系统设置
- 进入「通用」-「AirDrop与Handoff」页面
- 找到「AirPlay接收器」选项,关闭对应开关
- 执行
lsof -i :5000验证端口是否释放,无输出即为释放成功,重新运行node app.js即可正常启动
方案2:修改项目监听端口
如果需要保留AirPlay接收器功能,直接修改Node.js项目中服务监听的端口配置,将5000替换为其他未被占用的端口(例如3000、8000等),修改完成后重启项目即可。
内容的提问来源于stack exchange,提问作者zumzum
相关产品推荐
相关产品推荐

