在 Mac 上部署 Ollama:
安装、后台运行与安全的远程调用
Ollama 用一条命令就能在 Mac 上下载并运行开源大模型,并提供本地 HTTP API。这篇覆盖安装、拉取模型、用 launchd 作为后台服务常驻、OLLAMA_HOST 的设置和安全注意事项,以及怎样通过 SSH 端口转发从自己的电脑调用远程 Mac 上的模型。
安装
两种方式任选一种:从 Ollama 官网 下载 macOS 应用(带菜单栏图标,登录后自动启动服务),或者用 Homebrew 安装命令行版本。远程无界面使用的 Mac 更适合 Homebrew 版本。
brew install ollama
ollama --version
# 前台启动服务,默认监听 127.0.0.1:11434
ollama serve两种方式不要同时运行,否则会争用同一个端口。
拉取与运行模型
模型名称和标签可以在 Ollama 模型库 查到。标签通常表示参数量或量化版本,同一模型的不同标签占用的内存差别很大。
ollama pull qwen2.5:7b # 只下载
ollama run qwen2.5:7b # 下载(如需要)并进入对话
ollama list # 已下载的模型
ollama ps # 正在加载的模型及占用
ollama stop qwen2.5:7b # 从内存中卸载
ollama rm qwen2.5:7b # 删除模型文件
# 通过 API 调用
curl http://127.0.0.1:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "用一句话解释什么是统一内存",
"stream": false
}'Ollama 还提供与 OpenAI 格式兼容的接口(路径以 /v1 开头),很多支持自定义接口地址的工具可以直接接入。选模型前先估一下内存,方法见 Mac 跑本地大模型的内存估算。
作为后台服务常驻
最简单的方式是用 Homebrew 自带的服务管理:
brew services start ollama
brew services list # 查看状态
brew services stop ollama如果要自定义环境变量(例如模型目录),可以自己写一个 LaunchAgent。下面的路径以 Apple 芯片上 Homebrew 的默认位置为例,可用 which ollama 确认:
保存为 ~/Library/LaunchAgents/local.ollama.plist:
<?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>local.ollama</string>
<key>ProgramArguments</key>
<array><string>/opt/homebrew/bin/ollama</string><string>serve</string></array>
<key>EnvironmentVariables</key>
<dict>
<key>OLLAMA_HOST</key><string>127.0.0.1:11434</string>
<key>OLLAMA_KEEP_ALIVE</key><string>30m</string>
</dict>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardErrorPath</key><string>/tmp/ollama.log</string>
</dict>
</plist>launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/local.ollama.plist
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/local.ollama.plist # 停止并卸载LaunchAgent 在用户登录后才会运行。远程 Mac 重启后如果没有用户登录,服务不会启动,需要开启自动登录或改用 LaunchDaemon。使用 Ollama 桌面应用时,官方文档给出的做法是用 launchctl setenv 设置环境变量后重启应用。
OLLAMA_HOST 与安全
OLLAMA_HOST 决定服务监听的地址和端口,默认 127.0.0.1:11434,也就是只接受本机连接。改成 0.0.0.0 会监听所有网卡。
Ollama 的 API 默认没有身份验证。不要把 11434 端口暴露到公网,也不要在路由器或防火墙上为它做端口映射,否则任何人都可以调用你的模型、占满你的机器。
需要多台设备访问时,保持默认的本机监听,用下一节的 SSH 端口转发;或者在 Tailscale 等私有网络里,只对网络内的设备开放。
通过 SSH 端口转发远程调用
在你自己的电脑上执行,把本地 11434 端口转发到远程 Mac 的 127.0.0.1:11434:
# -N 只转发不开 shell
ssh -N -L 11434:127.0.0.1:11434 user@你的远程Mac
# 另开一个终端,在本地调用
curl http://127.0.0.1:11434/api/tags
# 本地也装了 ollama 命令行时,可以直接用
ollama list也可以写进 ~/.ssh/config 的 LocalForward 11434 127.0.0.1:11434,每次连接自动建立转发。如果本地也在运行 Ollama,把左侧端口换成别的,例如 -L 21434:127.0.0.1:11434。
在三万主机租用的 Mac 上,你拿到的是管理员账户和 SSH 登录方式,上述步骤可以直接照做。
常见问题
启动时报 address already in use 怎么办?
说明 11434 端口已经被占用,通常是 Ollama 桌面应用、brew services 和手动运行的 ollama serve 同时启动了。用 lsof -i :11434 看是哪个进程,只保留一种运行方式。
模型回复很慢,怎么判断原因?
先运行 ollama ps,看 PROCESSOR 一列:显示 100% GPU 说明模型完全在 GPU 上;如果出现 CPU 占比,说明内存不够,部分层被放到 CPU 上运行,速度会明显下降。换更小的模型或更低的量化版本,或换内存更大的机器。
模型文件放在哪里,能换位置吗?
默认在 ~/.ollama/models。可以用环境变量 OLLAMA_MODELS 指定其他目录,设置后需要重启服务,已下载的模型需要重新拉取或手动迁移。
能把 OLLAMA_HOST 设成 0.0.0.0 方便远程访问吗?
不建议在有公网地址或不受信任的网络里这样做。Ollama 的 API 默认没有身份验证,任何能连到端口的人都能调用模型。远程使用请保持监听 127.0.0.1,通过 SSH 端口转发或 Tailscale 这类私有网络访问。
扫码加微信客服手机上长按二维码识别