mcpField
D
detecting-port-conflicts

detecting-port-conflicts

github.com/spencerpauly开发868424 次安装13 周前更新
代码仓库

关于 detecting-port-conflicts

用于诊断端口占用错误并选择恢复开发服务器的方法。它指导检查占用进程、终止进程或改用其他端口。

主要功能

  1. 01识别常见端口冲突错误
  2. 02用 lsof 查找端口占用进程
  3. 03提供终止进程或更换端口方案
  4. 04提示批量终止 Node 进程的风险

适用场景

  1. 01排查开发服务器无法启动的原因
  2. 02查找占用端口的进程
  3. 03在可用端口重新启动服务器

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill detecting-port-conflicts

安装后在 Claude Code 中输入/detecting-port-conflicts确认已加载。

详细介绍

检测端口冲突

当开发服务器因端口已被占用而无法启动时,请诊断并解决问题。

检测

扫描终端输出,查找以下模式:

  • EADDRINUSE
  • address already in use
  • Port XXXX is already in use
  • bind: address already in use
  • OSError: [Errno 98] Address already in use

从错误消息中提取端口号。

诊断

查找占用端口的程序:

lsof -i :<PORT> -P -n

这会显示 PID、进程名称和用户。常见原因包括:

  • 未能正常关闭的上一个开发服务器
  • 另一个项目的开发服务器
  • Docker 容器
  • 系统服务

解决方案

选项 1:终止占用端口的进程
kill <PID>
# If it doesn't stop:
kill -9 <PID>

然后重新启动原服务器。

选项 2:使用其他端口

建议使用下一个可用端口:

# Check if port+1 is free
lsof -i :<PORT+1> -P -n

更新开发服务器配置或启动命令:

  • Next.js:next dev -p <PORT>
  • Vite:vite --port <PORT>
  • Express:设置 PORT 环境变量
  • Django:python manage.py runserver <PORT>
选项 3:终止所有 node 进程(强制选项)
killall node

仅在用户确认后建议此操作——它会终止所有进程。

提示

  • 在 macOS 上,低于 1024 的端口需要 root 权限
  • Docker 容器绑定的端口即使容器已停止仍会保留——请检查 docker ps
  • 如果 lsof 没有显示任何内容,端口可能处于 TIME_WAIT 状态——等待 30 秒,或使用其他端口

评论

支持 Markdown