当设备关机重启或网络彻底断开时,OpenClaw对接Ollama本地模型后,经常会出现“模型连接超时”、“服务不可达”甚至完全空响应的错误提示——折腾半天也不知道问题出在哪里。实际上,原因并不复杂,核心在于三个关键点没有处理好:Ollama服务没有随系统自动启动、默认的绑定地址卡在127.0.0.1上、以及OpenClaw的离线配置没有固化好。
按照下面三个步骤操作,基本上就能干净利落地把问题理顺。

配置Ollama服务开机自启并全接口监听
首先,确认Ollama是否已注册为系统级的守护服务。在Linux或macOS终端中执行 sudo systemctl is-enabled ollama,如果返回 enabled,则说明第一步通过;如果看到disabled或报错信息,则表明服务注册环节未完成,需要补充操作。
其次,修改Ollama的绑定地址。默认情况下,它只监听127.0.0.1,许多人重启后发现OpenClaw仍然无法连接,根本原因就在于此。编辑 /etc/systemd/system/ollama.service 文件,在 ExecStart= 这一行的末尾添加 --host 0.0.0.0:11434,保存后执行 sudo systemctl daemon-reload && sudo systemctl restart ollama,使改动生效。
最后,关机前最好检查一下监听状态。运行 sudo ss -tuln | grep 11434,如果输出中包含 0.0.0.0:11434,则说明修改正确;如果仍然显示 127.0.0.1:11434,则需要回头检查——很可能是修改未生效,或者服务没有成功重启。
固化OpenClaw离线模式与回退机制
方法一:强制开启离线开关并锁定模型路径
打开 ~/.openclaw/openclaw.json 配置文件,找到 gateway 字段,在其中添加两行配置:
"offlineMode": true,
"fallbackModels": ["glm4-flash"]
不过这里有一个需要特别注意的细节——必须移除telemetry字段。如果配置文件中还保留着 "telemetry": true 或类似的上报设置,OpenClaw启动时会尝试连接 api.openclaw.ai。在断网状态下,这一步会直接卡死在初始化阶段,并且没有任何错误提示,非常隐蔽。
方法二:硬编码模型地址,绕过DNS解析失败
在 models.providers 部分,将 baseUrl 的值从 http://localhost:11434 改为 http://127.0.0.1:11434。别看只是写法不同,差别相当大——某些系统在断网状态下,DNS缓存混乱时,localhost的解析会变得极其缓慢甚至直接失败。而127.0.0.1是直接IP访问,完全不需要经过DNS,效率高得多。
关机前必须执行的三项验证
① 首先测试连通性:执行 curl -s http://127.0.0.1:11434/api/tags | jq '.models[].name'。如果能稳定返回模型名称(例如 "glm4-flash"),且没有超时或卡顿,这一项才算通过。
② 启动OpenClaw:执行 openclaw serve。密切关注日志的第一行输出,如果能看到 "gateway: offline mode enabled" 字样,说明离线配置已被成功加载。如果没有这行输出,则大概率是配置文件写错了,或者JSON格式存在问题。
③ 进行一次紧急情景模拟——直接拔掉网线或关闭WiFi → 重启电脑 → 等待60秒 → 执行 openclaw health。如果返回结果 {"status":"ok","models":["glm4-flash"]},那么恭喜你,问题已经解决。
