✅ 在 user03 用户下完整部署 Ollama(手动安装 + 开机自启 + 远程访问)

适用场景

  • 已下载 ollama-linux-amd64.tgz
  • 以普通用户 user03 身份运行
  • 模型路径:/TGAI/ollama/models-2505/models
  • 绑定 0.0.0.0:11434,支持远程访问
  • 系统启动即运行(无需登录)
  • 终端可直接使用 ollama 命令

🧾 一、环境概览

项目
系统 Ubuntu 22.04 / 其他 systemd Linux
用户 user03(非 root)
Ollama 二进制 /TGAI/ollama/ollama_app/bin/ollama
模型目录 /TGAI/ollama/models-2505/models
监听地址 0.0.0.0:11434
启动方式 用户级 systemd + loginctl enable-linger

🔧 二、准备工作(需 root 权限)

1. 解压 Ollama(如未完成)

sudo mkdir -p /TGAI/ollama/ollama_app
sudo tar -zxf ollama-linux-amd64.tgz -C /TGAI/ollama/ollama_app

💡 确保 .tgz 文件在当前目录,或指定完整路径。

2. 设置目录所有权与权限

# 创建模型目录并授权给 user03
sudo mkdir -p /TGAI/ollama/models-2505/models
sudo chown -R user03:user03 /TGAI/ollama/ (或者此目录支持user03 可写可读可执行)
sudo chmod +x /TGAI/ollama/ollama_app/bin/ollama

⚠️ 不要用 chmod 777!仅授权必要用户即可。


👤 三、切换至 user03 用户

su - user03

后续所有操作均在此用户下进行。


⚙️ 四、配置用户级 systemd 服务

1. 创建服务目录

mkdir -p ~/.config/systemd/user

2. 创建服务文件

cat > ~/.config/systemd/user/ollama.service <<EOF
[Unit]
Description=Ollama Service (user03)
After=network.target

[Service]
# 启动命令:执行 Ollama 的 serve 子命令以启动 API 服务
ExecStart=/TGAI/ollama/ollama_app/bin/ollama serve
# 始终自动重启服务(即使正常退出也会重启,适用于需要长期运行的服务)
Restart=always
# 重启前等待 3 秒,避免频繁崩溃导致系统资源浪费
RestartSec=3
# 设置环境变量:指定模型存储路径
Environment="OLLAMA_MODELS=/TGAI/ollama/models-2505/models"
# 设置 Ollama 监听地址和端口(0.0.0.0 表示监听所有网络接口)
Environment="OLLAMA_HOST=0.0.0.0:11434"
# 设置模型在内存中保持加载状态的时间(24 小时),减少重复加载开销
Environment="OLLAMA_KEEP_ALIVE=24h"
# 设置并行处理请求数量(提高并发能力)
Environment="OLLAMA_NUM_PARALLEL=8"
# 启用 Flash Attention 优化(提升推理速度,需硬件支持)
Environment="OLLAMA_FLASH_ATTENTION=1"

[Install]
WantedBy=default.target
EOF

✅ 所有运行时参数集中管理,便于维护。


🔄 五、启用用户空间开机自启(核心步骤)

1. 重载并启用用户服务

systemctl --user daemon-reload
systemctl --user enable --now ollama.service

--now 表示立即启动服务。

2. 启用 linger(需 root)

此步骤允许服务在系统启动时自动运行,即使用户未登录。

# 退出 user03
exit

# root 执行
sudo loginctl enable-linger user03

# 切回 user03(可选,用于后续验证)
su - user03

这是实现“无登录开机自启”的关键!


▶️ 六、验证服务状态

# 查看服务状态
systemctl --user status ollama

# 检查端口监听
ss -tulnp | grep ':11434'

预期输出包含:

LISTEN 0 4096 0.0.0.0:11434 0.0.0.0:* users:(("ollama",pid=...,fd=...))

远程测试(从其他机器)

curl http://<服务器IP>:11434
# 应返回:Ollama is running

若无法访问,请检查防火墙(见第八节)。


🧪 七、配置终端命令(PATH)

user03 可直接使用 ollama 命令:

echo 'export PATH="/TGAI/ollama/ollama_app/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

✅ 验证:

which ollama
# → /TGAI/ollama/ollama_app/bin/ollama

ollama list
# 应正常返回(服务已运行)

💡 CLI 默认连接 127.0.0.1:11434,无需额外设置 OLLAMA_HOST


🔒 八、放行防火墙(如启用)

Ubuntu (ufw)

sudo ufw allow 11434/tcp

CentOS/RHEL (firewalld)

sudo firewall-cmd --permanent --add-port=11434/tcp
sudo firewall-cmd --reload

🛠 九、常用管理命令

操作 命令
查看状态 systemctl --user status ollama
重启服务 systemctl --user restart ollama
实时日志 journalctl --user -u ollama -f
禁用自启 systemctl --user disable ollama + sudo loginctl disable-linger user03

✅ 十、GPU 支持验证

方法 1:运行模型 + 观察 nvidia-smi

# 启动模型(首次会下载)
ollama run llama3:8b

# 新终端监控 GPU
watch -n 1 nvidia-smi

✅ 成功标志:

  • GPU-Util > 0%
  • 显存显著占用

方法 2:查看服务日志

journalctl --user -u ollama -f

成功日志应包含:

loaded CUDA backend
using GPU for inference

⚠️ 若无 GPU 日志,请升级 Ollama 至 ≥ v0.1.34 并确认 NVIDIA 驱动/CUDA 安装正确。


⚙️ 十一、GPU 优化参数

如果不懂最好默认

~/.config/systemd/user/ollama.service[Service] 段追加:

Environment="OLLAMA_GPU_LAYERS=999"
Environment="CUDA_VISIBLE_DEVICES=0"
Environment="OLLAMA_FLASH_ATTENTION=1"
  • OLLAMA_GPU_LAYERS=999:尽可能将层卸载到 GPU
  • 多卡时可用 CUDA_VISIBLE_DEVICES=1 指定设备

修改后重载服务:

systemctl --user daemon-reload
systemctl --user restart ollama

🎯 总结:你已实现

  • 安全隔离:Ollama 以普通用户 user03 运行
  • 持久化模型:存储于自定义路径 /TGAI/...
  • 远程可用:绑定 0.0.0.0:11434
  • 真正开机自启:通过 linger 实现无登录启动
  • 命令行友好ollama run/list/pull 开箱即用
  • GPU 自动加速:支持 CUDA(驱动正常前提下)

🚀 适用于开发、测试甚至轻量生产环境。


ℹ️ 提示:如需多用户共用同一模型目录,请确保目录权限为 755 或使用 ACL,但建议每个用户独立模型空间以避免冲突。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐