在本地开发预览或启动服务时,常会遇到 EADDRINUSE 或“端口已在使用”的报错。这并非系统故障,而是网络资源竞争的典型表现。
问题本质
该报错意味着你尝试启动的服务所请求的端口已被另一个正在运行的进程占用。
常见原因
- 残留进程:上一次启动的开发服务(Dev Server)未被正常关闭,仍在后台运行。
- 终端冲突:在多个终端窗口中重复启动了同一个项目的预览服务。
- 软件占用:其他软件(如数据库、代理工具或系统服务)恰好使用了该默认端口。
排查与处理逻辑
第一步:识别占用者
要求 Codex 查明具体是哪个进程占用了端口。重点确认该进程是否为你刚才启动的旧服务。
第二步:评估处理方式
- 结束旧进程:如果你确定旧服务已不再需要,或者你需要重启当前项目,应选择结束该进程。
- 更换新端口:如果旧服务是其他项目或必要的系统组件,或者你希望同时运行多个预览,应修改配置以使用另一个可用端口。
决策准则
| 场景 | 推荐操作 | 理由 |
| :--- | :--- | :--- |
| 确认是自己刚才没关掉的旧服务 | 结束进程 | 释放资源,恢复默认开发环境 |
| 占用者是其他项目或重要服务 | 换端口 | 避免误杀,支持多项目并行开发 |
| 仅需进行一次性临时预览 | 换端口 | 成本最低,不影响现有环境 |
操作注意事项
- 不要乱杀进程:在未确认进程身份前,禁止使用强制关闭命令,以免影响系统稳定性。
- 避免频繁重启:如果是配置冲突,重启电脑无法解决根本问题,应优先调整端口配置。
- 利用只读排查:先让 Codex 确认占用情况,再由你决定采取哪种处理方案。
做到“先确认目标,再进行释放”,是解决端口冲突的专业做法。