问题解构:这是一个典型的跨系统、跨网络环境下的 AI Agent 服务调用问题。核心在于,部署在 Linux 服务器上的 OpenClaw 服务无法成功调用运行在 Windows 11 本地主机上的 Ollama 模型服务。主要矛盾点可能在于网络连通性服务配置以及安全策略

方案推演:解决此问题需要遵循“先连通,后配置”的排查路径。首先确保 Linux 服务器能够通过网络访问到 Win11 主机上的 Ollama 服务端口,然后检查 OpenClaw 的配置是否正确指向了该服务的地址和模型。

解决方案与排查步骤

1. 网络连通性检查(基础前提)

这是最常见的问题根源。Ollama 默认在 http://localhost:11434 提供服务,但该地址仅在 Win11 本机可访问。要让 Linux 服务器访问,需要配置 Ollama 监听在 Win11 的局域网 IP 上。

步骤 1.1:修改 Win11 上 Ollama 的监听地址
在 Win11 上,以管理员身份打开 PowerShell 或 CMD,执行以下命令修改 Ollama 的环境变量,使其监听所有网络接口 。

# 设置 OLLAMA_HOST 环境变量,使 Ollama 在所有网络接口上监听
setx OLLAMA_HOST "0.0.0.0:11434" /M

注意: 执行此命令后,必须重启 Ollama 服务才能使设置生效。可以通过任务管理器结束 ollama 进程,或运行 ollama serve 重启服务。

步骤 1.2:配置 Windows 防火墙
修改监听地址后,需要允许外部(Linux 服务器)访问 Ollama 的端口。

  1. 打开 Windows 安全中心 -> 防火墙和网络保护 -> 高级设置
  2. 选择 入站规则 -> 新建规则
  3. 规则类型选择 端口,下一步。
  4. 选择 TCP,特定本地端口填入 11434,下一步。
  5. 选择 允许连接,下一步。
  6. 配置文件全选(域、专用、公用),下一步。
  7. 为规则命名,例如 “Ollama Port 11434”,完成。

步骤 1.3:在 Linux 服务器上测试连通性
在 Linux 服务器终端中,使用 curl 命令测试是否能访问 Win11 的 Ollama API。首先获取 Win11 主机的局域网 IP 地址(例如 192.168.1.100)。

# 替换 <WIN11_IP> 为 Win11 的实际局域网 IP
curl http://<WIN11_IP>:11434/api/tags

如果配置正确,该命令应返回 Win11 上 Ollama 已拉取的模型列表的 JSON 数据。如果连接超时或拒绝,需返回检查防火墙设置和 Ollama 服务状态。

2. OpenClaw 配置修正(核心步骤)

确保网络连通后,需要在 Linux 服务器的 OpenClaw 配置中,将模型端点从 localhost 修改为 Win11 的局域网 IP。

步骤 2.1:定位并编辑 OpenClaw 配置文件
OpenClaw 的配置文件通常位于其安装目录下的 config 文件夹中,例如 config/default.yamlconfig/production.yaml。使用文本编辑器(如 vimnano)打开它。

# 示例路径,请根据实际安装路径调整
cd /path/to/openclaw
vim config/default.yaml

步骤 2.2:修改模型提供者配置
在配置文件中,找到 llmmodels 相关的配置部分。需要将 baseURL 从指向本地 (http://localhost:11434) 改为指向 Win11 主机。同时,确认 model 名称与 Win11 上 Ollama 中已拉取并运行的模型名称完全一致 。

# 配置文件示例片段
llm:
  provider: ollama # 确认提供者为 ollama
  config:
    baseURL: "http://<WIN11_IP>:11434" # 关键修改:将 <WIN11_IP> 替换为实际IP
    model: "qwen2.5:7b" # 模型名称必须与 Ollama 中的模型名一致
    # 其他参数,如 temperature, top_p 等根据需要调整

步骤 2.3:重启 OpenClaw 服务
修改配置文件后,必须重启 OpenClaw 服务以使新配置生效。

# 如果使用 systemd 管理(常见于生产环境)
sudo systemctl restart openclaw

# 如果使用 npm 直接运行(常见于开发环境)
# 首先在 OpenClaw 项目根目录下,停止当前进程 (Ctrl+C),然后重新启动
npm run start
# 或
node app.js

3. 高级排查与验证

如果上述步骤后问题依旧,需要进行更深层次的排查。

步骤 3.1:验证 Ollama 模型状态
在 Win11 上,确保目标模型已正确拉取并处于就绪状态。

# 在 Win11 的终端中执行
ollama list # 查看已拉取的模型列表
ollama run qwen2.5:7b # 尝试直接本地运行目标模型,确认其工作正常

步骤 3.2:检查 OpenClaw 日志
查看 Linux 服务器上 OpenClaw 的日志输出,这是定位问题最直接的途径。日志中通常会包含调用模型时的详细错误信息(如连接错误、超时、模型不存在、认证失败等)。

# 查看 systemd 服务的日志
sudo journalctl -u openclaw -f --lines=100

# 如果直接运行,错误信息会输出在启动终端中
# 关注日志中类似 “Failed to call LLM”, “Connection refused”, “Model not found” 等错误

步骤 3.3:直接调用 API 进行隔离测试
在 Linux 服务器上,绕过 OpenClaw,直接使用 curl 模拟一次模型调用,以确定问题是出在 Ollama 服务本身还是 OpenClaw 的集成上。

curl http://<WIN11_IP>:11434/api/generate -d '{
  "model": "qwen2.5:7b",
  "prompt": "Hello",
  "stream": false
}'

如果此命令能成功返回 JSON 格式的生成结果,则证明 Ollama 服务配置正确且网络通畅,问题大概率出在 OpenClaw 的配置或内部逻辑上。如果此命令失败,则需返回检查步骤1和步骤3.1。

4. 备选方案:使用反向代理或 SSH 隧道

在某些严格的网络环境下(如公司内网策略限制),直接 IP 访问可能不可行。可以考虑以下方案:

方案 A:在 Win11 上配置 Nginx 反向代理(更稳定)
将 Ollama 服务通过 Nginx 代理,可以统一入口并可能绕过一些简单的网络限制。

# Nginx 配置示例 (nginx.conf 的 http 块内)
server {
    listen 80;
    server_name your-win11-hostname; # 或使用IP

    location /ollama/ {
        proxy_pass http://127.0.0.1:11434/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

配置后,OpenClaw 中的 baseURL 可设置为 http://<WIN11_IP>/ollama

方案 B:使用 SSH 隧道(临时或开发用)
在 Linux 服务器上建立一条到 Win11 的 SSH 隧道,将远程 Ollama 端口映射到 Linux 本地。

# 在 Linux 服务器上执行。假设 Win11 的 SSH 端口为22,用户为 `user`
ssh -N -L 11434:localhost:11434 user@<WIN11_IP>

执行后,在 Linux 上访问 http://localhost:11434 即相当于访问 Win11 上的 Ollama 服务。此时 OpenClaw 配置中的 baseURL 可以改回 http://localhost:11434

关键问题对照表

现象 可能原因 解决方案
连接超时 1. Ollama 未监听 `  
0.0.0.0`
2. Windows 防火墙阻止端口
3. 网络路由不通
1. 设置 OLLAMA_HOST 环境变量并重启
2. 添加入站防火墙规则
3. 检查 IP 和网络设备
 
连接被拒绝 Ollama 服务未运行 在 Win11 上运行 ollama serve 启动服务
模型不存在错误 OpenClaw 配置的模型名与 Ollama 中不符 使用 ollama list 确认模型名,并同步修改 OpenClaw 配置
部分请求成功,部分失败 Win11 系统资源(内存/GPU)不足 监控 Win11 资源使用情况,考虑使用更小参数的模型(如 7B 而非 14B/72B)
OpenClaw 日志无错误,但不回复 OpenClaw 的 llm.provider 配置错误,或路由到了其他模型 检查配置文件,确保 provider: ollama,且配置的 model 在正确的 config 块下

通过以上步骤的系统性排查和配置修正,应能解决 Linux 服务端 OpenClaw 无法调用 Win11 本地 Ollama 模型的问题。整个过程的核心是确保网络可达配置指向正确


参考来源

 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐