☰
银河麒麟V10离线部署DeepSeek大模型:ollama+chatbox完整指南
2026/10/13 18:36:26 网站建设 项目流程

简介:在银河麒麟V10(arm64)离线环境中部署DeepSeek模型,常卡在依赖、服务配置等环节。这份指南面向系统运维、AI部署等技术人员,给出从ollama安装、系统服务与环境变量配置,到离线导入deepseek-r1模型、再配置chatbox客户端及远程访问的完整流程。资源为1个docx文档,压缩包大小约2.69MB,虽然体积小但步骤详尽,包含具体命令、文件路径、飞腾CPU环境下的实测示例,以及将模型注册为systemd服务、设置开机自启等实操细节。已有5524人学习,适合需要在无互联网环境快速搭建大模型服务并保证可交互使用的读者参考。文档末尾的参考资料和阅读建议也能帮助新手规避常见雷区。

1. 银河麒麟 V10 上跑 DeepSeek 大模型:为什么离线部署是刚需

内网隔离的环境里想用上 DeepSeek 这样的大语言模型服务,最容易想到的路线就是本地部署一套 ollama。银河麒麟 V10 作为国产 Linux 系统,在政企、金融、能源这些单位里普及度很高,但这类环境往往不允许联网,于是「离线安装 ollama + 大语言模型服务 + chatbox 客户端」就成了一个非常具体的落地场景。这篇文章讲的不是云端调用,而是把完整的大模型服务装进你的内网服务器,让团队里的每个人都能通过 chatbox 这个桌面客户端,像用聊天软件一样和 DeepSeek 对话。

这个方案能解决的问题很明确:数据不出内网、响应不受外网带宽影响、模型权限完全自主可控。适合的对象是有一台性能尚可的 Linux 服务器(16GB 内存起步带 GPU 更好)、需要在内网提供 AI 对话能力的运维或开发人员。整条链路就是:离线装好 ollama 运行时 → 把模型权重文件搬运进内网 → 配置好 ollama 服务 → 用 chatbox 做用户界面。接下来我会按这条链路一步步展开,把每个环节的坑提前标出来。

2. 离线部署的第一关:依赖包和模型权重都得提前准备

2.1 下载 ollama 离线安装包:不要只抓二进制

离线部署最怕的不是安装本身,而是装到一半发现缺依赖,又没法联网补。所以第一步就是在能联网的机器上把 ollama 的安装包和全部依赖一次性拉齐。我用的方案是:在一台能联网的机器上,用 apt 的 download 模式把 deb 包全部抓下来,再拷贝到离线机器上安装。注意不要只抓 ollama 的二进制,它的运行依赖比想象中多。

具体做法:在一台能联网的机器上,添加 ollama 的官方 apt 源(也可以直接下载 .deb 包),然后执行:

# 在联网机器上,添加 ollama 官方源并拉取依赖 curl -fsSL https://ollama.com/download/ollama.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/ollama.gpg.key echo "deb [arch=amd64 signed-by=/usr/share/keyrings/ollama.gpg.key] https://download.ollama.com/linux/repo stable main" | sudo tee /etc/apt/sources.list.d/ollama.list sudo apt update # 仅下载而不安装,连带所有依赖一起拉下来 sudo apt install --download-only ollama

逻辑说明:

  • --download-only让 apt 只下载不安装,所有 .deb 会落在/var/cache/apt/archives/下。
  • 使用 gpg key 校验仓库签名,避免二进制被篡改,这在离线环境里尤其重要,因为你没法临时更新信任链。

参数说明:

  • arch=amd64要根据 CPU 架构调整,如果是 ARM64 的机器(比如鲲鹏、飞腾),这里要改成arm64,下载的包也不同。
  • 如果机器没有外网 DNS,建议直接把 .deb 包拷贝到 U 盘,而不是依赖 apt 源。

把/var/cache/apt/archives/下的所有 .deb 拷贝到离线机器后,用下面的命令安装:

# 离线机器上,进入存放 deb 包的目录 sudo dpkg -i *.deb

逻辑说明:

  • 如果有依赖顺序问题,dpkg -i *.deb一次性安装所有包,apt 会自动处理大部分依赖。
  • 如果报error: dependency issues,多半是漏了某个依赖包,重新在联网机器上补拉即可。

参数说明:

  • 离线机器上如果之前装过旧版 ollama,建议先sudo apt remove ollama再装,避免配置文件冲突。

常见做法是:不要贪省事直接解压二进制跑,虽然 ollama 官方也提供单二进制文件,但在银河麒麟这类基于 Debian 的国产系统上,缺了 lib 库很容易出现libgcc_s.so.1 must be installed之类的玄学报错,走 deb 包装是最稳的一条路。血泪经验:我第一次为了省事,直接拷二进制,结果折腾了一下午的库依赖。

2.2 大模型权重文件怎么选:别迷信 7B 起步

ollama 装好之后,接下来是模型文件。DeepSeek 在 ollama 仓库里有多个尺寸的版本,从 1.5B 到 400B 都有。离线环境下,你必须提前在联网机器上把模型拉下来。

# 在联网机器上,先拉取模型(以 deepseek-r1:7b 为例) ollama pull deepseek-r1:7b

逻辑说明:

  • ollama pull会从官方仓库下载模型权重,默认存储在~/.ollama/models/下。
  • 拉取完成后,整个模型目录(包括 blobs 和 manifests)一起拷贝到离线机器。

参数说明:

  • 模型标签(tag)决定大小:deepseek-r1:1.5b大约 1.1GB,deepseek-r1:7b大约 4.7GB,deepseek-r1:14b大约 9GB。
  • 显存不够的情况下,别硬上 14B,7B 在量化后 6GB 显存就能跑,CPU 模式也能硬扛。

我一般会建议:先确认目标机器是纯 CPU 还是有 GPU。银河麒麟 V10 的服务器版本大概率有国产 GPU(比如昇腾、寒武纪),但 ollama 对这些加速卡的支持要看版本。如果只是内网办公场景,CPU 跑 7B 量化版完全够用,速度慢一点但胜在稳定。

新版 ollama(0.5.x 以上)对模型格式有调整,老版本的 ollama 可能拉不了新模型的 manifest。所以离线机器上的 ollama 版本和拉模型的机器版本尽量保持一致,或者离线机器的版本更新。这个坑我在后面章节专门讲。

3. 银河麒麟 V10 离线安装 ollama:deb 包装完、服务注册与参数调优

3.1 用 deb 包在银河麒麟上装 ollama 的最小步骤

前面第 2 章已经把依赖包拉下来了,这一步直接落到银河麒麟 V10 上操作。假设你已经把 deb 包目录整个拷到了离线机器,路径是/home/user/ollama-pkgs/。

# 进入 deb 包目录 cd /home/user/ollama-pkgs # 安装所有 deb sudo dpkg -i *.deb # 如果出现依赖缺失,先修复 sudo apt --fix-broken install # 验证版本 ollama --version

逻辑说明:

  • dpkg -i *.deb会把 ollama 主程序、CLI 工具和 systemd 服务脚本一起装上。
  • apt --fix-broken install是后悔药,dpkg 报错之后用这条命令自动补齐依赖。

参数说明:

  • 如果ollama --version报command not found,检查/usr/bin/ollama是否存在,或者重新执行sudo ldconfig刷新动态库缓存。
  • 银河麒麟 V10 的桌面版默认可能有snap干扰,建议关闭 snap 服务再装,不然偶尔会出现奇怪的冲突。

装完只完成了一半,ollama 默认只监听 127.0.0.1,除非你只是想本机测试,否则要给局域网内其他机器访问,必须改 OLLAMA_HOST。修改 systemd 服务配置:

# 编辑 systemd 服务文件 sudo systemctl edit ollama.service # 在打开的编辑器中,填入以下内容
[Service] Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_MODELS=/data/ollama/models"

逻辑说明:

  • systemctl edit会创建 override 配置文件,不直接修改原始 service 文件,升级 ollama 时不会被覆盖。
  • OLLAMA_HOST=0.0.0.0:11434让 ollama 监听所有网卡,局域网内其他机器可以通过 IP 访问。
  • OLLAMA_MODELS指定模型存储路径,建议放到数据盘或大分区,因为模型动不动就是几个 GB。

参数说明:

  • 11434 是 ollama 默认端口,如果和内网其他服务冲突,改成 11435 之类的高位端口。
  • 模型路径不要放在/home下,如果用户目录有配额限制,模型下载到一半就报no space left on device,这是最常见的翻车现场。

改完配置后,重启服务并设置开机自启:

sudo systemctl daemon-reload sudo systemctl restart ollama sudo systemctl enable ollama # 查看运行状态 sudo systemctl status ollama

逻辑说明:

  • daemon-reload让 systemd 重新读取配置,不执行的话 restart 可能不生效。
  • status输出里如果看到Active: active (running),说明服务正常。

3.2 把联网机器上的模型搬运到离线机器

服务起来之后,模型还没进来。前面在联网机器上已经拉到本地了,现在重点是把模型目录完整拷贝过去。

# 在联网机器上打包模型目录 tar -czf deepseek-model.tar.gz -C ~/.ollama/models . # 拷贝到离线机器后解压 mkdir -p ~/.ollama/models tar -xzf deepseek-model.tar.gz -C ~/.ollama/models # 验证模型是否被识别 ollama list

逻辑说明:

  • 模型目录里包含 blobs(权重分片)和 manifests(模型清单),两者必须一起拷贝,缺了 manifests 的话ollama list就看不到模型。
  • tar 打包比 cp -r 更保险,能保留文件权限和符号链接。

参数说明:

  • 如果目标机器的 ollama 版本比源机器旧,建议把新版本先降到一致再拷模型,否则ollama list可能报 manifest 格式错误。
  • 模型拷完后千万别急着启动,先ollama list确认,如果输出空列表,检查~/.ollama/models/manifests是否存在。

这里有一个容易被忽略的坑:模型的 blobs 目录里文件名是哈希值,没有任何扩展名,看起来像乱码,这是正常的。不要手动重命名,ollama 通过哈希校验文件合法性,改一个字都会导致加载失败。等一下,这句话有点夸张了,但你一定不要动 blobs 目录里的任何文件。

3.3 内存与并发参数:决定离线机器能不能顺畅跑

模型装好后,运行参数直接决定体验。先看一份我常用的参数清单:

参数默认值建议值说明
OLLAMA_NUM_PARALLEL12并行处理请求数,内网人多可以调高
OLLAMA_MAX_LOADED_MODELS11同时加载的模型数,内存有限就保持 1
OLLAMA_KEEP_ALIVE5m30m模型在内存中驻留时间,频繁交互建议调长
OLLAMA_FLASH_ALLOC自动false显存不足时开,纯 CPU 不用管

修改方式仍然是systemctl edit,把环境变量加进去:

[Service] Environment="OLLAMA_NUM_PARALLEL=2" Environment="OLLAMA_KEEP_ALIVE=30m"

逻辑说明:

  • OLLAMA_NUM_PARALLEL决定同一模型能同时处理几个请求,调太高会增加显存/内存占用,一个 7B 模型大概占 6-8GB 内存。
  • OLLAMA_KEEP_ALIVE控制模型在内存中的驻留时间,每次请求都重新加载模型的话,启动会慢好几秒,体验就会很卡。

参数说明:

  • 如果机器内存只有 16GB,跑 7B 模型时建议把OLLAMA_NUM_PARALLEL保持默认 1,否则容易 OOM。
  • 纯 CPU 场景下,模型权重会全部加载到内存,7B 量化版约占用 5-6GB,给系统留足余量。

我一般会建议:先开默认参数跑一轮,用ollama run deepseek-r1:7b聊几句测试,观察内存占用和响应延迟,再决定是否调并发。不要一上来就拉满,翻车了还得排查半天。

4. 把大模型变成聊天界面:chatbox 客户端的离线部署

4.1 chatbox 是什么:为什么选它来配 ollama

模型服务跑起来了,但它只是一个 HTTP API 服务,没有可视化界面。你总不能叫运维同事都用 curl 来聊天,这太离谱了。chatbox 是一个开源的桌面客户端,专门干这事:把 ollama 这种大模型服务包装成类似即时通讯软件的聊天窗口。

选择 chatbox 的主要理由有三个:一是跨平台,Windows、Linux、macOS 都有安装包,银河麒麟 V10 上可以直接跑 Linux 版;二是配置简单,填一个 API 地址就完事,不用写代码;三是支持多模型切换,同一个界面里可以随时切换不同尺寸的 DeepSeek 模型。

如果团队里有人不想用桌面客户端,也可以直接用浏览器访问 ollama 的 WebUI(比如 open-webui),但那是另一套部署方案,复杂度更高。chatbox 的价值就是零学习成本,双击打开、填地址、开聊。

要注意的是:chatbox 本身不包含模型,它只是客户端,所有计算都在 ollama 服务端完成。所以即使你的办公电脑很垃圾,只要能在内网访问到那台跑着 ollama 的服务器,一样能用 7B 模型。

4.2 chatbox 离线安装包怎么找

离线环境下没有应用商店,需要提前下载安装包。chatbox 的发布渠道是 GitHub Releases,找到对应 Linux 平台的包下载。这里有一点需要留意:x86_64 和 ARM64 架构的包不一样,选错了装不上。

# 在联网机器上,用 wget 下载 chatbox Linux 版(以 x86_64 AppImage 为例) wget https://github.com/chatboxai/chatbox/releases/download/v0.9.4/Chatbox-0.9.4-x86_64.AppImage

逻辑说明:

  • AppImage 格式的好处是不需要安装,直接赋予执行权限就能跑,非常适合政企内网这种不允许随便装软件的环境。
  • 如果目标机器是 ARM64 架构(如飞腾 CPU),要下载arm64版本,下载前先在机器上执行uname -m确认架构。

参数说明:

  • 文件名里的x86_64表示 Intel/AMD 架构,aarch64表示 ARM 架构。
  • chatbox 新版叫 Chatbox,老版本叫 chatbox,下载时认准Chatbox-*开头。

把 AppImage 文件拷贝到离线机器后,赋予执行权限就能跑:

# 离线机器上 chmod +x Chatbox-0.9.4-x86_64.AppImage ./Chatbox-0.9.4-x86_64.AppImage

逻辑说明:

  • 如果双击没反应,多半是系统缺 FUSE 库,安装libfuse2即可,这个包银河麒麟的源里有。
  • 如果系统是 Wayland 会话,AppImage 启动可能黑屏,切换到 X11 会话即可解决。

4.3 chatbox 连接 ollama:配置里的 3 个必填项

chatbox 启动后,进入设置界面,选择模型提供方为Ollama API,然后填写三个关键配置:

配置项填写内容说明
API 地址http://服务器IP:11434指向 ollama 服务地址,别填 127.0.0.1
API 密钥留空ollama 默认不需要密钥
模型名称deepseek-r1:7b必须和ollama list输出完全一致

配置完成后,点连接测试,看到Connected successfully就说明通了。如果失败,重点排查三个方向:

第一,API 地址里的 IP 是不是 ollama 服务器本身;第二,服务器防火墙是否放行了 11434 端口;第三,OLLAMA_HOST 是否已改为0.0.0.0。

如果在同一台机器上使用 chatbox 和 ollama,API 地址可以填http://127.0.0.1:11434,但这样其他机器就没办法连了。我一般会建议填局域网 IP,这样调试时任何机器都能访问。

5. 离线部署避坑指南:模型加载失败、端口不通、架构不匹配

前面把安装流程走完了,这一章是血泪经验汇总。以下这些坑我踩过的次数,比安装次数都多。

5.1 模型加载报 manifest 格式错误

现象:ollama list能看到模型,但ollama run直接报错,提示 manifest 相关错误,模型无法加载。

原因:离线机器上的 ollama 版本比拉模型时用的版本旧。新版 ollama 改了模型 manifest 的格式字段,旧版本解析不了。另一个常见原因是模型目录里的manifests子目录没拷贝完整,只拷了 blobs。

解决:先升级离线机器的 ollama 到与拉模型时一致的版本,再重新拷贝 manifests 目录。如果不想升级,就在联网机器上用对应的旧版本重新拉一次模型。

5.2 内网其他机器连不上:11434 端口不通

现象:ollama 在本机curl http://127.0.0.1:11434正常,但其他机器访问超时或拒绝连接。

原因:没有修改 OLLAMA_HOST,默认只监听本地回环地址;或者系统防火墙没有放行端口。银河麒麟 V10 默认可能启用 firewalld,不配置的话外部访问全被拦。

解决:先确认监听地址,用sudo ss -lntp | grep 11434查看,如果看到 IP 是 127.0.0.1,说明环境变量没生效。然后执行sudo firewall-cmd --permanent --add-port=11434/tcp && sudo firewall-cmd --reload放行端口。

命令参考:

# 检查监听地址 ss -lntp | grep 11434 # 放行防火墙端口 sudo firewall-cmd --permanent --add-port=11434/tcp sudo firewall-cmd --reload

逻辑说明:

  • 修改 systemd override 文件后必须执行sudo systemctl daemon-reload,不然环境变量不生效。
  • 防火墙配置因版本而异,如果没有 firewalld,检查是否有 iptables 规则。

5.3 架构不匹配:x86 包装到 ARM 机器上

现象:安装 ollama deb 包时报package architecture (amd64) does not match system (arm64)或直接提示无法安装。

原因:下载的安装包和 CPU 架构不符。银河麒麟 V10 可以跑在 x86、ARM(飞腾)、LoongArch 等多种架构上,下载时没确认架构。

解决:装之前先执行uname -m,输出x86_64就下载 amd64 包,输出aarch64就下载 arm64 包。下载链接里都有明确的架构标注,不要只看文件名里带没带 "linux" 就下手。

5.4 chatbox 聊天时每个字都蹦但特别慢

现象:chatbox 能连上 ollama,回复也正常,但生成速度只有每秒几个字,用起来很煎熬。

原因:目标机器可能没有 GPU,或 GPU 显存不够,模型跑在 CPU 上。7B 模型的 CPU 推理速度本身就慢,这是硬件瓶颈,不是配置问题。

解决:接受现实,换更小的模型(1.5B 或 3B),或者把量化等级调到更低,比如从 Q4_K_M 降到 Q3_K_S。如果机器有 GPU 但 ollama 没检测到,检查是否有驱动,并确认 ollama 日志里是否输出了 GPU 相关信息。实话实说,CPU 跑 7B 就是需要耐心,想要流畅必须上 GPU。

6. 进阶验证:用 curl 做接口健康检查,让部署可度量

6.1 用 curl 做接口层面的健康检查

界面聊天正常只代表端到端通了,但真正上线给团队用之前,建议先做一轮 API 层验证。这一步能帮你确认并发、延迟和稳定性,达不到预期的提前调参数,别等大家用着卡了再救火。

# 查看模型列表 curl http://127.0.0.1:11434/api/tags # 发送一次对话请求并计时 time curl http://127.0.0.1:11434/api/chat -d '{ "model": "deepseek-r1:7b", "messages": [{"role": "user", "content": "你好,用一句话介绍你自己"}] }'

逻辑说明:

  • /api/tags返回所有已安装模型,输出里应该能看到deepseek-r1:7b。
  • /api/chat是 OpenAI 兼容的对话接口,chatbox 也是走这个接口,所以这里通了,客户端必通。

参数说明:

  • 如果响应内容被流式截断,可以在请求体里加"stream": false,让服务端一次性返回完整结果,更便于观察输出长度和耗时。

6.2 压力测试:3 个并发会话同时问答

给团队使用前,我习惯模拟 3 个人同时提问的场景,验证并行处理能力和稳定性。

# 使用 shell 循环模拟并发请求(CPU 机器谨慎使用) for i in 1 2 3; do curl -s http://127.0.0.1:11434/api/chat -d '{ "model": "deepseek-r1:7b", "messages": [{"role": "user", "content": "写一段关于数据备份的说明"}], "stream": false }' > /tmp/response_$i.json & done wait # 查看各响应文件的大小 ls -lh /tmp/response_*.json

逻辑说明:

  • 三个 curl 并行发出,wait等待全部完成。
  • 响应文件大小能看出是否有请求被拒绝或超时,如果某个文件只有几十字节,多半是报错信息。

参数说明:

  • 纯 CPU 机器上跑 3 并发可能会非常慢,这是正常现象,重点看响应是否完整,而不是追求速度。
  • 如果内存不足,进程可能被 OOM killer 杀掉,用dmesg | tail检查内核日志。

6.3 我的习惯:模型版本锁定与备份

最后一个经验,也是我给自己定的规矩:离线部署完成后,第一时间备份整个~/.ollama/models目录到移动硬盘或文件服务器。大模型文件非常多,真到哪天服务器硬盘挂了,你会发现重新下载或拷贝的成本比当初备份高得多。

另外,记录当前安装的包版本和关键配置文件。我一般会在部署完成后执行以下命令,把结果存成一份文本文件放在服务器 /root 下:

# 记录部署信息,方便后续排障对照 echo "=== ollama version ===" > /root/deploy-info.txt ollama --version >> /root/deploy-info.txt echo "=== models ===" >> /root/deploy-info.txt ollama list >> /root/deploy-info.txt echo "=== systemd override ===" >> /root/deploy-info.txt systemctl cat ollama.service >> /root/deploy-info.txt

这套习惯帮过我很多次,尤其是几个月后有人来问"这个模型当时怎么配的",直接翻文件就行,比在群里翻聊天记录靠谱一百倍。整个方向就是这样:在银河麒麟 V10 上把 ollama 跑起来,模型用 tar 包搬进去,chatbox 做客户端适配,参数用 systemd 环境变量管住,最后用接口层验证兜底。希望这篇笔记能帮你在内网环境里少走弯路,把 DeepSeek 真正用起来。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询