端口被占用
一句话:端口被占用表示项目想使用的端口已经被其他程序占着,常见报错包括 EADDRINUSE。
它是什么
端口可以理解为电脑上给程序对外服务的门牌号。一个端口同一时间通常只能被一个程序占用。如果项目要启动在3000端口,但3000已经被另一个服务占了,就会启动失败。
适合干什么
- 运行前端或后端项目时报 EADDRINUSE 的人
- 本地同时开多个项目的新手
- 不知道 localhost:3000 是什么意思的人
- 用AI工具启动项目但端口冲突的人
不适合干什么
- 线上域名DNS解析问题
- 服务器防火墙策略配置
- 接口逻辑返回错误但项目已正常启动的情况
普通人怎么用
- 看报错里提示哪个端口被占用
- 关闭之前启动的同类项目
- 或者换一个端口启动
- 必要时查找占用端口的进程并结束
- 重新运行启动命令
进阶用户怎么用
- 为不同项目固定不同端口
- 用环境变量 PORT 指定端口
- 写启动脚本自动检测端口
- 区分前端开发端口、后端API端口和数据库端口
常见误区
- 重复打开多个终端启动同一个项目
- 不知道上一次项目还在后台运行
- 随便杀进程导致其他重要服务被关
- 前端端口和后端端口混淆
和相似工具的区别
- 端口被占用 vs 网络断开:端口被占用是本机已有程序占住门牌号,网络断开是无法连接外部或目标服务。
- localhost vs 线上域名:localhost通常指自己的电脑,线上域名指互联网上的服务器地址。
入门步骤
- 找到报错中的端口号
- 确认是否已有项目在运行
- 优先关闭旧终端或停止旧服务
- 仍失败再查占用进程
- 必要时换端口启动
推荐工具(第三方)
VS Code Terminal、Windows Terminal、lsof、netstat、npx kill-port