内网部署DeepSeek全攻略:Ollama实战与安全加固 简介一份围绕DeepSeek内网部署的实战指南适合具备IT基础、需要在内部网络落地大模型的研究员、开发者与企业技术人员。资源以PDF形式单独呈现约2.52MB轻量易读便于按主题查阅。内容从软硬件前置条件入手明确推荐RTX 3090以上GPU、显存至少24GB与内存64GB起步并给出Ollama在Windows、Linux、macOS上的安装步骤和环境变量配置要点再对比Lmstudio、Chatbox、Cherry-Studio、Lobe Chat等主流客户端的集成方式与适用场景同时结合离线与在线两种模型下载方案说明RAG知识库的搭建路径。安全加固部分重点覆盖网络隔离、访问控制、模型防污染与数据保护机制并延伸至Web客户端特别关照、持续监控更新、性能调优和故障排除有助于金融、医疗等敏感行业在确保私密性的前提下快速完成私有化大模型服务交付。已有309人学习下载对需要兼顾安全与效率的企业技术团队具有实用参考价值。1. 内网部署 DeepSeek 为什么绕不开 Ollama硬件底线与整体架构把 DeepSeek 部署进内网第一反应是下载模型直接跑但真正卡住你的往往不是模型参数而是 Ollama 这个运行时怎么配、客户端怎么连、模型怎么防篡改。这套实战方案围绕 Ollama 展开模型下载、环境变量、LM Studio 等多客户端接入、RAG 知识库搭建再到网络隔离与访问控制每一步都有可复现的命令。适合企业研发、金融医疗等敏感场景的技术人员也适合只有一块 24GB 显存显卡的个人开发者——先量化硬件底线再决定是跑 32B 还是更小模型。我的血泪经验是内网部署最贵的不是硬件是你折腾到凌晨两点的精力。2. 部署前的硬件与软件准备显存内存与驱动的量化门槛2.1 硬件选型显存、内存、存储的底线先说结论想在内网流畅跑 DeepSeek 系列模型NVIDIA RTX 3090 是最低可接受的门槛显存至少 24GB。这不是玄学是模型权重和 KV Cache 算出来的。我一开始用 2080Ti 试跑 32B 模型加载后生成一个 token 要等好几秒多轮对话直接卡死后来换了 3090 才正常。内存方面官方建议至少 64GB我建议直接上 128GB。很多人只盯着显存忽略了内存Ollama 加载模型、处理上下文、RAG 分块向量化都会吃内存。当并发对话上来或者把文档库切得很碎内存占用轻松破 64GB。存储至少留出 100GB 可用空间模型文件本身约 20GB 到 40GB加上 Docker 镜像、客户端、日志和知识库文件100GB 是最低值。还有一个容易忽略的点如果跑 RAG文本向量模型的推理也吃资源。bge-m3 这类向量模型虽然不大但检索时要对全部文档做向量化CPU 会被占满。如果机器有富余可以把向量模型和主模型分别部署避免互相抢显存。内网部署不是装个软件那么简单先量化好资源再动手。2.2 软件栈驱动、Docker 与 Node 的取舍软件部分最优先的是显卡驱动必须最新。很多奇怪的 CUDA 错误、模型加载失败到最后都是驱动版本太老。装完 Ollama 后可以用nvidia-smi看驱动和 CUDA 版本同时确认 Ollama 启动日志里有没有提示 GPU 可用。Docker 是可选但强烈推荐尤其后面部署 Lobe Chat 和 RAG Web UI 时Compose 一键拉起比手动装依赖省心太多。如果你打算用 Docker提前装好 Docker Desktop 或 Docker Engine Compose。另一个可选组件是 Node.js 18 和 pnpm这是手动部署 Lobe Chat 用的。除非你需要改前端代码否则不建议走手动部署因为构建时间很长而且版本依赖容易翻车。软件栈我一般控制在最小集合显卡驱动 Ollama Docker Compose 一个测试客户端。剩下的按需加。别一上来装一堆内网环境排查问题时要少几个变量。2.3 兼容性检测与自检清单在真正安装之前可以用兼容性检测工具确认机器能不能跑目标模型。输入里提到的兼容性检测页会把显存、内存和模型大小做匹配给出“能跑 / 不能跑 / 需要量化”的结论。我建议把它当先行确认而不是装完 Ollama 才后悔。我的自检清单是这样的显存是否大于等于目标模型所需32B 全精度大约需要 64GB但 4bit 量化后可压到 20GB 左右驱动是否最新nvidia-smi能正常输出内存是否至少 64GB虚拟内存是否开启自动管理磁盘剩余空间是否大于 100GB防火墙是否允许后续要用到的端口11434、3010 等如果是离线内网是否准备好模型文件的离线导入路径把这几项过一遍比直接跑安装命令更能避免浪费半天时间。3. Ollama 安装与模型下载在线离线两条路与环境变量细节3.1 三平台安装与验证Ollama 的 Windows 安装很简单去官网下载安装包双击一路“下一步”。装完打开 PowerShell 或 CMD运行ollama --version能看到版本号就证明安装成功。Windows 下我遇到过一种情况安装后 ollama 命令找不到原因是安装时没把 Ollama 加入系统 PATH。重装或手动添加环境变量即可。Linux 和 macOS 几乎是同一行命令curl -fsSL https://ollama.com/install.sh | shmacOS 也可以用 Homebrewbrew install ollama验证同样用ollama --version。Linux 下如果要以服务方式运行安装脚本会自动注册 systemd 服务若你是手动下载二进制就需要自己写 systemd unit 或直接用ollama serve。macOS 的 Homebrew 版本会把服务注册好一般不需要额外操作。这里有个细节Windows 上 Ollama 默认开机自启Linux 上则不一定。内网生产环境我建议用 systemd 管理 Ollama这样可以设置开机重启和依赖顺序。3.2 OLLAMA_HOST 与代理环境变量内网联通的命门安装完的默认状态Ollama 只监听本机回环地址。如果想让内网其他机器访问必须设置 OLLAMA_HOST。Windows PowerShell 下$env:OLLAMA_HOST0.0.0.0:11434Linux/macOSexport OLLAMA_HOST0.0.0.0:11434注意0.0.0.0表示监听所有网卡而不是只监听本机。设置后要重启 Ollama 服务否则不生效。内网防火墙需要放行 11434 端口云服务器安全组也要同步放行。内网环境最隐蔽的坑是代理。如果部署机需要走代理才能访问外网而 Ollama 要下载模型必须设置 HTTP_PROXY 和 HTTPS_PROXYexport HTTP_PROXYhttp://your-proxy-server:port export HTTPS_PROXYhttp://your-proxy-server:portWindows PowerShell 用$env:前缀设置。我在这里翻过车只设了 HTTPS_PROXY没设 HTTP_PROXY导致 Ollama 拉取模型 registry 时部分请求走直连超时挂掉。两个都要设并且代理地址要能被 Ollama 服务账户访问。如果代理需要认证格式是http://user:passhost:port。3.3 下载 DeepSeek 模型在线 pull 与离线 gguf 导入在线下载最简单直接执行ollama run deepseek-r1:32b这个命令会先 pull 模型然后进入交互式对话。不想进对话只想下载可以用ollama pull。RAG 场景需要文本向量模型推荐二选一ollama run bge-m3 ollama run nomic-embed-text这里bge-m3是多语言向量模型中文知识库效果更好nomic-embed-text更轻量显存紧张时选它。两个都装也没问题客户端里按场景切换。离线下载是内网部署的核心场景。做法是在有外网的机器上用 LM Studio 下载模型得到 gguf 文件然后把整个文件夹拷到内网机器的 Ollama 模型目录。具体导入步骤# 在模型文件所在目录新建 Modelfile 文本文件 # 内容FROM ./nomic-embed-text-v1.5.f16.gguf # 执行 create 命令 ollama create nomic-embed-text-v1.5.f16 -f ./Modelfile这段命令的逻辑是FROM指定本地 gguf 文件路径ollama create会把该文件注册成 Ollama 可识别的模型标签。完成后用ollama list查看就能看到导入成功的模型其他 gguf 模型同理。路径必须是相对 Modelfile 的路径或绝对路径不要写错。如果 Modelfile 和 gguf 不在同一目录FROM 要写完整路径。离线导入时要注意文件完整性。拷贝过程中 U 盘或共享文件夹可能丢文件导入前先对比 hash。我一般用sha256sum在源机器和目标机器各算一遍一致再 create。3.4 向量模型选择bge-m3 和 nomic-embed-text 的 RAG 用途做 RAG 知识库向量模型决定检索质量。bge-m3 支持 100 多种语言中文语义理解明显更强适合企业文档里有大量中文的场景nomic-embed-text 是纯英文生态更通用如果你知识库全英文或者追求轻量可以选它。在 Ollama 里向量模型和对话模型建议分开下载不要混用。检索时文档被切成 chunk每个 chunk 通过向量模型转成 embedding然后存进向量数据库。对话时用户问题同样转成 embedding在向量库里找最相似的片段再把片段拼进上下文送给对话模型。所以向量模型的输出维度、上下文长度会直接影响检索配置。选 bge-m3 时RAG 工具的 embedding 维度要配成 1024选 nomic-embed-text 则是 768。维度配错检索结果会全乱。这是黑匣子最容易出错的地方。4. 多客户端集成与 RAG 知识库从桌面到 Web 的接入实测4.1 LM Studio 图形化接入LM Studio 虽然名字像独立运行时但它能直接连接 Ollama。下载安装对应系统的版本Linux 下需要先给 AppImage 加执行权限chmod x LM-Studio-0.3.9-6-x64.AppImage ./LM-Studio-0.3.9-6-x64.AppImage启动 Ollama 后打开 LM Studio进入设置找到 Server 或 Connection填http://localhost:11434。如果 Ollama 在另一台机器就填那台机器的 IP比如http://192.168.1.10:11434。填完测试连接模型列表里能看到已下载的 DeepSeek 模型选中即可对话。这里有个小坑LM Studio 自己也会尝试加载本地模型如果它启动时检测到本地有模型会优先用自己的推理后端而不是 Ollama。要确保在设置里明确选择 Ollama Provider不要混用。另外 LM Studio 的端口默认不是 11434如果你的 Ollama 改了端口这里也要同步改。4.2 Chatbox 和 Cherry Studio 配置Chatbox 和新锐的 Cherry Studio 都是桌面客户端配置逻辑一致。Chatbox 进设置找 API 或连接选 Ollama填地址和端口选模型测试。Cherry Studio 则在设置里选择“Ollama”作为提供商填入http://localhost:11434。Cherry Studio 添加模型时需要手动输入模型 ID。最稳的方式是先执行ollama listollama list拿到模型 ID比如deepseek-r1:32b然后填到客户端的模型名称里。不要凭记忆输入标签容易因大小写或版本后缀对不上而报错。这两款都支持流式输出和 Markdown 渲染。如果你的内网机器没装桌面环境Chatbox 也有 Web 版但不如 Lobe Chat 完整。我一般用 Cherry Studio 做日常调试因为它的参数面板更细可以直接调 Temperature、Top_p 和 Max Tokens方便后面做性能验证。4.3 Lobe Chat Docker 部署与 .env 参数Lobe Chat 是 Web 界面浏览器访问最适合团队共用。建议用 Docker Compose 部署省心。先获取项目代码git clone https://github.com/lobehub/lobe-chat.git cd 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-coder:33b这里有个设计Lobe Chat 本身以 OpenAI 兼容协议转发请求所以需要OPENAI_API_KEY占位实际走 Ollama 时这个 key 可以随便填但不能为空。ACCESS_CODE是访问密码必须设置否则内网任何人都能打开对话界面OLLAMA_BASE_URL填 Ollama 服务器地址同机就填http://localhost:11434跨机器填 IPOLLAMA_API_MODEL填模型 ID注意我写在示例里是 deepseek-coder:33b但如果你只下了 deepseek-r1:32b要改成实际 ID。启动docker-compose up -d启动后浏览器访问http://localhost:3010按提示输入 ACCESS_CODE。然后用管理员设置添加 Ollama 提供商填入 Base URL 和模型名测试连接。Lobe Chat 还支持子路径部署配合 Nginx 反向代理可以做到https://your-domain/chat这种形式便于和公司现有统一入口集成。4.4 RAG Web UI 搭建知识库个人或企业知识库我推荐基于 RAG 的 Web UI。它本身是一个智能对话系统前端对话、后端检索分离。支持 PDF、DOCX、Markdown、Text 格式文档自动分块和向量化还支持异步、增量处理对话时检索相关片段并带引用角标能直接点开原文。后端向量数据库支持 ChromaDB 和 Qdrant通过工厂模式可以切换。部署时你需要准备两个模型一个对话模型DeepSeek一个 embedding 模型bge-m3 或 nomic-embed-text。然后在 RAG Web UI 的配置里指定 Ollama 地址和两个模型名。文档上传后系统会先做分块分块大小和重叠度一般默认可以但中文文档建议把 chunk size 调整为 512 左右重叠 50 到 100检索效果更稳。向量化完成后即可开始问答。这里要提醒RAG 的效果并不完全取决于模型分块策略和向量库配置往往更重要。如果回答经常引用无关内容先把分块调小再加一句“只根据上下文回答”的系统提示通常会改善很多。5. 安全加固与常见问题排查内网模型别裸奔5.1 网络隔离把 Ollama 关进独立网段内网不等于安全。第一道防线是网络隔离把 Ollama 和客户端服务器放在单独网段严格限制对 11434 端口的访问。别把 Ollama 直接暴露在公司核心办公网更不要暴露到公网。防火墙只允许信任 IP 访问其他一律 drop。我见过一个案例有人为了图方便把 Ollama 监听 0.0.0.0 后没做防火墙规则结果内网一个扫描脚本直接调用了它的 API虽然没造成损失但日志里全是异常请求。网络隔离没有后悔药落地时先关端口再开白名单。5.2 访问控制Nginx 反代加 Basic AuthOllama 本身不提供身份认证但可以通过 Nginx 反代加 Basic Auth。配置段如下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; auth_basic Restricted Access; auth_basic_user_file /etc/nginx/.htpasswd; } }auth_basic弹用户名密码框auth_basic_user_file指向 htpasswd 生成的密码文件。用htpasswd -c /etc/nginx/.htpasswd username创建。这个配置只是基础生产环境还要加 HTTPS 和 SSL 证书别用 HTTP 裸奔。另外别用默认端口。把 Ollama 监听端口从 11434 改成不常用的端口比如 31434客户端配置同步改。这不能防住恶意攻击但可以阻止大量自动化扫描的低级尝试。5.3 模型安全哈希校验与可信来源模型文件也可能被污染。只从可信来源下载比如 Ollama 官方库或知名开发者账号。下载后检查完整性sha256sum /path/to/your/model/file把计算结果和来源提供的官方哈希对比。如果一致说明文件没被篡改。我每次离线导入 gguf 前都会这么做虽然麻烦点但比部署一个被植入后门的模型可靠得多。另外模型文件的目录权限要收紧只允许运行 Ollama 的用户和运维账号读取其他用户一律 deny。5.4 数据安全加密、脱敏、备份与最小权限如果模型要处理敏感数据静态数据和传输中的数据都要加密。磁盘加密可以用 BitLocker 或 LUKS传输加密用 HTTPS。数据脱敏是重点把身份证号、手机号、企业内部编号在入库前替换掉避免模型上下文里带出真实信息。最小权限原则每个用户只给需要的权限不让普通用户直接访问 Ollama 服务器的文件系统。备份同样重要。模型文件、知识库向量库、配置文件都要定期备份。RAG 的向量库如果不备份文档重新向量化会非常耗时。我把备份脚本挂了 cron每天增量备份向量库每周全量备份模型文件。5.5 Lobe Chat 的特别加固Web 端是暴露面最大的。Lobe Chat 的.env里必须设置强密码ACCESS_CODE不要用默认值。默认端口 3010 要限制访问结合 Nginx 反代只允许公司 IP 段访问。如果部署在公网必须上 HTTPS否则对话内容明文传输跟裸奔没区别。建议用子路径部署比如https://your-domain/lobe-chat/这样既统一管理也能避免直接暴露根路径。5.6 常见问题连接失败、下载失败、加载慢的排查把最常见的几个问题放在一起每条都是现象 - 原因 - 解决。问题一客户端连不上 Ollama。现象是测试连接超时。原因通常是三选一Ollama 没启动、地址端口填错、防火墙没放行。解决先确认ollama serve在跑再在客户端所在机器上curl http://ollama-ip:11434看是否有响应最后查防火墙。问题二Ollama 下载模型失败。现象是 pull 到一半中断或超时。原因多半是代理环境变量没设对或者内外网链路不稳。解决检查HTTP_PROXY和HTTPS_PROXY是否设置并重启 Ollama如果网络实在不稳定切换到离线导入方式。问题三模型加载失败或生成速度极慢。现象是调用模型报错或首 token 延迟几十秒。原因显存不足触发 CPU 回退或者 CUDA 版本不匹配。解决用nvidia-smi看显存占用确认 Ollama 是否真正用上 GPU查看 Ollama 启动日志确认 CUDA 初始化无报错。问题四RAG 检索结果不准。现象是回答里经常出现无关内容。原因分块大小不合适或 embedding 模型维度配错。解决调整 chunk size 和 overlap确认向量库配置的 embedding 维度与模型一致。问题五Lobe Chat 提示模型不存在。现象是配置后测试连接报 404。原因.env里的OLLAMA_API_MODEL写成了不存在的标签。解决执行ollama list把实际模型 ID 填进去。这些坑我都踩过尤其是代理和防火墙最容易浪费半天时间。排查时先链路后配置别一上来就重装 Ollama。6. 性能调优与生成参数验证榨干硬件最后一步部署完成后可以从三个方向验证性能线程数、GPU 加速、生成参数。Ollama 默认线程数不一定最优。如果 CPU 核心多可以设置export OLLAMA_NUM_THREAD8然后重启 Ollama。这个值不是越大越好超过物理核心数反而上下文切换开销高。我一般根据 CPU 型号物理核心减 2 作为初始值再观察负载调整。GPU 加速确认很关键。启动 Ollama 后看日志里有没有类似gpu的关键字同时执行nvidia-smi查看显存占用率是否上升。如果模型在 CPU 上跑显存占用几乎不变那是驱动或 CUDA 版本出了问题需要升级驱动。客户端生成参数直接影响输出质量。Temperature 控制随机性我个人通常设置在 0.7 到 0.9 之间Top_p 控制多样性一般用 0.9 或 0.95Max Tokens 限制生成长度。没有绝对最优我习惯用固定三个问题做回归问一个定义题、一个计算题、一个代码题分别调参看输出的连贯性和稳定性。从那次部署之后我每次上线新客户端都会强制走一遍“连接测试 - 模型 ID 核对 - 防火墙检查 - 生成参数记录”。没有这套动作内网模型很容易在你最需要它的时候翻车。希望这套从 Ollama 到安全加固的流程能帮到你。本文还有配套的精品资源点击获取