Error: listen tcp 127.0.0.1:11434: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

这个报错通常出现在 Windows 上执行 ollama serve 时,11434 端口已被另一个 Ollama 进程占用;问题往往不在端口本身,而是后台还有已启动的 Ollama 客户端在监听该端口,应优先排查并关闭后台 Ollama 进程。

快速结论:这个报错通常出现在 Windows 上执行 ollama serve 时,11434 端口已被另一个 Ollama 进程占用;问题往往不在端口本身,而是后台还有已启动的 Ollama 客户端在监听该端口,应优先排查并关闭后台 Ollama 进程。

适用环境:Issue 已确认的环境为 Ollama、Windows、x86 架构。评论中未见明确的 Python、CUDA、PyTorch、显卡型号或依赖版本信息,这些项目暂不列出。

最快修复方案:在 Windows 任务栏右下角点击向上箭头,在小图标菜单中找到 Ollama 应用并退出;或直接结束 ollama app 进程,随后重新执行 ollama serve。Issue 中有用户反馈此方法有效。

注意事项:若只结束 ollama 进程而未结束 ollama app,后者可能会立即重新拉起服务并再次占用 11434 端口。如需改端口,评论中给出的做法是设置 OLLAMA_HOST 后重启 Ollama,但该方案属于额外配置,并非本 Issue 中已完整验证的修复步骤。

问题场景

用户在 Windows 上手动执行 ollama serve,希望启动 Ollama 服务时,进程在绑定本地地址 127.0.0.1:11434 时失败。Issue 作者表示已重启机器、停止并启动 Ollama 服务,以及用 netstat -ano | findstr :<PORT> 配合 taskkill /PID <PID> /F 结束占用端口,但问题仍然存在。

报错原文

Error: listen tcp 127.0.0.1:11434: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

原因分析

最可能的原因是 11434 端口已被另一个 Ollama 相关进程占用。评论指出,Windows 上运行 Ollama 客户端时可能同时存在两个进程:ollama 和 ollama app。其中 ollama app 会在后台控制或拉起本地服务;如果只结束其中一个进程,另一个可能继续占用或重新占用 11434 端口,于是再次执行 ollama serve 时就出现 bind 失败。

环境排查

  • 确认操作系统:Issue 中为 Windows x86。
  • 确认是否已有 Ollama 客户端在后台运行,包括任务栏托盘中的 Ollama 图标。
  • 确认进程列表中是否存在 ollama 和 ollama app 两个进程。
  • 确认 11434 端口是否被 Ollama 相关进程占用,可用 netstat -ano | findstr :11434 查看;随后用任务管理器或 taskkill 处理对应 PID。
  • Ollama 版本、GPU、CPU 等信息在 Issue 中未提供,不作为本问题的必要排查项。

解决步骤

  1. 查看 Windows 任务栏右下角的向上箭头,打开小图标菜单。
  2. 在小图标菜单中找到 Ollama 应用图标并退出,确保本地已启动的 Ollama 客户端被关闭。
  3. 如果托盘退出后仍报错,打开任务管理器,检查并结束所有 Ollama 相关后台进程,重点确认 ollama app 以及 ollama.exe 是否仍在运行。
  4. 确认相关进程已结束后,重新执行 ollama serve。
  5. 如果仍提示端口被占用,可优先尝试在 PowerShell 中执行评论给出的快捷命令:Get-Process ollama* | Stop-Process -Force | ollama serve;该命令会强制结束匹配到的 Ollama 进程,执行前请确认没有正在依赖该服务的任务。
  6. 如果只是需要让 Ollama 使用其他端口,可优先尝试评论中的做法:执行 setx OLLAMA_HOST "127.0.0.1:YOUR_DESIRED_PORT" /M,然后重启 Ollama;其中端口需替换为实际希望使用的端口。

验证方法

重新执行 ollama serve 后,如果不再出现 bind: Only one usage of each socket address 错误,并且服务能够正常监听,说明后台进程占用问题已解除。Issue 中有多位用户反馈通过退出托盘 Ollama 或结束后台 Ollama 进程后问题解决。若使用自定义 OLLAMA_HOST,则应确认 Ollama 监听的是新配置的地址和端口。

参考来源

ollama/ollama #3575

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 35208

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注