摘要 :本文记录在 Ubuntu 上通过 systemd 将 Ollama 服务从默认监听地址调整为
0.0.0.0:11434的完整过程,包含推荐配置方式、原始 service 文件修改方式、监听验证、日志排查、防火墙放行与安全注意事项。关键词 :Ollama、Ubuntu、systemd、11434、OLLAMA_HOST、端口配置
适用环境:Ubuntu + systemd + Ollama 0.40.x(其他版本命令基本一致)
一、背景与目标
Ollama 默认通常只监听本机回环地址,适合本机调用。如果希望局域网内其他机器、容器或前端服务访问这台 Ubuntu 上的 Ollama API,就需要让 Ollama 监听:
0.0.0.0:11434
本文目标:
-
停止并重新配置 Ollama 服务;
-
让 Ollama 监听所有网卡的
11434端口; -
通过
ss、journalctl、curl验证配置生效; -
处理 UFW 防火墙;
-
说明安全风险与排错方法。
二、整体原理
Ollama 通过环境变量 OLLAMA_HOST 控制监听地址。systemd 启动 ollama serve 时读取该环境变量,因此只需要在 systemd 服务配置中加入:
bash
Environment="OLLAMA_HOST=0.0.0.0:11434"
整体流程如下图:

图 1:Ollama 端口配置整体流程
三、方式一:使用 systemctl edit 覆盖配置(推荐)
推荐使用 systemd 的 drop-in 覆盖机制,不直接修改官方原始 service 文件,后续升级 Ollama 时不容易丢失配置。
3.1 停止服务
bash
sudo systemctl stop ollama
如果担心配置过程中被自动拉起,可暂时禁用:
bash
sudo systemctl disable ollama
3.2 创建覆盖配置
sudo systemctl edit ollama.service在打开的编辑器中写入:
[Service] Environment="OLLAMA_HOST=0.0.0.0:11434"保存退出即可。systemd 会自动生成类似:
/etc/systemd/system/ollama.service.d/override.conf
其配置合并关系如下图所示:

图 2:systemd drop-in 覆盖配置原理
3.3 重新加载并启动
bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl enable ollama
四、方式二:直接修改原始 service 文件
如果更习惯直接改原始文件,也可以编辑:
bash
sudo cp /etc/systemd/system/ollama.service /etc/systemd/system/ollama.service.bak
sudo nano /etc/systemd/system/ollama.service
原始文件类似:
bash
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"
[Install]
WantedBy=default.target
在 [Service] 段中新增一行 ,保留原来的 PATH 不变:
bash
Environment="OLLAMA_HOST=0.0.0.0:11434"
修改后的完整内容:
bash
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"
Environment="OLLAMA_HOST=0.0.0.0:11434"
[Install]
WantedBy=default.target
注意 :直接修改原始文件在 Ollama 升级时可能被覆盖,届时需要重新添加。更稳妥的方式仍是使用
systemctl edit。
五、重新加载并启动服务
无论使用哪种方式,修改后都需要:
sudo systemctl daemon-reload sudo systemctl restart ollama sudo systemctl status ollama
看到:
Active: active (running)
说明服务已启动。但服务运行不代表监听地址正确,继续下一步验证。
六、验证是否监听 0.0.0.0:11434
6.1 使用 ss 查看监听地址
sudo ss -tlnp | grep 11434
期望输出类似:
LISTEN 0 4096 *:11434 *:* users:(("ollama",pid=135426,fd=4))
其中 *:11434 表示监听所有网络接口,即 IPv4 的 0.0.0.0 与 IPv6 的 [::],说明配置成功。
6.2 查看完整启动日志
systemctl status 会截断长行,建议使用 journalctl:
bash
sudo journalctl -u ollama -n 50 --no-pager | grep -i listen
期望看到:
Listening on [::]:11434 (version 0.40.2)
这同样表示 Ollama 主服务已监听所有接口的 11434 端口。
6.3 关于日志中的 127.0.0.1 随机端口
日志里可能还会出现:
srv llama_server: listening on http://127.0.0.1:45365
这是 Ollama 为模型加载的内部 runner 子进程,使用随机本地端口,仅本机内部通信,与对外 API 的 11434 端口无关,属于正常现象,不需要修改。
验证流程可参考下图:

图 3:Ollama 监听验证与排错流程
七、防火墙放行与外部访问测试
7.1 本机非 loopback 地址测试
bash
curl http://$(hostname -I | awk '{print $1}'):11434
期望返回:
Ollama is running
7.2 检查 UFW
sudo ufw status
如果 UFW 为 active 且没有放行 11434:
sudo ufw allow 11434/tcp
7.3 从另一台机器测试
curl http://<这台Ubuntu的IP>:11434
返回 Ollama is running 即外部访问成功。
外部访问与防火墙关系如下图所示:

图 4:外部访问与 UFW 放行关系
八、常见问题排查
8.1 仍然显示 127.0.0.1:11434
检查 systemd 实际读取的环境变量:
sudo systemctl show ollama | grep -i environment
输出中应包含:
OLLAMA_HOST=0.0.0.0:11434
如果没有,说明未执行 daemon-reload、文件未保存,或配置写错段落。
8.2 检查是否存在冲突的 override
sudo systemctl cat ollama
该命令会显示 systemd 合并后的完整配置。检查是否存在多个 OLLAMA_HOST,以优先级高的为准。如果有冲突项,删除或统一修改。
8.3 端口被占用
sudo ss -tlnp | grep 11434
如果被其他进程占用,先停止对应进程,再重启 Ollama。
8.4 本机 curl 正常,外部访问失败
优先检查:
-
UFW / 云安全组 / 路由器 ACL 是否放行
11434/tcp; -
访问 IP 是否正确;
-
是否有其他防火墙工具(如 iptables、nftables)拦截。
九、安全注意事项
将 Ollama 绑定到 0.0.0.0 后,同一网络内任何能访问该端口的设备都可以调用 Ollama API、拉取或删除模型。请仅在可信网络中使用。
如果只需要指定网段访问,建议限制来源:
sudo ufw allow from 192.168.1.0/24 to any port 11434 proto tcp
如果只是临时测试,也可以不修改 systemd,直接前台运行:
OLLAMA_HOST=0.0.0.0:11434 ollama serve
退出后即失效,不影响系统服务配置。
十、总结
本文完成了 Ubuntu 下将 Ollama 配置为监听 0.0.0.0:11434 的完整流程:
-
推荐用
systemctl edit ollama.service添加OLLAMA_HOST=0.0.0.0:11434; -
也可以直接修改原始 service 文件,但升级时可能被覆盖;
-
用
ss -tlnp | grep 11434和journalctl -u ollama | grep -i listen验证; -
看到
*:11434或Listening on [::]:11434即成功; -
日志中的
127.0.0.1:随机端口是内部 runner,无需处理; -
外部访问需放行 UFW 的
11434/tcp; -
对外开放有安全风险,建议限制来源网段。