Linux部署ollama和deepseek-r1
在 Linux 上,Ollama 无法通过环境变量直接绑定到 0.0.0.0。官方文档和社区讨论中并未明确支持通过环境变量 OLLAMA_HOST 来实现这一功能。x86_64 CPU选择下载ollama-linux-amd64x86_64 CPU选择下载ollama-linux-amd64。aarch64|arm64 CPU选择下载ollama-linux-arm。创建ollama.servic
一、部署ollama
1.下载ollama
1.1服务器在线下载
1.1.1访问ollama官网
1.1.2选择对应系统


1.1.3复制命令到服务器上执行(需要有外网)
curl -fsSL https://ollama.com/install.sh | sh
1.2离线安装
1.2.1下载ollama
1.2.1.1:github下载
地址:https://github.com/ollama/ollama/releases/
查看系统cpu:
uname -a
下载版本:
-
x86_64 CPU选择下载ollama-linux-amd64x86_64 CPU选择下载ollama-linux-amd64
-
aarch64|arm64 CPU选择下载ollama-linux-arm

github加速下载:https://github.moeyy.xyz/
1.2.1.2:百度云盘下载
https://pan.baidu.com/s/1MWx57_JuEkfy7lN63D0WTA?pwd=1024 提取码: 1024
2.解压ollama
解压到指定目录:
tar -zxvf ollama-linux-amd64.tgz -C /usr/ollama
查看目录结构:


3.查看ollama版本
/usr/ollama/bin/ollama --version
4.将ollama加入path
echo 'export PATH=/usr/ollama/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
5.将ollama设置开机自启动
创建ollama.service
vim /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/ollama/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
重新加载 systemd 配置
systemctl daemon-reload
启动 Ollama 服务
systemctl start ollama.service
查看ollama服务状态
systemctl status ollama.service
设置开机自启
systemctl enable ollama.service
二、部署deepseek-r1
1.下载deepseek-r1
进入ollama官网:Ollama
选择model:

选择下载deepseek-r1模型:
选择适合自己的型号:

复制命令:

执行安装:


2.尝试沟通deepseel-r1

部署完成
退出聊天:
/bye
三、开放ollama对外开放端口
1.查看ollama的监听端口
ss -tulnp | grep ollama

- Ollama 正在监听两个端口:
- 127.0.0.1:11434
- 127.0.0.1:43255 这说明它 只绑定在本地回环地址 (127.0.0.1),所以外部无法访问。
2.设置监听地址
在 Linux 上,Ollama 无法通过环境变量直接绑定到 0.0.0.0。官方文档和社区讨论中并未明确支持通过环境变量 OLLAMA_HOST 来实现这一功能。
相反,推荐的做法是通过修改 systemd 服务配置文件来设置监听地址,可以在 /etc/systemd/system/ollama.service 文件中添加以下行:
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
完整的ollama.service配置如下:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/ollama/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
[Install]
WantedBy=default.target
systemctl daemon-reload
systemctl restart ollama.service
systemctl status ollama.service
再次查看监听地址:
ss -tulnp | grep ollama

风险提示,仅用于测试,生产环境有以下风险:
直接暴露服务端口:
- 0.0.0.0:11434 会绑定所有网络接口,包括公网。
- 任何知道你 IP + 端口的人都可以尝试访问 Ollama。
- 如果没有访问控制或认证,可能被滥用或攻击(如发送大量请求、恶意输入)。
跨域设置过宽:
- OLLAMA_ORIGINS=* 意味着允许 所有域名访问。
- 可能会被别人用网页发请求到你的 Ollama 服务,导致滥用或资源被耗尽。
Root用户运行:
- systemd 使用 User=root 启动服务,如果 Ollama 出现漏洞或被攻击,攻击者可能获取 root 权限。
- 高风险!生产环境不建议用 root。
缺少认证和加密:
- Ollama 默认没有认证,如果对外开放,任何人都可以调用接口。
- HTTP 没有加密,数据可能被中间人窃听
四、防火墙放行端口
查看当前防火墙的放行端口:
firewall-cmd --list-ports
如果看到没有 11434/tcp,就说明 Ollama 的端口还没放行,需要加规则:
firewall-cmd --zone=public --add-port=11434/tcp --permanent
firewall-cmd --reload
测试连接:
curl http://ip:11434
出现Ollama is running说明访问成功:

五、如果是云服务器记得调整安全组规则,开放11434端口
以阿里云服务器举例:

四、尝试本地调用deepseek-r1模型
以python为例:
import requests
url = "http://ip:11434/api/generate"
data = {
"model": "deepseek-r1:1.5b",
"prompt": "你好,给我讲个冷笑话"
}
resp = requests.post(url, json=data, timeout=60, stream=True)
for line in resp.iter_lines():
if line:
print(line.decode("utf-8"))

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐




所有评论(0)