服务器部署openclaw
OpenClaw 服务器部署指南:网络配置与模型切换
本文档重点记录在 Docker 容器化环境中部署 OpenClaw 时,如何解决网络连通性问题(访问宿主机 Ollama)以及模型配置流程。
核心难点:容器内访问宿主机 Ollama
🚧 问题背景 架构现状:Ollama 服务运行在宿主机(Host),而 OpenClaw 运行在 Docker 容器内。 常见错误:在容器内直接使用 localhost 或 127.0.0.1 访问 Ollama 会失败,因为容器的 localhost 指向容器自身,而非宿主机。 报错示例:Connection refused 或 Failed to connect to Ollama.
✅ 解决方案:使用宿主机网关 IP 在标准的 Docker 桥接网络模式下,宿主机对容器而言的网关地址通常是 172.17.0.1。
操作步骤 确认 Ollama 监听地址: 确保宿主机上的 Ollama 允许外部连接(默认通常只监听 127.0.0.1,需修改)。 # 编辑 Ollama 服务配置 (以 systemd 为例) sudo systemctl edit ollama.service
添加以下内容以监听所有接口: [Service] Environment="OLLAMA_HOST=0.0.0.0:11434"
重启服务:sudo systemctl restart ollama
在 OpenClaw 中配置 API 地址: 在 OpenClaw 的配置界面或环境变量中,将 Ollama 的地址从 http://localhost:11434 修改为: http://172.17.0.1:11434
注意:如果你的 Docker 网络模式不同(如 host 模式或自定义网桥),网关 IP 可能不同。可通过在容器内执行 ip route | grep default 查看网关地址。
核心流程:配置 OpenClaw 与切换模型
解决网络问题后,必须选择合适的模型才能正常运行 Agent 功能。
🚧 问题背景 错误现象:配置完成后运行报错 400 ... does not support tools。 原因:默认或手动选择的模型(如 qwen:0.5b)参数量太小,不支持 Function Calling (工具调用)。
✅ 操作流程:切换到支持工具的模型
第一步:在宿主机拉取合适模型 推荐选择 3B 及以上参数的模型,这是支持工具调用的最低门槛,且显存占用低。 在宿主机终端执行 ollama pull qwen2.5:3b
第二步:进入 OpenClaw 配置模式 在 OpenClaw 容器终端中运行配置命令: openclaw config
第三步:交互式修改配置 按照提示进行以下操作: 选择 Edit (编辑当前 Agent)。 找到 Model Name (模型名称) 选项。 输入新模型名称:qwen2.5:3b。 切勿使用 qwen:0.5b 或 qwen:1.5b。 (可选) 检查 Base URL 是否已自动更新为 http://172.17.0.1:11434。如果没有,手动填入。 保存并退出配置向导。
第四步:验证配置 运行一个简单的测试任务(如“搜索今天的新闻”),观察日志: 成功标志:模型正常输出思考过程,并成功调用搜索工具。 失败标志:若仍报 connection refused,检查防火墙或 172.17.0.1 是否正确;若报 does not support tools,确认模型名称拼写无误且已拉取。
📝 快速检查清单 (Checklist)
[ ] 宿主机设置:Ollama 是否已设置 OLLAMA_HOST=0.0.0.0?
[ ] 网络连通:在 OpenClaw 容器内 curl http://172.17.0.1:11434/api/tags 是否能返回模型列表?
[ ] 模型版本:是否已拉取 qwen2.5:3b 或更大模型?
[ ] 配置更新:openclaw config 中 Model Name 是否已更新?
[ ] 认证清理:auth-profiles.json 是否已清空(避免不必要的 API Key 报错)?