【超详细】Ollama 修改默认端口(11434 → 8080)完整指南:systemd + Shell + 客户端全适配
适用场景:Docker 集成 / WebUI 对接 / 内网统一端口 / 端口冲突解决
关键词:Ollama 端口修改、OLLAMA_HOST、systemd override、Linux 服务配置
系统环境:Ubuntu / Debian / CentOS 等 systemd 系统
Ollama 版本:v0.1.x 及以上
🔍 一、为什么需要修改 Ollama 默认端口?
Ollama 默认监听 127.0.0.1:11434,但在实际开发或部署中,常遇到以下问题:
- 端口被占用(如其他服务已使用 11434)
- 需要对外暴露 API(供 Web 前端、Dify、FastAPI 调用)
- 内网统一端口规范(如所有 AI 服务走 8080)
- 配合 Nginx 反向代理 或 code-server 集成
此时,仅修改服务端口是不够的——客户端也必须同步配置,否则会报错:
Error: ollama server not responding
本文将手把手教你 通过 systemd 修改 Ollama 服务端口,并让客户端无缝连接!
⚙️ 二、核心原理:服务端 vs 客户端
| 组件 | 控制变量 | 默认值 | 说明 |
|---|---|---|---|
| 服务端 | OLLAMA_HOST(在 systemd 中设置) | 127.0.0.1:11434 | 决定 Ollama 监听哪个 IP 和端口 |
| 客户端 | OLLAMA_HOST(Shell 环境变量) | 127.0.0.1:11434 | 决定 ollama run 命令连接哪里 |
✅ 关键点:两端必须一致!只改服务不改客户端 = 连接失败!
🛠 三、修改 Ollama 服务端口为 8080(systemd 方式)
步骤 1:创建 systemd override 目录
sudo mkdir -p /etc/systemd/system/ollama.service.d
💡
override.conf是 systemd 推荐的覆盖主服务配置的方式,安全且可维护。
步骤 2:写入新端口配置
sudo tee /etc/systemd/system/ollama.service.d/override.conf > /dev/null <<EOF
[Service]
Environment="OLLAMA_HOST=0.0.0.0:8080"
EOF
0.0.0.0:允许局域网或其他机器访问(若仅本地用,可写127.0.0.1)8080:目标端口(可替换为你需要的任意未占用端口)
步骤 3:重载 systemd 并重启服务
sudo systemctl daemon-reload
sudo systemctl restart ollama.service
步骤 4:检查服务状态
sudo systemctl status ollama.service --no-pager
✅ 看到 Active: active (running) 即表示成功!
🖥 四、客户端适配(极易遗漏!)
此时直接运行:
ollama run glm-4.7-flash
会失败!因为客户端仍在尝试连接 127.0.0.1:11434。
✅ 方案 1:临时生效(当前终端)
export OLLAMA_HOST=127.0.0.1:8080
ollama run glm-4.7-flash
✅ 方案 2:永久生效(推荐)
echo 'export OLLAMA_HOST=127.0.0.1:8080' >> ~/.bashrc
source ~/.bashrc
✅ 之后所有新终端均可直接使用
ollama run,无需额外设置!
🧪 五、验证端口是否生效
方法 1:查看监听端口
ss -lntp | grep ollama
# 应输出:LISTEN 0 4096 0.0.0.0:8080 ...
方法 2:调用 API 测试
curl http://127.0.0.1:8080/api/tags
✅ 返回模型列表即表示服务正常!
📜 六、一键自动化脚本(收藏备用)
将以下脚本保存为 change_ollama_port.sh,赋予执行权限后运行:
#!/bin/bash
# 修改 Ollama 端口为 8080 并自动配置客户端
set -e
PORT=8080
echo "🔧 正在修改 Ollama 服务端口为 ${PORT}..."
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo tee /etc/systemd/system/ollama.service.d/override.conf > /dev/null <<EOF
[Service]
Environment="OLLAMA_HOST=0.0.0.0:${PORT}"
EOF
sudo systemctl daemon-reload
sudo systemctl restart ollama.service
# 配置当前用户客户端
echo 'export OLLAMA_HOST=127.0.0.1:'${PORT} >> ~/.bashrc
export OLLAMA_HOST=127.0.0.1:${PORT}
echo "✅ 配置完成!"
echo "📌 客户端连接地址: ${OLLAMA_HOST}"
echo "🚀 尝试运行:ollama run llama3"
# 可选:测试运行(取消注释)
# ollama run llama3
⚠️ 注意:首次运行可能需要拉取模型,请确保网络畅通。
❓ 七、常见问题 FAQ
Q1:能改成其他端口吗?比如 80、443?
✅ 可以!但需注意:
- 端口 < 1024 需 root 权限(建议用 8080、8000、11435 等)
- 确保端口未被占用:
sudo lsof -i :8080
Q2:能否同时监听多个端口?
❌ 不能。Ollama 当前仅支持单端口监听。
Q3:如何让局域网其他设备访问?
只需确保:
OLLAMA_HOST=0.0.0.0:8080- 防火墙开放 8080 端口:
sudo ufw allow 8080/tcp - 客户端使用
http://你的服务器IP:8080
🔒 公网暴露建议:务必配合 Nginx + Basic Auth / JWT / IP 白名单,避免模型被滥用!
✅ 总结
| 操作 | 命令/配置 |
|---|---|
| 修改服务端口 | systemd override + OLLAMA_HOST=0.0.0.0:8080 |
| 客户端连接 | 设置 export OLLAMA_HOST=127.0.0.1:8080 |
| 永久生效 | 写入 ~/.bashrc |
| 验证 | curl http://127.0.0.1:8080/api/tags |
通过本文方法,你可以轻松将 Ollama 集成到各种开发或生产环境中,再也不怕端口冲突!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)