← AI 百科

端口被占用

报错库 ·
一句话:端口被占用表示项目想使用的端口已经被其他程序占着,常见报错包括 EADDRINUSE。

它是什么

端口可以理解为电脑上给程序对外服务的门牌号。一个端口同一时间通常只能被一个程序占用。如果项目要启动在3000端口,但3000已经被另一个服务占了,就会启动失败。

适合干什么

  • 运行前端或后端项目时报 EADDRINUSE 的人
  • 本地同时开多个项目的新手
  • 不知道 localhost:3000 是什么意思的人
  • 用AI工具启动项目但端口冲突的人

不适合干什么

  • 线上域名DNS解析问题
  • 服务器防火墙策略配置
  • 接口逻辑返回错误但项目已正常启动的情况

普通人怎么用

  • 看报错里提示哪个端口被占用
  • 关闭之前启动的同类项目
  • 或者换一个端口启动
  • 必要时查找占用端口的进程并结束
  • 重新运行启动命令

进阶用户怎么用

  • 为不同项目固定不同端口
  • 用环境变量 PORT 指定端口
  • 写启动脚本自动检测端口
  • 区分前端开发端口、后端API端口和数据库端口

常见误区

  • 重复打开多个终端启动同一个项目
  • 不知道上一次项目还在后台运行
  • 随便杀进程导致其他重要服务被关
  • 前端端口和后端端口混淆

和相似工具的区别

  • 端口被占用 vs 网络断开:端口被占用是本机已有程序占住门牌号,网络断开是无法连接外部或目标服务。
  • localhost vs 线上域名:localhost通常指自己的电脑,线上域名指互联网上的服务器地址。

入门步骤

  • 找到报错中的端口号
  • 确认是否已有项目在运行
  • 优先关闭旧终端或停止旧服务
  • 仍失败再查占用进程
  • 必要时换端口启动

推荐工具(第三方)

VS Code Terminal、Windows Terminal、lsof、netstat、npx kill-port