必须将Ollama监听地址改为0.0.0.0:11434,再通过宿主机真实IP(如192.168.1.23)或host.docker.internal配置OpenClaw的OLLAMA_BASE_URL,最后验证API连通性与模型响应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw 是一个开源的 RAG(检索增强生成)框架,它本身不内置大模型推理能力,必须接入外部 LLM 服务才能完成问答、摘要等任务;Ollama 正是其最常用的本地推理后端——但默认配置下 OpenClaw 容器无法访问宿主机上运行的 Ollama 服务,因为网络隔离和监听地址限制会导致连接被拒绝。
确认 Ollama 已在宿主机运行并监听全网卡
执行 sudo netstat -tuln | grep :11434,若输出中显示 127.0.0.1:11434,说明 Ollama 当前只监听本地回环,【必须修改为 0.0.0.0:11434 才能让容器访问】。
停止当前 Ollama 容器:docker stop ollama(若用 docker run 启动)或 docker compose down(若用 docker-compose)。
重新启动时强制绑定到所有接口:使用 -e OLLAMA_HOST=0.0.0.0 环境变量,例如:docker run -d --name ollama -p 11434:11434 -v ./ollama:/root/.ollama -e OLLAMA_HOST=0.0.0.0 ollama/ollama。
验证监听生效:再次运行 sudo netstat -tuln | grep :11434,应看到 0.0.0.0:11434 或 *:11434。
获取宿主机真实 IP 地址供 OpenClaw 连接
在 Linux 宿主机上执行:hostname -I | awk '{print }',输出类似 192.168.1.23 的 IPv4 地址——这不是 127.0.0.1,也不是 localhost,【这是 OpenClaw 容器内必须填写的真实宿主机 IP】。
注意:若宿主机使用 DHCP,该 IP 可能变动;建议在路由器中为宿主机设置静态 IP,或改用 Docker 自带的特殊 DNS 名 host.docker.internal(仅限 Docker Desktop for Mac/Windows;Linux 需手动添加 --add-host=host.docker.internal:host-gateway)。
配置 OpenClaw 容器连接 Ollama
方法一:通过 docker run 命令直连(适合快速测试)
在启动 OpenClaw 容器时,加入环境变量指定 Ollama 地址:-e OLLAMA_BASE_URL=http://192.168.1.23:11434,完整示例:docker run -d --name openclaw -p 3000:3000 -e OLLAMA_BASE_URL=http://192.168.1.23:11434 -v ./data:/app/data openclaw/openclaw。
方法二:使用 docker-compose.yml(推荐生产使用)
在 openclaw 服务定义下添加:
environment:
- OLLAMA_BASE_URL=http://192.168.1.23:11434
若宿主机为 Linux 且已启用 host-gateway,可写为:
- OLLAMA_BASE_URL=http://host.docker.internal:11434。
方法三:挂载自定义配置文件
创建 config.yaml,内容含:
llm:
provider: ollama
base_url: "http://192.168.1.23:11434"
然后通过 -v $(pwd)/config.yaml:/app/config.yaml 挂载进容器。
验证 OpenClaw 能否调用 Ollama 模型
第一步:确保 Ollama 中已有可用模型,例如已执行过 ollama pull qwen2:7b 或 ollama run qwen2:7b。
第二步:进入 OpenClaw 容器内部测试连通性:docker exec -it openclaw sh → curl -X POST "http://192.168.1.23:11434/api/chat" -H "Content-Type: application/json" -d '{"model":"qwen2:7b","messages":[{"role":"user","content":"你好"}]}'。
第三步:若返回 JSON 包含 "message":{"role":"assistant","content":"..."},说明链路打通;若报 Connection refused,请回头检查 Ollama 监听地址和防火墙(sudo ufw status,确保 11434 端口开放)。
第四步:启动 OpenClaw Web 界面,在知识库上传文档后发起提问,观察是否返回由 qwen2 或其他 Ollama 模型生成的响应——此时接入完成。


















