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

为什么macOS Monterey下NodeJS无法在默认5000端口启动?

macOS Monterey 5000端口被Control Center占用问题说明

根本原因

macOS Monterey版本新增了AirPlay接收器功能,默认处于启用状态,允许其他苹果设备通过AirPlay协议将音频、视频、屏幕内容投射到当前Mac设备上。该功能的后台服务由Control Center托管,默认占用5000、7000两个端口,因此会导致本地开发时端口冲突。

冲突验证

你可以执行以下命令确认5000端口的占用进程:
lsof -i :5000
输出结果中如果COMMAND列显示为ControlCenter,即可确认是系统AirPlay服务占用了端口。

解决方案

  • 方案1:关闭AirPlay接收器(永久释放5000端口)
    打开系统偏好设置 → 找到「共享」选项 → 取消勾选列表中的「AirPlay接收器」即可,操作完成后端口会立即释放无需重启电脑。
    如果你后续升级到了macOS Ventura及以上版本,操作路径调整为:系统设置 → 通用 → 隔空投送与接力 → 关闭「AirPlay接收器」。
    注意:关闭后你的Mac将无法作为AirPlay投屏接收端使用,如果有投屏需求建议选择方案2
  • 方案2:修改Node服务启动端口
    如果你需要保留AirPlay功能,可以直接修改Node项目的监听端口,启动时指定端口即可:
    PORT=自定义端口号 node 你的启动文件.js
    也可以直接在项目的配置文件(比如.env、app.js等)中将默认监听端口从5000修改为其他未被占用的端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:54:04