简介:这份PDF文档面向政企内网IT运维人员及具备基础技术能力的学习者,聚焦无互联网接入场景下DeepSeek的离线部署与AI知识库搭建。内容覆盖离线资源准备、多平台环境部署、数据投喂与权限管理,并针对国产化适配与安全加固做了专门优化,可帮助读者在Windows Server、Linux及macOS上完成从模型导入到RAG知识库落地的全流程。资源包共1个PDF文件,大小约5.28MB,以图文步骤形式呈现,便于按章节查阅与对照操作。文档重点讲解两种RAG实现路径,其中基于Cherry Studio的数据投喂方式对新手较为友好,同时涉及Ollama API访问控制、宝塔面板安全设置及操作系统、CPU架构与硬件兼容性等国产化要点。目前已有1372人学习,适合需要在内网环境中安全引入AI能力、解决部署与权限难题的技术人员参考。
1. 内网离线部署 DeepSeek:为什么你的 Ollama 装完却连不上
内网环境里装 DeepSeek,最让人抓狂的不是模型跑不起来,而是 Ollama 服务明明启动了,客户端却死活连不上。我见过太多人在这上面翻车——安装包双击完,命令行敲ollama run deepseek-r1也能出结果,但换到另一台机器用 Cherry Studio 或 Lobe Chat 去连,直接超时。问题往往出在OLLAMA_HOST这个环境变量上,默认只监听127.0.0.1,内网其他机器根本访问不到。这套离线部署方案覆盖 Windows Server、Linux 和 macOS 三个平台,核心组件就是 Ollama 加离线模型包,再配一个 Web 客户端做知识库入口。适合在政企内网、实验室隔离环境里需要本地 AI 知识库的运维和开发人员。装不好不会炸,但会卡在“服务在跑、请求不通”这种玄学状态里,排查起来很费时间。
2. 离线资源准备:模型包、Ollama 安装包和客户端镜像怎么选
2.1 模型离线包的获取与完整性校验
内网部署的第一步不是装软件,而是把模型文件弄进去。DeepSeek 的模型文件动辄几十 GB,在线ollama run那套在内网完全走不通。常见做法是在有外网的机器上先把模型拉下来,再通过物理介质导入。
从 Ollama 官方仓库拉取模型是最直接的方式。在有网的机器上执行:
# 拉取 DeepSeek-R1 各版本,按需选择 ollama pull deepseek-r1:7b ollama pull deepseek-r1:14b ollama pull deepseek-r1:32b # RAG 需要的文本向量模型 ollama pull nomic-embed-text拉完之后模型文件默认存在~/.ollama/models目录下(Linux/macOS)或C:\Users\<用户名>\.ollama\models(Windows)。把这个目录整体打包拷走就行。如果模型文件太大,Linux 下用split分割,Windows 下用 7-Zip 分卷压缩,到了内网再合并。
提示:模型文件导入前务必做 SHA256 校验,内网传输环节多,文件损坏的概率比想象中高。
# Linux/macOS 校验 sha256sum /path/to/model/file # Windows PowerShell 校验 Get-FileHash -Algorithm SHA256 C:\path\to\model\file校验值跟官方提供的对比,不一致就重新传。这一步别省,我见过因为模型文件损坏导致 Ollama 加载时报unexpected EOF的案例,排查了半天才发现是拷贝过程中断了。
如果官方仓库拉不动,ModelScope 上搜 GGUF 格式的 DeepSeek 模型也能用。GGUF 是 Ollama 能直接导入的格式,下载后需要手动写一个 Modelfile:
# 新建 Modelfile,内容如下 FROM ./deepseek-r1-7b.Q4_K_M.gguf然后执行导入:
# 进入模型文件所在目录 cd /path/to/model/dir # 导入模型,名称自定义 ollama create deepseek-r1-local -f Modelfile # 验证导入结果 ollama listollama create的-f参数指定 Modelfile 路径,模型名称自己定,导入成功后ollama list里能看到就算成了。
2.2 Ollama 离线安装包的跨平台准备
Ollama 的离线安装包分平台处理。Windows 最简单,官网下载.exe安装包直接拷进内网双击。Linux 和 macOS 需要多一步操作。
Linux 下,在有网的机器上执行官方安装脚本:
curl -fsSL https://ollama.com/install.sh | sh脚本跑完后,Ollama 二进制文件通常在/usr/local/bin/ollama。把这个文件拷到内网服务器的/usr/local/bin/下,赋执行权限:
sudo cp ollama /usr/local/bin/ sudo chmod +x /usr/local/bin/ollamamacOS 同样可以用安装脚本,或者用 Homebrew:brew install ollama。装完后二进制文件位置跟 Linux 类似,拷走即可。
2.3 客户端离线包:Lobe Chat 和 Cherry Studio 的取舍
客户端这块有两个选择。Lobe Chat 是 Web 界面,支持多用户和权限划分,适合团队共用;Cherry Studio 是桌面客户端,喂数据做 RAG 更简单,新手推荐。
Lobe Chat 用 Docker 部署,离线环境需要先在有网的机器上拉镜像再导出:
# 有网机器上拉取镜像 docker pull lobehub/lobe-chat # 导出为 tar 包 docker save -o lobe-chat.tar lobehub/lobe-chat # 把 tar 包拷到内网,加载镜像 docker load -i lobe-chat.tar启动命令里几个关键环境变量:
docker run -d -p 3210:3210 \ -e OPENAI_API_KEY=sk-xxxx \ -e OPENAI_PROXY_URL=http://<内网Ollama地址>:11434/v1 \ -e ACCESS_CODE=your-access-code \ --name lobe-chat \ lobehub/lobe-chatOPENAI_PROXY_URL指向内网 Ollama 的 API 地址,ACCESS_CODE是访问认证码,设一个自己记得住的。OPENAI_API_KEY在内网 Ollama 场景下随便填,Ollama 不校验这个。
Cherry Studio 直接下载桌面安装包拷进去就行,配置里填 Ollama 地址和端口即可连接。
3. 内网环境部署:Windows Server 与 Linux 的配置差异
3.1 Windows Server 部署与防火墙放行
Windows Server 上装 Ollama 就是双击安装包的事,但装完必须配环境变量,否则内网其他机器连不上。
右键“此电脑” → 属性 → 高级系统设置 → 环境变量,在系统变量里新建:
| 变量名 | 变量值 | 说明 |
|---|---|---|
| OLLAMA_HOST | 0.0.0.0:11434 | 监听所有网卡,内网可访问 |
| OLLAMA_MODELS | D:\ollama\models | 模型存放路径,按实际改 |
改完重启 Ollama 服务。可以在服务管理器里手动重启,或者命令行:
Restart-Service Ollama防火墙这块容易漏。默认 Windows 防火墙会拦 11434 端口,需要加一条入站规则:
netsh advfirewall firewall add rule name="Ollama" dir=in action=allow protocol=TCP localport=11434Lobe Chat 的 3210 端口同理放行。Windows Server 2019 和 2022 实测没问题,更早的版本可能在 Docker 兼容性上出幺蛾子。
3.2 Linux Server 部署与 systemd 服务管理
Linux 下 Ollama 的二进制文件拷进去之后,建议用 systemd 管理,开机自启和崩溃重启都省心。
创建/etc/systemd/system/ollama.service:
[Unit] Description=Ollama Service After=network.target [Service] User=youruser WorkingDirectory=/path/to/ollama ExecStart=/usr/local/bin/ollama serve Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_MODELS=/path/to/your/models" Restart=always [Install] WantedBy=multi-user.targetUser改成实际运行用户,WorkingDirectory和OLLAMA_MODELS按实际路径改。Restart=always保证服务挂了自动拉起来。
启用并启动:
sudo systemctl daemon-reload sudo systemctl enable ollama sudo systemctl start ollama防火墙放行:
# CentOS/RHEL sudo firewall-cmd --permanent --add-port=11434/tcp sudo firewall-cmd --reload # Ubuntu/Debian sudo ufw allow 11434/tcp高并发场景下调整ulimit:
# 临时生效 ulimit -n 65535 # 永久生效,编辑 /etc/security/limits.conf * soft nofile 65535 * hard nofile 655353.3 macOS 部署与 LaunchAgents 管理
macOS 上装 Ollama 用 Homebrew 最省事:brew install ollama。环境变量配在~/.zshrc里:
export OLLAMA_HOST="0.0.0.0:11434" export OLLAMA_MODELS="/path/to/your/models"source ~/.zshrc生效。macOS 的 Gatekeeper 可能会拦一下,在安全性与隐私里放行即可。开机自启用launchctl配 LaunchAgents,不过内网服务器场景下 macOS 用得少,这里不展开。
4. 避坑与排查:内网部署最常见的五个翻车点
4.1 服务启动了但内网连不上
现象:本机ollama run正常,其他机器访问http://<IP>:11434超时。
原因:OLLAMA_HOST没设成0.0.0.0:11434,默认只监听127.0.0.1。
解决:检查环境变量是否生效,重启 Ollama 服务。Linux 下systemctl show ollama | grep Environment可以看当前配置。
4.2 模型导入后 ollama list 看不到
现象:ollama create执行完没报错,但ollama list里没有新模型。
原因:Modelfile 里的FROM路径写错了,或者模型文件跟 Modelfile 不在同一目录。
解决:FROM后面跟的是相对路径,确保cd到模型文件所在目录再执行ollama create。路径里不要有中文和空格。
4.3 Lobe Chat 连 Ollama 报 404
现象:Lobe Chat 界面能打开,但发消息报错,日志里是 404。
原因:OPENAI_PROXY_URL没加/v1后缀。
解决:Ollama 的 OpenAI 兼容接口地址是http://<IP>:11434/v1,少写/v1就会 404。
4.4 模型加载慢或内存爆掉
现象:ollama run卡在加载阶段,或者系统内存被吃满。
原因:模型参数量跟硬件不匹配。7B 模型大概需要 8GB 内存,32B 需要 32GB 以上。
解决:先跑小模型验证流程,再逐步换大模型。ollama ps可以看当前加载的模型和资源占用。
4.5 Docker 镜像加载后启动失败
现象:docker load成功,但docker run报错退出。
原因:镜像架构跟内网服务器 CPU 架构不匹配,比如在 x86 机器上加载了 arm64 的镜像。
解决:docker inspect <镜像名> | grep Architecture确认架构,有网机器上拉镜像时指定--platform linux/amd64。
5. 装完怎么验证:从 Ollama API 到 RAG 知识库的完整链路检查
装完之后别急着投数据,先按链路逐层验证,确保每一环都通。
第一步,验证 Ollama 服务本身。在内网服务器上执行:
# 检查服务状态 systemctl status ollama # 直接调 API 测试 curl http://localhost:11434/api/tags返回 JSON 里能看到已导入的模型列表,说明服务正常。
第二步,从另一台内网机器验证远程访问:
curl http://<服务器IP>:11434/api/tags能返回同样的 JSON,说明OLLAMA_HOST和防火墙都配对了。这一步不通,后面全白搭。
第三步,验证模型推理:
curl http://<服务器IP>:11434/api/generate -d '{ "model": "deepseek-r1:7b", "prompt": "你好", "stream": false }'返回里有response字段且内容正常,说明模型加载和推理链路通了。
第四步,验证 Lobe Chat 或 Cherry Studio 的连接。Lobe Chat 里添加 Ollama 提供商,地址填http://<服务器IP>:11434,模型名填ollama list里看到的名称。发一条消息,能正常回复就算通了。
第五步,验证 RAG 链路。用 Cherry Studio 导入一个测试文档,问一个文档里有的问题,看能否正确检索并回答。这一步通了,整套内网 AI 知识库就算跑起来了。
注意:RAG 效果不好时,先检查文本向量模型是否加载正确。
ollama list里应该有nomic-embed-text或你用的其他 embedding 模型。
从那以后我每次部署完内网环境,都强制走一遍这五步验证,不跳步。因为内网排查成本太高,一次没验到位,后面出问题就得从头查。希望帮到你。
本文还有配套的精品资源,点击获取