前言 :本文记录在 CentOS 7+ / Ubuntu 20.04+ 上部署 Ollama 的实操笔记,覆盖 一键在线安装 与 离线 tar 包安装 两种方式,并补充 systemd 开机自启 、qwen2 / deepseek-r1 等模型拉取与对话 、局域网远程 API 访问 及常见排错要点。适合在 Linux 服务器或虚拟机上本地跑大模型、为 Python/AI 应用提供推理服务、或内网/弱网环境需要离线部署的读者。按文操作即可完成安装、启服、拉模型,并按需开放 11434 端口供其他机器调用。
一、环境准备
- 系统:CentOS7+ / Ubuntu20.04+(64 位)
- 权限:root 或 sudo 权限
- 硬件:内存 ≥8GB(7B 模型推荐 16GB),磁盘 ≥20GB(存模型)
- 网络:联网(在线安装);离线需提前下载安装包
二、两种安装方式
方式 1:一键在线安装
bash
# 官方脚本(自动下载+解压+配置服务)
curl -fsSL https://ollama.com/install.sh | sh
# 验证安装(输出版本即成功)
ollama --version
# 示例:ollama version is 0.5.12
方式 2:手动离线安装(网络差时用)
下载离线包(官网 / 网盘):
https://ollama.com/download/ollama-linux-amd64.tgz
上传到 Linux(如 /root/install_package),执行:
bash
# 解压到 /usr(系统目录,全局可用)
tar -zxvf ollama-linux-amd64.tgz -C /usr/
# 验证
ollama -v
三、配置开机自启(必做)
创建系统服务文件 /etc/systemd/system/ollama.service:
bash
vi /etc/systemd/system/ollama.service
写入内容:
ini
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
生效并设置开机自启:
bash
# 重载服务配置
systemctl daemon-reload
# 开机自启
systemctl enable ollama
# 启动服务
systemctl start ollama
# 查看状态(显示 active 即正常)
systemctl status ollama
四、拉取并运行模型(以 qwen2、deepseek-r1 为例)
1. 拉取模型(自动下载,约 300MB--1GB)
bash
# 通义千问 qwen2:0.5b(轻量)
ollama pull qwen2:0.5b
# DeepSeek 推理模型 deepseek-r1:1.5b
ollama pull deepseek-r1:1.5b
2. 运行模型(对话交互)
bash
# 运行 qwen2
ollama run qwen2:0.5b
# 运行 deepseek-r1
ollama run deepseek-r1:1.5b
输入问题直接对话,输入 /bye 退出。
五、开通远程访问(可选,局域网 / 外部调用)
1. 配置环境变量(允许所有 IP 访问)
编辑 /etc/profile:
bash
vi /etc/profile
添加:
bash
export OLLAMA_HOST=0.0.0.0:11434
export OLLAMA_ORIGINS=*
生效:
bash
source /etc/profile
2. 修改服务文件(添加环境变量)
bash
vi /etc/systemd/system/ollama.service
在 [Service] 下添加 2 行:
ini
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
3. 重启服务 + 放行端口
bash
# 重载+重启
systemctl daemon-reload
systemctl restart ollama
# 放行11434端口(防火墙)
firewall-cmd --zone=public --add-port=11434/tcp --permanent
firewall-cmd --reload
# 或直接关闭防火墙(测试环境)
systemctl stop firewalld
systemctl disable firewalld
4. 测试远程访问
在另一台机器(Windows/macOS)终端执行:
bash
curl http://Linux虚拟机IP:11434/api/generate -d '{"model":"qwen2:0.5b","prompt":"你好"}'
返回结果即成功。
六、Ollama 避坑指南(Linux + Windows)
一、安装类问题
1)Linux:ollama: command not found
原因 :解压没放到 /usr/bin,或没刷新环境
解决:
bash
# 确认文件存在
ls /usr/bin/ollama
# 重新解压(离线包)
tar -zxvf ollama-linux-amd64.tgz -C /usr/
# 重载环境
source /etc/profile
2)Linux:一键安装卡住、很慢
原因:国外源,网络差
解决:改用离线安装(文档里那个 tgz 包),速度稳定。
3)Windows:安装后命令不存在
原因:没加到 PATH
解决 :重启终端;或把 C:\Program Files\Ollama 手动加到系统 PATH。
二、服务启动类问题
4)Linux:systemctl start ollama 失败
常见:配置文件写错、端口占用、权限不对
排查:
bash
# 看报错
journalctl -u ollama
# 端口是否被占
netstat -tuln | grep 11434
注意 :ollama.service 里路径必须是 /usr/bin/ollama,别写错。
5)Windows:托盘没羊驼图标、服务没起来
解决 :管理员运行一次 ollama run qwen2:0.5b,看具体报错;必要时重装。
三、模型下载 / 运行坑
6)pull 模型很慢、一直卡
原因:国外服务器
解决:
- 耐心等;
- 或者先在网络好的机器下好,把
.ollama/models目录直接拷过去。
7)运行模型报错:out of memory / 卡死
原因:内存不够(qwen2:0.5b≈350MB,7B 模型至少 10G+)
避坑:虚拟机至少 8G 内存、2--4 核;新手先用 0.5b/1.5b 小模型。
8)运行模型时:一直拉 manifest、没反应
解决:网络不稳,换网络或离线导入模型。
四、远程访问坑(最常见)
9)虚拟机里开了 0.0.0.0,外部还是连不上
90% 原因:防火墙没关 / 没放行端口
Linux 快速解决(二选一):
bash
# 放行端口
firewall-cmd --add-port=11434/tcp --permanent
firewall-cmd --reload
# 或直接关防火墙(测试环境)
systemctl stop firewalld
systemctl disable firewalld
10)改了 OLLAMA_HOST 还是不能远程
必做:改两处
1)/etc/profile:
bash
export OLLAMA_HOST=0.0.0.0:11434
export OLLAMA_ORIGINS=*
2)ollama.service 的 [Service] 里:
ini
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
然后:
bash
source /etc/profile
systemctl daemon-reload
systemctl restart ollama
11)Windows 访问虚拟机 11434 超时
检查:
- 虚拟机 IP 是否能 ping 通;
- 虚拟机防火墙是否放行;
curl http://虚拟机IP:11434是否返回。