适用场景: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:如何让局域网其他设备访问?

只需确保:

  1. OLLAMA_HOST=0.0.0.0:8080
  2. 防火墙开放 8080 端口:
    sudo ufw allow 8080/tcp
    
  3. 客户端使用 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 集成到各种开发或生产环境中,再也不怕端口冲突!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐