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 实例的问题。