Ollama配合ufw防火墙,仅允许内网访问11434端口
Ollama 默认启动后会监听 11434 端口,如果你的服务器地址是公网 IP 或绑定到 0.0.0.0,其他人就能通过网络直接调用你的模型接口。
配合 ufw 防火墙,可以只允许内网 IP 段访问 11434 端口,同时阻断公网请求。
本文以 Ubuntu/Debian 为例,给出可直接执行的命令、验证方法和易错点。
1. 先确认 Ollama 的监听地址
在配置防火墙之前,先检查 Ollama 当前监听的 IP 和端口,确认是否已经暴露。
执行:
sudo ss -tlnp | grep 11434
如果输出中的监听地址是 0.0.0.0:11434 或 *:11434,说明 Ollama 对所有网络接口都开放,需要使用 ufw 收紧访问。
如果是 127.0.0.1:11434,说明只允许本机访问,不需要配置防火墙规则。
注意:
如果 Ollama 本身只监听 127.0.0.1,
但你又想让内网其他机器访问,
先修改 Ollama 的 OLLAMA_HOST 环境变量为 0.0.0.0 或内网 IP,
再继续配置 ufw。
2. 安装并启用 ufw
大多数 Ubuntu/Debian 系统自带 ufw,如果没有安装,先执行:
sudo apt update
sudo apt install ufw -y
启用前建议先放行 SSH,避免把自己锁在服务器外面:
sudo ufw allow OpenSSH
sudo ufw enable
确认 ufw 状态为 active:
sudo ufw status verbose
3. 配置只允许内网访问 11434 端口
假设你的内网段是 192.168.1.0/24,按下述顺序添加规则:
sudo ufw allow from 192.168.1.0/24 to any port 11434 proto tcp
sudo ufw deny 11434/tcp
第一条放行内网 IP 段到 11434 端口的 TCP 请求,第二条拒绝其他来源的 11434 端口访问。
ufw 按照规则顺序匹配,放行规则在前,所以内网请求能通过,其余来源会被拒绝。
如果你希望同时允许本机访问,本机回环接口通常不受 ufw 限制,一般无需额外配置。
4. 验证内外网访问结果
配置完成后,先查看规则状态:
sudo ufw status numbered
确认第一条规则对应 ALLOW,第二条对应 DENY。
在一台内网机器上测试:
curl http://192.168.1.10:11434
内网请求可以正常获得 Ollama 的响应。
如果返回 404 或类似内容,说明端口已通。
再从公网或其他不在内网段的机器测试:
curl http://你的公网IP:11434
正常情况下连接超时或直接被拒绝,说明公网无法访问 11434 端口。
5. 常见避坑点
- 忘记放行 SSH:启用 ufw 前必须先放行 22 端口,否则会断开当前连接。
- 规则顺序错误:如果
deny写在allow前面,内网也会被拒绝,注意先 allow 后 deny。 - 内网网段写错:用
ip addr查看服务器实际网卡 IP,确认网段,避免放行错误地址。 - 云服务器安全组:除了服务器内部 ufw,阿里云、腾讯云等控制台的安全组/防火墙也要检查,如果安全组放行了 0.0.0.0/0,ufw 只能拦截服务器本机,但云安全组还没拦,需要同时调整。
- 重启后规则丢失:ufw 规则默认持久化,正常重启不丢失,除非手动
ufw reset。
如果你已经按步骤操作但依然能被公网访问,优先检查云控制台的入方向规则是否放行了 11434 端口。