为了Qwen3.8升级新版的ollama导致双重启动plist故障

MacOS Ollama + OpenWebUI 连接问题排查与解决简报

一、问题背景

此前遇到两个相关问题:

  • 问题1:Homebrew Ollama 默认监听 127.0.0.1:11434,导致 PVE Docker 中的 OpenWebUI 无法访问 Ollama。
  • 问题2:拉取 Qwen3.8 后,OpenWebUI 报无法解析模型。进一步排查发现 Mac 上曾经存在两个 Ollama 启动配置,使问题变得更加复杂。

二、排查发现

当时存在两个 LaunchAgent:

~/Library/LaunchAgents/com.zqq.ollama.plist
~/Library/LaunchAgents/homebrew.mxcl.ollama.plist

其中:

  • com.zqq.ollama.plist 是之前手工创建的启动配置,设置了 OLLAMA_HOST=0.0.0.0
  • homebrew.mxcl.ollama.plist 是 Homebrew 管理的启动配置,原先没有设置 OLLAMA_HOST

因此,Homebrew Ollama 实际只监听:

127.0.0.1:11434

而之前手工创建的 com.zqq.ollama 曾经正常监听:

[::]:11434

这解释了为什么之前 OpenWebUI 可以访问 Ollama,而后来却无法访问。

三、Qwen3.8 并不是根本原因

排查过程中发现,当前 Ollama 的 API 已经能够正常返回:

qwen3.8:27b-mlx

因此可以排除:

  • Qwen3.8 模型名称格式问题
  • 模型安装失败
  • Qwen3.8 导致 Ollama 服务异常

真正的问题是多个 Ollama 启动实例/配置发生切换,导致 OpenWebUI 连接到了错误的 Ollama 服务

四、最终解决方案

首先停止 Homebrew Ollama,并删除旧的手工 LaunchAgent:

~/Library/LaunchAgents/com.zqq.ollama.plist

然后使用 Homebrew Service 的环境配置文件:

~/.homebrew/services/ollama.env

文件内容:

OLLAMA_HOST=0.0.0.0:11434

重新启动 Homebrew Ollama:

brew services start ollama

五、最终验证结果

重新启动后,Ollama 正确监听:

*:11434 (LISTEN)

同时确认 launchd 环境已经包含:

OLLAMA_HOST => 0.0.0.0:11434

通过 Mac 本机访问局域网地址:

curl http://10.30.0.57:11434/api/tags

能够正常返回全部 Ollama 模型,包括:

qwen3.8:27b-mlx
qwen2.5:7b
qwen2.5:14b
qwen3:14b
qwen3.5:9b
qwen3.5:27b
bge-m3:latest
nomic-embed-text:latest

随后 OpenWebUI 恢复正常,问题最终解决。

六、最终架构

Mac Studio
└── Homebrew Ollama
    ├── OLLAMA_HOST=0.0.0.0:11434
    └── 所有 Ollama 模型
             ↑
             │ LAN
             │
PVE Docker
└── OpenWebUI
    └── OLLAMA_BASE_URL=http://10.30.0.57:11434

七、以后遇到类似问题的快速检查

首先检查是否存在多个 Ollama:

pgrep -alf ollama

检查 11434 当前由谁监听:

lsof -nP -iTCP:11434 -sTCP:LISTEN

检查 Homebrew Ollama:

brew services info ollama

检查局域网 API:

curl http://10.30.0.57:11434/api/tags

八、经验总结

不要同时维护多个 Ollama LaunchAgent。

对于 macOS + Homebrew 安装的 Ollama,推荐统一使用:

homebrew.mxcl.ollama

并通过:

~/.homebrew/services/ollama.env

设置:

OLLAMA_HOST=0.0.0.0:11434

这样可以避免手工 LaunchAgent 与 Homebrew Service 同时运行,导致 OpenWebUI 连接到不同 Ollama 实例的问题。

发表回复