事情本身不复杂,线索都在日志里。Windows 上装完 Ollama,本机 curl 11434 正常,同事从另一台机器访问超时,netstat 看到只绑在 127.0.0.1,防火墙规则加了也没用。

第一反应是「Windows 服务方式启动,环境变量读的是系统级」,验证下来不成立。

原因不止一个,得分开看。默认只监听回环地址,不对外提供端口。另一种情况是OLLAMA_HOST 改完没有重启服务。

另外,防火墙放行的是另一个网段。

动手时先确认端口绑定在哪个地址

netstat -ano | Select-String 11434

以监听所有网卡的方式重启服务

$env:OLLAMA_HOST='0.0.0.0:11434'; ollama serve

本机验证接口可用

curl http://127.0.0.1:11434/api/tags

从另一台机器验证连通性

curl -s -o /dev/null -w '%{http_code}\n' http://192.168.1.20:11434/api/tags

改之前先确认了最近有没有人动过配置,避免白查一遍。

这次没动代码,只在配置和运行环境上找原因。

恢复的判定其实很直接。netstat 显示 0.0.0.0:11434,局域网机器请求返回 200,模型列表能正常拉取。

容易忽略的是,绑定地址和环境变量都要在服务重启后生效,只改当前终端的那份变量对后台服务无效。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189