如果你在 Mac mini 4 上使用 Ollama,并希望让同一局域网上的其他设备通过 IP 访问 Ollama API,那么必须解决一个关键问题:
用传统的 shell 环境变量方式是无效的!
macOS 上的 GUI 程序(包括点图标启动的 Ollama)并不会从 .zshrc
或 .bashrc
等配置文件中继承你手动 export 的环境变量,这也导致不论如何配置 OLLAMA_HOST
都无效,Ollama 总是只聚听 127.0.0.1,无法局域网访问。
解决方案:使用 LaunchAgent 配置 Ollama
你需要在 ~/Library/LaunchAgents/
目录下创建一个 .plist
文件,进行以下操作:
1. 创建 com.ollama.server.plist 文件
在终端执行:
touch ~/Library/LaunchAgents/com.ollama.server.plist
open -e ~/Library/LaunchAgents/com.ollama.server.plist
把以下纯准版 XML 内容复制到文件中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.ollama.server</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/ollama</string>
<string>serve</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>OLLAMA_HOST</key>
<string>http://0.0.0.0:11434</string>
</dict>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
注意:
/usr/local/bin/ollama
路径需根据你实际安装的结果,可以用which ollama
查看。
2. 验证 plist 格式是否合法
plutil ~/Library/LaunchAgents/com.ollama.server.plist
- 如果返回不报错,则表明文件格式正确
3. 加载 LaunchAgent
直接使用以下命令即可:
launchctl load -w ~/Library/LaunchAgents/com.ollama.server.plist
然后重启电脑
重启后,Ollama 就会以你指定的 OLLAMA_HOST 运行,支持局域网访问。
4. 配置 Chrome 插件 Page Assist
如果你使用了这个 Chrome 插件 Page Assist,需要进入插件设置,手动指定 Ollama 服务器地址,并启用 CORS 自动修复功能:
- 通常为
http://192.168.x.x:11434
- 否则即使服务本身运行正常,插件也会报错无法连接
5. 验证 Ollama 是否已成功聚听 0.0.0.0
1) 检查是否有运行进程
ps aux | grep ollama
2) 检查端口是否已聚听
netstat -an | grep 11434
或
lsof -n -iTCP:11434 -sTCP:LISTEN
如果看到如下结果:
tcp4 0 0 *.11434 *.* LISTEN
则表明 Ollama 已成功聚听在全网络网卡,局域网可访问。
为什么需要这么做?
因为 Ollama 如果通过图标启动(或系统登录时自启),它的启动时机可能在你手动或 plist 设置环境变量之前。因此:
- 这么启动的 Ollama 看不到 OLLAMA_HOST,也就无法聚听 0.0.0.0
- 即使后续手动设置环境变量,Ollama 还是需要重启,并不合理
解决办法就是一次性在 LaunchAgent 中定义环境变量和启动命令,一开机就自动运行。
小结
- 不要尝试把
export OLLAMA_HOST=...
写入~/.zshrc
并无效 - 也不要用
launchctl setenv
这种随系统重启会失效的方法 - 唯一精准、稳定、无效期的方法:在 LaunchAgent 中配置 plist 文件,定义环境变量 + 自动启动命令
做完这些步骤,你就可以让 Mac mini 上的 Ollama 在局域网下正常装载、可被其他设备通过 IP 访问了!