Ubuntu 安装 Ollama:为 OpenClaw 验证本地模型运行时

发布时间
阅读时长约 5 分钟

Key Takeaways

一份验证优先的 Ubuntu Ollama 安装指南:检查 systemd 和本地 API、选择适合硬件的模型、完成真实推理 smoke test,并为 OpenClaw 接入保留可验证的运行时信息。

在把 OpenClaw 接到本地模型之前,先把 Ollama 当作一个独立运行时验证清楚。本文只解决第一层问题:在 Ubuntu 安装 Ollama、确认 systemd 服务和本地 API 正常、拉取适合当前机器的模型,并完成一次真实推理测试。这样后续 OpenClaw 出错时,你可以先判断问题究竟在 Ollama 运行时,还是 OpenClaw 配置。

这一步要证明什么

完成本文后,你应该能独立确认四件事:

  • ollama CLI 已安装并可执行
  • Ollama 服务正在运行
  • 127.0.0.1:11434 上的本地 API 能正常响应
  • 已安装的模型能够真正生成结果

只看到进程、端口或 ollama --version 成功,都不足以证明完整推理链路可用。

1. 先检查 Ubuntu 主机资源

在下载模型之前先确认系统、磁盘和内存:

bash
cat /etc/os-release
free -h
df -h /

模型所需 RAM、VRAM、磁盘和上下文资源会随着模型尺寸、量化方式和实际上下文长度显著变化。不要因为某个模型能下载完成,就默认它适合当前机器。

更新软件包索引即可,不需要为了安装 Ollama 强制执行整机升级:

bash
sudo apt update

2. 使用 Ollama 官方 Linux 安装方式

Ollama 当前 Linux 下载页给出的安装命令是:

bash
curl -fsSL https://ollama.com/install.sh | sh

安装后确认 CLI:

bash
ollama --version
command -v ollama

如果这是生产机或安全敏感环境,建议先查看安装脚本内容,并遵循你现有的变更审批和软件供应链策略,而不是无审查地把远程脚本直接交给 shell。

3. 先检查 systemd,不要直接再启动一个 ollama serve

Ubuntu/Linux 常规安装通常会把 Ollama 作为 systemd 服务运行。先检查:

bash
sudo systemctl status ollama --no-pager

如果服务存在但没有运行:

bash
sudo systemctl start ollama
sudo systemctl enable ollama

只有当你明确希望以前台方式启动服务时,才使用:

bash
ollama serve

如果 systemd 已经占用 11434,再运行一个 ollama serve 只会增加排障噪音。

服务启动失败时直接查看日志:

bash
journalctl -u ollama -n 100 --no-pager

4. 验证本地 API,而不是只测端口

OpenClaw 当前 Ollama 集成默认会从本机 loopback 的 Ollama 服务发现模型。先直接检查 Ollama 原生 API:

bash
curl --fail --silent --show-error \
  http://127.0.0.1:11434/api/tags

成功返回 JSON 只能证明 HTTP 服务可达,还不能证明模型推理正常。

如果失败,先检查监听和服务状态:

bash
ss -ltnp | grep 11434 || true
sudo systemctl status ollama --no-pager
journalctl -u ollama -n 100 --no-pager

默认本地部署应保持在 loopback。只有当你明确需要 LAN/远程访问,并已经设计好网络隔离、访问控制和认证边界时,才考虑扩大监听范围;不要无意中把 11434 暴露到公网。

5. 选择适合机器的模型

不要照抄旧教程中的固定模型名。模型目录和 OpenClaw 推荐配置会变化,而且 Agent 工作负载对上下文、工具调用和可靠性的要求通常高于简单聊天。

从当前 Ollama 模型目录选择一个适合主机资源的模型,然后:

bash
ollama pull <model-name>
ollama list

ollama list 返回的准确 Model ID 记录下来。后续 OpenClaw 配置必须使用这个实际存在的标识,而不是教程里的示例值。

6. 做一次真实推理 smoke test

先从 CLI 测一次:

bash
ollama run <model-name> "只回复:pong"

再直接测试 Ollama 原生生成 API:

bash
curl --fail --silent --show-error \
  http://127.0.0.1:11434/api/generate \
  -H 'Content-Type: application/json' \
  -d '{"model":"<model-name>","prompt":"只回复:pong","stream":false}'

<model-name> 替换成 ollama list 中的真实模型 ID。

如果返回有效 JSON 且包含模型生成文本,这比“端口可以连接”更能证明本地推理层确实可用。

7. 记录 OpenClaw 下一步需要的值

进入 OpenClaw 配置前,至少保存:

plain text
Ollama Base URL: http://127.0.0.1:11434
Model ID:        <ollama list 返回的准确值>

OpenClaw 当前原生支持 Ollama。本地场景下,OpenClaw 可以从 loopback Ollama 服务发现模型,并可通过 openclaw models list --provider ollama 检查可见模型。实际接入时应以当前 OpenClaw Ollama Provider 文档为准,不要复制旧教程中的 Provider JSON。

例如,在 Ollama 已运行且 OpenClaw 已完成相应配置后,可以检查:

bash
openclaw models list --provider ollama
openclaw models status

按故障层排查

现象先检查可能层级
ollama: command not foundcommand -v ollama安装 / PATH
11434 拒绝连接systemctl status ollamajournalctl -u ollama服务
/api/tags 正常但目标模型不存在ollama list模型安装
模型存在但推理失败或明显过慢RAM/VRAM、模型尺寸、服务日志运行时 / 硬件
Ollama 全部通过,但 OpenClaw 失败OpenClaw Provider、Model ID、Gateway 所在主机集成

常见边界条件

OpenClaw 跑在容器或另一台机器上

对 OpenClaw 进程来说,127.0.0.1 指的是它自己所在的网络命名空间或主机,不一定是运行 Ollama 的 Ubuntu 主机。如果 curl 127.0.0.1:11434 在宿主机成功,但 OpenClaw 仍连接失败,要先确认两者是否真的处于同一主机/容器网络。

简单聊天成功,不代表 Agent 一定可靠

OpenClaw 官方文档明确提醒,本地小模型或高度量化模型在 Agent 工作负载中可能更容易遇到上下文、工具调用和 prompt-injection 防御能力不足的问题。本文的 smoke test 只证明“模型可以生成文本”,不是 Agent 质量或安全性的基准测试。

不要用模型下载成功推断硬件足够

模型可以被拉取到磁盘,并不代表机器能以你需要的上下文和延迟稳定运行。最终应使用真实 OpenClaw 工作负载测试,而不是虚构一个通用的 RAM/VRAM 门槛。

完成检查清单

在进入 OpenClaw 安装/接入之前确认:

  • ollama --version 成功
  • systemd 中 Ollama 服务状态符合预期
  • /api/tags 成功返回
  • ollama list 中存在目标模型
  • CLI 推理成功
  • /api/generate 推理成功
  • 已记录准确的 Base URL 与 Model ID
  • 11434 没有被意外暴露到公网

FAQ

Ubuntu 上一定要手动运行 ollama serve 吗?

不一定。Linux 安装后如果 systemd 已经管理并启动 Ollama,就不需要再开一个前台 server。先看 systemctl status ollama

curl http://127.0.0.1:11434 成功就算安装完成吗?

不算。至少应验证 /api/tags,再执行一次真实模型生成请求。

OpenClaw 应该安装哪个 Ollama 模型?

没有适合所有机器和 Agent 的固定答案。应根据 RAM/VRAM、上下文需求、工具调用能力、延迟和实际任务选择,并用真实 Agent 工作负载验证。不要把本文中的任何模型名当作性能承诺。

可以直接把 Ollama 端口开放到公网吗?

默认本地部署不建议这样做。远程访问属于新的安全边界,需要独立设计网络访问控制、认证和暴露面。

下一步

官方来源

AV
技术团队背书同行架构师审查 & 实测校验

Alex Vance

核心基础设施架构团队

本文由 BytesFlows 工程团队审查。代码示例适用于合规的公开网页数据采集、QA 自动化、SEO 监测与市场研究工作流。实际基准表现可能因目标站点防爬策略、地理位置、客户端运行环境及请求频率而异。