Ollama默认将服务绑定在127.0.0.1上,也就是只允许本机访问。这个设计出于安全考虑没有问题,但当你把Ollama部署在局域网服务器或云主机上,想从自己的电脑、笔记本甚至手机上调用大模型接口时,就会发现无论怎么请求都连接失败。要解决这个问题,核心就两步:让Ollama监听所有网络接口,同时确保防火墙放行了对应端口。下面把每一步的原理和操作细节讲清楚。

一、先弄明白:Ollama为什么默认拒绝远程连接
Ollama启动后会运行一个HTTP服务,默认监听端口是11434,地址是127.0.0.1:11434。这个地址的含义是"仅本机回环接口",任何来自其他IP的请求,哪怕网络是通的,也会被直接拒绝。很多人在这里踩坑:用curl http://服务器IP:11434测试时返回Connection refused,第一反应是防火墙问题,结果折腾半天防火墙,真正原因却是监听地址压根没改。
可以通过以下命令验证当前监听状态。在Linux上执行:
ss -tlnp | grep 11434
如果输出显示127.0.0.1:11434,说明只监听了本机回环;如果显示0.0.0.0:11434或*:11434,说明已经监听了所有网卡,此时连不上才是防火墙或安全组的问题。先分清监听问题和网络问题,排查方向才不会跑偏。
Ollama提供了OLLAMA_HOST环境变量来控制监听地址,这是解决问题的钥匙。将它设置为0.0.0.0表示监听所有IPv4接口,设置为0.0.0.0:11434还可以同时指定端口。需要注意的是,改为监听所有接口后,任何能访问该服务器11434端口的人都可以调用你的模型,生产环境务必配合防火墙白名单限制来源IP。
二、三种部署方式下的OLLAMA_HOST配置方法
1. Linux系统服务方式(systemd管理)
通过官方脚本安装的Ollama会注册为systemd服务,直接在shell里export环境变量是无效的,因为服务启动时读取的是systemd的配置。正确做法是用systemctl edit覆盖服务配置:
sudo systemctl edit ollama.service
在打开的编辑器中加入如下内容:
[Service] Environment="OLLAMA_HOST=0.0.0.0:11434"
保存退出后重启服务使其生效:
sudo systemctl daemon-reload sudo systemctl restart ollama ss -tlnp | grep 11434
如果只想让局域网某一段IP访问,也可以绑定具体的内网IP,比如Environment="OLLAMA_HOST=192.168.1.100:11434",这样比监听0.0.0.0更安全一些。
2. Docker方式部署
Docker部署时,容器内的Ollama同样默认只监听127.0.0.1,但由于做了端口映射,配置略有不同。运行容器时通过-e传入环境变量即可:
docker run -d --name ollama \ -p 11434:11434 \ -v ollama:/root/.ollama \ -e OLLAMA_HOST=0.0.0.0:11434 \ ollama/ollama
这里有个容易忽略的细节:即使容器内Ollama只监听127.0.0.1,Docker的端口映射有时也能工作,但这是不可靠的行为,不同Docker版本表现不一致,强烈建议显式设置OLLAMA_HOST=0.0.0.0,让容器内服务监听所有接口,端口映射才能稳定生效。
3. Windows方式
Windows版的Ollama是用户级程序,通过系统环境变量设置。打开"系统属性-高级-环境变量",在用户变量中新建OLLAMA_HOST,值填0.0.0.0:11434。也可以用命令行:
setx OLLAMA_HOST "0.0.0.0:11434"
设置完必须完全退出Ollama(右下角托盘图标也要Quit),重新启动后才会读取新变量。改了变量却没重启程序,是Windows下最常见的失败原因。
三、防火墙与云安全组放行11434端口
监听地址改好后,第二道关卡是防火墙。Linux下常用的有firewalld和ufw两种,命令分别如下。
CentOS、Rocky Linux等使用firewalld的系统:
sudo firewall-cmd --permanent --add-port=11434/tcp sudo firewall-cmd --reload sudo firewall-cmd --list-ports
Ubuntu、Debian等使用ufw的系统:
sudo ufw allow 11434/tcp sudo ufw status
如果你的服务器是阿里云、腾讯云、AWS等云主机,还有第三层拦截——云平台的安全组。安全组在虚拟化层面过滤流量,系统内的防火墙规则对它无效。需要登录云控制台,找到实例的安全组配置,添加一条入方向规则:协议TCP、端口11434、源地址填你的客户端IP或指定网段。生产环境不建议源地址填0.0.0.0/0,否则等于把模型接口暴露给全网。
四、连通性测试与常见报错排查
全部配置完成后,在客户端机器上依次测试。先测网络层连通:
ping 服务器IP curl http://服务器IP:11434
curl返回"Ollama is running"说明HTTP服务已经通了。再做一次真实的模型调用验证:
curl http://服务器IP:11434/api/generate -d '{
"model": "llama3",
"prompt": "你好",
"stream": false
}'排查时按报错信息定位:Connection refused通常是监听地址没改或服务没启动,回到第一步检查ss -tlnp的输出;Connection timed out或请求挂起无响应,多半是防火墙或安全组没放行,逐层检查firewalld、ufw和云安全组;能返回403或401则说明网络已通,是权限层的问题。另外提醒一点,如果你在Ollama前面套了Nginx反向代理,记得在配置中设置proxy_pass http://127.0.0.1:11434并加上chunked传输支持,否则流式输出会卡住。按这个顺序排查,远程访问问题基本都能一次性解决。
Ollama远程访问OLLAMA_HOST防火墙端口放行修改时间:2026-09-07 17:52:35