手把手教你内网部署DeepSeek:Ollama配置与离线模型全攻略
简介一份围绕内外网DeepSeek部署的实战PDF面向具备一定IT基础的研究员、开发者与企业技术人员旨在解决在内网环境安全高效部署大型语言模型、同时保障数据私密性的痛点。内容以Ollama为核心从硬件与软件选型入手逐项说明Windows、Linux、macOS上的安装方法、OLLAMA_HOST等环境变量配置以及在线和离线两种模型下载方式随后介绍Lmstudio、Chatbox、Cherry-Studio、Lobe Chat等主流客户端的接入特点并给出RAG知识库搭建的推荐思路。安全加固部分重点展开网络隔离、访问控制、模型安全、系统与数据防护、Web客户端专项设置和持续监控更新还涵盖性能调优与故障排查方案。整份PDF为1个文档约2.52MB结构清晰图文步骤可直接对照操作并结合实战经验梳理常见问题与调优技巧已有309人浏览学习对金融、医疗等敏感行业的内部模型落地尤其具有参考价值。1. 内网部署DeepSeek为什么卡在第一步的都是硬件和网络最近在做内外网环境下的DeepSeek部署用的是Ollama做底座前后折腾了小两周中间翻过车也走过弯路。最典型的教训是很多人以为装个大模型就是装个软件、拉个模型文件的事结果要么卡在显卡驱动不匹配上要么卡在内网代理设置不对导致模型下载不下来要么模型跑起来了但其他机器访问不到。DeepSeek部署这件事难的不是点鼠标安装而是装之前没把硬件、网络、运行方式想清楚。如果你是开发者、研究员或者企业里负责内部工具的技术人员想在隔离网络里跑一套带问答、带知识库、带Web界面的大模型服务这篇笔记就是照着踩坑过程写的。硬件上建议NVIDIA显卡且显存不低于24GB内存至少64GB留出100GB磁盘空间软件上需要能装Docker、Node.js和Ollama。下面从Ollama安装开始一直讲到多客户端接入、RAG知识库和安全加固最后是性能调优和验证方法。2. Ollama安装与环境变量三个最容易写错的路径Ollama是目前在内网部署DeepSeek最省心的运行底座模型管理、GPU调用、API暴露都封装好了。这一章把三个主流系统各自的安装方式和验证方法讲清楚再重点拆解环境变量配置。2.1 Windows安装双击之后还要确认服务在跑在Windows上装Ollama确实简单官网下载安装包、双击、一路下一步完事。但这里有两个隐藏点需要留意默认安装路径在C:\Users\用户名\AppData\Local\Programs\Ollama后续模型也会默认下载到C:\Users\用户名\\.ollama\models如果C盘空间紧张一定要在安装前或安装后立刻把模型目录改走别等到磁盘红了再挪。装好之后打开PowerShell或CMD输入以下命令验证ollama --version ollama serve第一条命令看到版本号就说明安装成功。第二条命令是手动启动服务正常情况下终端会刷出listening on 127.0.0.1:11434的日志。Windows上Ollama安装完通常会自动注册成后台服务但有时系统服务没起来这时候就要手动执行ollama serve。我习惯两条都跑一遍确认服务进程在监听端口再继续。2.2 Linux/macOS安装一行命令背后的隐藏依赖Linux和macOS的官方安装方式都是执行同一个脚本curl -fsSL https://ollama.com/install.sh | sh这一条命令看着简单但实际背后做了三件事下载二进制包到/usr/local/bin、创建ollama用户、注册systemd服务。某些精简版服务器缺curl某些发行版缺unzip所以建议先检查基础工具是否齐全否则会报command not found之类的错。macOS还可以走Homebrew方式安装brew install ollama需要注意的坑通过curl | sh装在Linux上时如果系统是CentOS 7这种老内核版本可能会遇到glibc版本过低的问题表现是启动Ollama时报错version GLIBC_2.18 not found。解决方案是升级系统组件或者直接用Docker镜像跑Ollama不要在老旧系统上死磕。安装完后同样用ollama --version验证。macOS和Linux还有一个共同点如果不设置环境变量服务默认只监听本机回环地址127.0.0.1别的机器永远访问不到这就引出了2.3节的内容。2.3 环境变量配置OLLAMA_HOST、OLLAMA_MODELS与代理设置环境变量是Ollama部署里最容易写错的环节我按照项目实战中遇到的情况把三个关键变量的设置逻辑和常见错误逐一拆开说。第一个是OLLAMA_HOST决定Ollama服务监听哪个地址。默认只监听127.0.0.1:11434意味着只有本机能访问。如果想让内网其他机器连接需要改成监听全网卡# Linux/macOS export OLLAMA_HOST0.0.0.0:11434 # Windows PowerShell $env:OLLAMA_HOST0.0.0.0:114340.0.0.0表示监听所有网络接口这样同一网段的机器都能通过http://这台机器的IP:11434访问。改完这个变量后必须重启Ollama服务否则不生效。Windows上改环境变量后需要重启终端窗口否则PowerShell里读到的还是旧值。第二个是OLLAMA_MODELS指定模型文件的存储目录。如果不设置模型默认存放在用户主目录下常见问题是C盘或系统盘被撑爆。我一般会单独挂一块数据盘把模型目录指过去export OLLAMA_MODELS/data/ollama/models注意这个变量必须在启动Ollama服务之前设置模型文件不会自动迁移需要手动移动或者重新下载。第三个是代理设置。这是内网环境最容易踩的坑如果机器访问外网需要走HTTP代理而你没设置代理变量Ollama下载模型时会一直卡在连接超时。设置方式如下# Linux/macOS export HTTP_PROXYhttp://your-proxy-server:port export HTTPS_PROXYhttp://your-proxy-server:port# Windows PowerShell $env:HTTP_PROXYhttp://your-proxy-server:port $env:HTTPS_PROXYhttp://your-proxy-server:port这里最容易翻车的点是把HTTPS_PROXY写成https://开头实际上代理地址用http://开头就行因为Ollama请求外网时是通过HTTP协议连接到代理服务器。另外有些代理服务器要求携带用户名密码格式是http://username:passwordyour-proxy-server:port。提示以上所有环境变量在Windows的系统属性 → 环境变量里设置后务必重启Ollama和终端在Linux下如果用了systemd启动Ollama需要在/etc/systemd/system/ollama.service的[Service]段落里通过Environment字段写入只写入/etc/profile是不生效的因为systemd进程不会读取shell配置文件。这一条我踩过很深的坑某次把OLLAMA_HOST配置写进了~/.bashrc然后通过systemd启动Ollama结果服务监听的地址还是127.0.0.1排查了大半天才发现systemd启动的进程根本不会触发~/.bashrc。从那之后我在Linux上统一把环境变量配置在systemd service文件里。3. 下载DeepSeek模型在线与离线两条路怎么选Ollama装好了环境变量配好了接下来是拉模型。这一步看起来就是一行命令的事实际上面临一个分叉口能联网的机器怎么拉完全隔离的内网怎么拉。这一章把两条路的完整流程和细节都写出来。3.1 在线下载ollama run与模型命名规则如果你的机器能访问外网直接执行ollama run deepseek-r1:32b这条命令会下载DeepSeek R1的32B量化版模型到本地并自动启动一个交互式对话界面。下载过程中会打印进度条如果卡住不动优先检查2.3节里提到的代理环境变量。这里可以额外提一下社区里的去审查版本模型名是huihui_ai/deepseek-r1-abliterated:32b这是对官方模型做了对齐策略移除的版本输出更放得开。如果只是内网自用不想被模型内置的安全策略过多约束可以考虑用这个ollama run huihui_ai/deepseek-r1-abliterated:32b如果还要做RAG知识库需要下载文本向量化模型二选一即可ollama run bge-m3 # 或者 ollama run nomic-embed-text建议选bge-m3多语言效果更好尤其是中文知识库场景。在线下载看起来省事但模型文件比较大比如32B量化版约20GB左右下载时间长网络中断风险高。这就带出第二条路离线下载。3.2 离线下载U盘搬运GGUF文件的完整流程内网机器与外网物理隔离是很多单位的安全策略要求这种情况下在线下载完全不可行。我的离线流程分四步在一台能联网的机器上用LM Studio下载模型找到模型原始文件拷贝到目标机器然后用Ollama的Modelfile机制导入。第一步在联网机器上安装LM Studio官网lmstudio.ai在软件内置的模型搜索框里搜索你要的DeepSeek模型点下载。不要搜错成GPT系列或Llama系列确认模型标识是DeepSeek相关的再下载。第二步下载完成后到LM Studio的模型缓存目录里找文件。Linux路径通常是~/.lmstudio/models/Windows是%USERPROFILE%/.lmstudio/models/。找到对应的GGUF格式文件文件名类似bge-reranker-v2-m3-FP16.gguf这种确认后缀是.gguf。第三步把整个模型文件夹复制到内网目标机器的Ollama模型目录里拷贝方式可以用U盘或者内网共享文件夹。目标目录是$OLLAMA_MODELS指向的路径通常是~/.ollama/models。第四步是关键Ollama不会自动识别直接丢进目录的GGUF文件必须通过Modelfile描述文件来导入。3.3 模型导入的Modelfile写法与验证在模型文件和GGUF文件所在的相同目录下新建一个名为Modelfile的文本文件内容如下FROM ./nomic-embed-text-v1.5.f16.gguf然后在终端执行ollama create nomic-embed-text-v1.5.f16 -f ./Modelfile ollama list第一条命令把当前目录下Modelfile引用的GGUF文件注册成一个名为nomic-embed-text-v1.5.f16的模型。第二条命令列出所有已注册的模型看到刚创建的名字就说明导入成功。这里有两个常见错误。第一Modelfile里的FROM路径必须是相对于Modelfile所在目录的相对路径写成绝对路径也可以但路径里有空格会报错第二ollama create必须在Modelfile同级目录下执行如果目录不对会报FROM invalid。其他GGUF文件导入逻辑同理把FROM指向自己的文件路径即可。注意离线导入的模型和官方通过ollama pull拉下来的模型在目录组织上不同手动创建的模型在ollama list里显示名称就是你在ollama create时指定的名字不会自动带:latest标签。4. 多客户端集成从桌面工具到Web界面的接入方案模型跑起来了下一步是选择客户端。这一章覆盖四种常用接入方式LM Studio、Chatbox、Cherry-Studio、Lobe Chat外加RAG知识库的搭建推荐。每种客户端本质上都是调用Ollama暴露的HTTP API区别在于交互方式和功能侧重。4.1 LM Studio图形化的Ollama管理工具LM Studio官网lmstudio.ai这个工具最容易给人造成误解——它自身是一个模型管理软件但同时也支持通过API地址连接外部的Ollama服务。当你想用一个图形界面来管理内网多台模型时用LM Studio比较顺手。连接步骤启动Ollama服务 → 打开LM Studio → 进入设置 → 找到Server或Connection选项 → 服务器地址填入http://localhost:11434Ollama不在本机则填Ollama服务器的IP→ 下拉选择模型 → 点击测试连接。测试通过后就能直接聊整个流程不涉及命令行。一个实用技巧LM Studio本身也自带模型下载功能可以把它当作Ollama的图形化下载器。在联网机器上用LM Studio下载好模型再把缓存目录里的GGUF文件按第3章的方式导入到离线机器比命令行下断点续传省心。4.2 Chatbox与Cherry-Studio轻量与功能派的对比Chatbox官网chatboxai.app主打简洁跨平台安装包很小Windows/Linux/macOS都有对应版本。它的配置路径打开Chatbox → 设置 → 找到API或连接选项 → 选Ollama作为API提供商 → 填Ollama地址和端口 → 选模型 → 测试连接。整个过程一分钟内能完成适合给不会用命令行的同事用。Cherry-Studio官网cherry-ai.com的功能明显更重它支持流式输出、Markdown渲染和对话历史管理适合把大模型当成日常生产力工具的人。配置路径和Chatbox类似区别在于模型添加方式在设置 → 模型管理里先选择Ollama作为提供商再把ollama list列出的模型ID完整填进去。如果你的模型列表里有一堆名称后缀相同的模型多半是导入时给不同GGUF文件起了过于相似的名字建议统一命名规范避免搞混。两个工具都支持离线运行只要Ollama服务和模型在同一台内网机器上安装包本身不需要联网。配置时的通病是地址填错很多人把http://localhost:11434写成了https://localhost:11434或者漏掉了端口号。只要记住一个原则——所有客户端填写的都是Ollama的REST API地址这个地址始终形如http://host:port就不会错。4.3 Lobe Chat的Docker部署与RAG知识库搭建推荐Lobe Chat是目前比较推荐的Web界面方案浏览器打开就能用无需在每个客户端装软件。部署方式首选Docker Composegit clone https://github.com/lobehub/lobe-chat.git cd lobe-chat在lobe-chat目录下新建.env文件内容如下OPENAI_API_KEYsk-your-openai-api-key ACCESS_CODEyour-super-secret-password OLLAMA_BASE_URLhttp://your-ollama-host:11434 OLLAMA_API_MODELdeepseek-r1:32b配置关键点有三个OLLAMA_BASE_URL要填Ollama服务器的实际地址如果Lobe Chat和Ollama在同一台机器上就填http://localhost:11434OLLAMA_API_MODEL填ollama list里显示的模型IDACCESS_CODE是访问密码不设的话内网任何人都能打开你的对话界面。配置完成后启动docker-compose up -d浏览器访问http://localhost:3010输入ACCESS_CODE进入界面。在设置 → 语言模型 → 提供商里选Ollama填上Ollama地址和模型名称测试连接通过即可。如果3010端口被占用可以在.env里增加PORTxxxx自定义端口也可以在docker-compose.yml里直接改端口映射。RAG知识库方面推荐用rag-web-uiGitHub搜rag-web-ui它是基于检索增强生成架构的智能问答系统核心能力是把你的私有文档PDF、Word、Markdown、TXT切成块、向量化、存进向量数据库然后基于检索结果生成回答。它支持通过Ollama接入本地DeepSeek模型也支持OpenAI和DeepSeek云端API适合个人和企业搭建知识库问答场景。向量数据库默认支持ChromaDB也支持切换Qdrant通过工厂模式改配置就能切换。前后端分离后端提供OpenAPI接口方便二次集成。5. 内网安全加固与常见问题排查说到这一步很多人的第一反应是内网嘛安全不用太在意。但实际上内网的威胁面并不比外网小端口扫描、横向移动、模型文件篡改都是现实存在的风险。这一章从网络隔离、访问控制、模型安全和数据安全四个维度展开最后附上常见问题排查记录。5.1 网络隔离与Nginx反向代理访问控制网络隔离的核心思想是把模型服务放到独立网段限制不必要的出入流量。建议把所有承载Ollama和客户端的机器放在同一个内网段对外只暴露必要的端口。在防火墙上只放行以下几个端口Ollama服务的11434、Lobe Chat的3010、SSH如果必须管理。其他端口一律拒绝。Ollama本身不支持身份验证意味着只要11434端口对外开放任何能访问该端口的人都能调用你的模型。解决思路是用Nginx做反向代理在代理层加一层Basic Auth认证。Nginx配置示例server { listen 80; server_name your-ollama-server.com; location / { proxy_pass http://localhost:11434; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Basic Authentication auth_basic Restricted Access; auth_basic_user_file /etc/nginx/.htpasswd; } }auth_basic是认证提示信息auth_basic_user_file是存放用户名密码哈希的文件。生成密码文件用系统自带的htpasswd工具htpasswd -c /etc/nginx/.htpasswd ollama_user执行后按提示输入两次密码。之后访问Ollama API时必须在请求头里带上Authorization信息否则返回401。客户端如Chatbox和Cherry-Studio不支持直接填密码需要借助工贝或脚本来添加认证头。更进一步的加固手段不要用默认端口把Nginx监听端口从80改成一个不常用的高位端口如13456降低被扫描到的概率强烈建议再加一层HTTPS用自签证书或内网CA签发的证书均可避免模型请求明文裸奔。提示Basic Auth只是最基础的访问控制如果内网有统一的身份认证体系LDAP或OAuth2应该优先接入配置在Nginx或网关层比给每个服务单独配密码更好管理。5.2 模型安全与系统、数据安全模型文件在离线搬运过程中存在被篡改的风险。项目实践中最有效的检查手段是哈希校验在源机器上计算模型的SHA256哈希值拷贝到目标机器后再算一次对比一致才完成部署。sha256sum /data/ollama/models/xxx/ggml-model-q4_k_m.gguf输出一串64位十六进制字符串如果两次输出的字符串一致说明文件完好不一致说明拷贝损坏或被篡改重新拷贝或重新下载。尽管理论上哈希也可能被伪装但在内网离线场景下这一条已经能防住绝大多数问题。系统安全层面的建议比较常规但很重要保持系统和软件更新、及时打补丁防火墙只开必要端口启用系统日志并定期审查用强密码并定期更换禁用不必要服务有条件可以部署IDS/IPS。数据安全方面要区分处理静态数据用BitLocker或LUKS做磁盘加密传输中的数据上文已提到用HTTPS保护处理敏感信息前做好数据脱敏权限分配遵循最小权限原则普通用户只需要能访问客户端即可不需要访问存储模型文件的服务器定期备份模型和知识库数据防止硬盘故障导致模型白下、知识库白建。Lobe Chat作为对外暴露的Web服务需要额外关照必须用HTTPS通过Nginx配置SSL证书或提交给内网CA签发ACCESS_CODE要设置强密码不要用admin、123456这类弱口令防火墙严格限制3010端口只对内部办公网段开放如果放在反向代理后面建议用子路径部署如https://your-ip/lobe降低被扫描识别的概率。5.3 常见问题排查连接失败、下载失败、服务起不来这一节整理整个部署过程中最常遇到的三个问题按现象、原因、解决的顺序写方便照着排查。问题一Ollama下载模型失败或进度条一直不动。现象是ollama run命令卡住或者报failed to download错误。原因九成是代理设置不对少数是模型源被防火墙拦截。先检查环境变量里有没有正确设置HTTP_PROXY和HTTPS_PROXY没有设置就用export命令手动配置设置后重启Ollama服务再试。如果确定不需要代理但下载失败则检查防火墙是否拦截了对模型存储服务器的HTTPS访问。问题二客户端提示无法连接Ollama。现象是LM Studio或Chatbox测试连接时返回Connection refused或超时。原因标注是四方排查法Ollama服务是否在运行、客户端填写的地址和端口是否正确、防火墙是否放行、是否使用了反向代理且代理配置了额外的认证。Ollama服务运行状态用ollama list确认如果返回正常但客户端连不上基本可以确定是防火墙或代理层的问题。问题三Ollama服务起不来或启动后闪退。现象是执行ollama serve报错退出。先看日志再下结论日志文件通常位于模型目录下的logs/文件夹里Windows系统还会写入事件查看器。常见原因有三种端口被占用默认11434被其他程序占了改端口或杀掉占用程序模型文件损坏导致启动时自动加载失败删除损坏的模型文件重新导入环境变量配置了不存在的模型路径导致启动时找不到目录检查OLLAMA_MODELS指向的路径是否存在并且有权访问。6. 性能调优与最终验证把硬件榨干、把流程跑通模型能跑起来只是开始跑得满不满是另一回事。这一章重点讲三个调优维度最后是一套完整的验收流程。线程数调整是见效最快的一步。Ollama默认使用的CPU线程数不一定是最优值手动指定往往能带来明显提升# Linux/macOS export OLLAMA_NUM_THREAD8 # Windows PowerShell $env:OLLAMA_NUM_THREAD8这个值建议设为本机物理核心数而不是逻辑核心数。我的经验是超线程带来的收益有限用nprocLinux或任务管理器查看实际物理核心数再减2留出系统余量。设置过高会导致线程切换频繁性能反而下降。GPU加速方面确保NVIDIA驱动、CUDA和cuDNN版本匹配。Ollama启动日志里会打印GPU检测信息如果出现no GPU相关字样说明没有调用到显卡优先检查驱动版本和Ollama版本是否过旧。生成参数调节在客户端界面完成三个核心参数的作用分别如下参数作用建议范围Temperature控制随机性值越高文本越多变但也越不稳定0.7 - 0.9Top_p控制候选词多样性值越低回答越集中保守0.9 - 0.95Max Tokens限制单次生成的最大长度按实际场景问答类1024够用长文写作4096整套部署完成后的验证流程我建议按以下顺序走一遍先用ollama list列出所有模型确认目标模型都在列表中再任意选一个客户端发起对话测试模型能否正常流畅生成然后用另一台内网机器访问Lobe Chat的Web界面验证跨机器访问和Access Code认证接着上传一份PDF测试文档到RAG知识库确认文档能解析、能检索、能引用原文作答对已部署哈希校验的模型再算一次SHA256和源值对比最后用htop或nvidia-smi观察模型推理时的资源占用曲线确认CPU和GPU都有实际负载而不只是内存占满。验证环节最常见的现象是本机测试正常换台机器就白屏或连不上。排查思路仍然按第5章的四方排查法走一遍——服务状态、地址端口、防火墙、代理层。不要一上来就重装服务先定位故障层在哪效率高得多。摩尔定律在单机上早已失效大模型的算力需求却还在增长。我见过最稳妥的做法是把Ollama部署在独立的内网网段通过Nginx反向代理统一暴露API服务端做线程和模型参数调优客户端按不同使用者分发不同接入方式——知识库用户走Lobe Chat开发者直接用API轻量使用者用Chatbox。从那以后我每次部署这套环境都会强制走一遍验证清单基本没再出过半夜被人拉起来救火的状况。希望这些踩坑记录对你在内网部署DeepSeek有所帮助少走一段弯路。本文还有配套的精品资源点击获取