Windows的cmd命令中,当端口被占用时,如何查询占用进程并将其杀死?一文详解!

例如,我现在在部署ollama服务时遇到报错如下:

C:\Users\Admin>ollama serve
Error: listen tcp 0.0.0.0:11434: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

错误分析

这个错误表明端口 11434 已被占用,Ollama 无法绑定到该端口。原因通常是:

  • 另一个 Ollama 实例或同一端口的其他服务正在运行。
  • 前一次运行的 Ollama 进程未正确关闭,导致端口仍被占用。【经排查,我这里是属于这种原因
  • 系统防火墙或网络配置限制了端口使用。

解决方案

1. 检查并终止占用端口的进程

  • 找到占用端口的进程:
  • 打开命令提示符(CMD)或 PowerShell,运行:
netstat -aon | findstr :11434

输出示例:

C:\Users\Admin>netstat -aon | findstr :11434
  TCP    0.0.0.0:11434          0.0.0.0:0              LISTENING       29080
  TCP    [::]:11434             [::]:0                 LISTENING       29080

这里的 29080 是占用端口的进程 ID (PID)。

2. 终止进程:

  • 使用任务管理器或命令行结束该进程:
taskkill /PID 29080 /F

这里的进程号29080,你可以替换成你自己的PID即可, /F 代表 Force强制终止。

C:\Users\Admin>taskkill /PID 29080 /F
成功: 已终止 PID 为 29080 的进程。

 

重新运行 Ollama:

  • 再次尝试:
ollama serve

便可以成功运行了

 

posted @ 2025-06-14 10:05  AlphaGeek  阅读(652)  评论(0)    收藏  举报