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

MacOS Sonoma下所有端口均报listen EADDRINUSE错误求助

解决MacOS Sonoma下Node.js/Express无论更换端口均报EADDRINUSE的问题

排查与解决方案

1. 定位非Node进程占用端口

你的kill命令仅针对Node进程,但占用端口的可能是其他程序。用以下命令精准定位:

  • 检查指定端口(示例为1000):
    lsof -i :1000
    
    输出中PID列即为进程ID,执行kill -9 <PID>强制终止该进程。
  • 查看所有监听的IPv6端口(错误中::属于IPv6地址):
    netstat -anp tcp | grep LISTEN
    
    找到对应端口的进程后终止。

2. 关闭AirPlay Receiver

MacOS Sonoma默认开启的AirPlay Receiver会占用5000、7000等端口,易引发冲突:

  • 打开「系统设置」→「通用」→「AirDrop与Handoff」
  • 关闭「AirPlay Receiver」选项,重启终端后重新运行项目

3. 清理隐藏的Node残留进程

ps -ae | grep node可能遗漏后台进程,用更全面的命令排查:

ps aux | grep node

找到所有Node进程的PID后执行kill -9 <PID>,或直接批量终止:

pkill -9 node

4. 检查代码是否重复监听端口

查看src/index.ts第37行附近的代码,确认是否存在多次调用app.listen()的逻辑(比如循环、多文件重复监听),确保仅在一处启动服务监听。

5. 重置网络栈

若以上方法无效,可能是系统网络栈异常,执行以下命令重置:

sudo ifconfig lo0 down && sudo ifconfig lo0 up

或直接重启电脑,彻底恢复网络状态。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:45:14