
简介面向内网开发、测试工程师与运维实施人员的OpenClaw小龙虾离线安装包专为解决无公网、外网受限、npm拉取失败与GitHub超时等部署痛点而设计。包内集成核心运行文件与启动器目标主机仅需预装Node.js即可一键完成Windows内网部署实现AI Agent私有化落地尤其适配实验室、演示机、封闭办公网等网络受限环境。资源共2000个文件以1072个js脚本、860个md文档和64个json配置文件为主js承担核心运行逻辑md提供部署与配置说明json用于参数管理整体约270.83MB目录结构清晰便于快速定位所需模块。目前已有848人学习下载内置启动器可自动完成环境检测与安装引导大幅减少内网环境准备成本为后续调试、二次开发与稳定交付提供可靠底座同时承载完整运行依赖可直接作为内网AI工具链的基础运行环境。1. OpenClaw小龙虾离线安装包内网Windows部署前先想清这三件事一台不能上外网的 Windows 机器要跑本地 AI 助手坑全在环境上缺 WSL2 跑不了缺 Node.js 起不来模型几个 GB 拷不进去。OpenClaw 小龙虾离线安装包就是把应用本体、Node 运行时、Ollama 服务和模型权重打包成一份能在内网 Windows 上独立装完的物料集。小龙虾是社区里对 OpenClaw 离线发行版的叫法核心思路是物料齐了再进内网而不是进内网后到处找依赖。OpenClaw 本身是一个可自托管的 AI 助手框架Node.js 写应用层通过 Ollama 接本地大模型完成对话与工具调用支持 skill 技能目录扩展自定义能力。离线包要解决的不只是「双击安装」而是让无外网机器拥有完整可用的运行时链条。这套方案适合内网开发的编程辅助、物理隔离机房的本地问答、离线办公场景的文档处理。动手之前先把三件事想清楚Windows 版本与 WSL2 的匹配关系、模型量化等级与机器内存的匹配、离线物料怎么安全传进内网。这三件事想不清楚后面每一步都在踩坑。2. 准备离线物料四件套下载、校验与内网传输的完整清单2.1 离线包到底要装哪四样东西OpenClaw 在 Windows 内网的运行链路是OpenClaw 应用本体Node.js→ Ollama本地模型服务→ 模型权重GGUF 文件底层再垫一个 WSL2 Linux 兼容层。四部分缺任何一环离线包都算不上「完整版」。物料文件形态在内网机器上的作用注意事项Node.js LTSMSI 安装包运行 OpenClaw 应用本体必须 20.x 及以上18 以下会挂OllamaEXE 安装程序本地模型推理服务默认监听 127.0.0.1:11434OpenClaw 应用源码目录或 npm 包AI 助手本体一定要连 node_modules 一起拷模型权重GGUF 文件对话与工具调用能力按内存选择量化等级WSL2 更新包MSI老版本 Windows 的 Linux 兼容层Win10 2004 已内置可先不带经常有人漏掉 WSL2 更新包结果内网机器装到一半才发现 Windows 10 版本太老wsl --install又需要联网整个部署直接卡死。我的习惯是只要不确定目标机器 Windows 确切版本就把 wsl_update_x64.msi 也塞进物料。它体积很小占不了多少空间关键时刻是后悔药。2.2 在有网机器上准备应用本体clone 加依赖OpenClaw 应用本体在离线环境没法现场下载必须在有网机器上先准备妥当。常见做法有两种git clone 官方仓库后安装生产依赖把整个目录作为物料或者用 npm 把发布包打成 tarball 带走。# 在有网机器上准备 OpenClaw 应用本体 # 方案 Aclone 仓库并安装生产依赖整个目录拷走 git clone OpenClaw官方仓库地址 D:\openclaw-offline\openclaw cd D:\openclaw-offline\openclaw npm install --production # 方案 B从 npm registry 打包成 tarball cd D:\openclaw-offline\store npm pack openclaw对应的npm包名逻辑说明方案 A 适合要二次开发或调整内置 skill 配置的场景缺点是文件数量多拷贝和传输都慢方案 B 拿到的 tarball 体积小但装到内网机器后仍需执行一次npm install --production --offline如果 node_modules 没随包带上内网照样装不了。真正省事的做法是clone 完直接npm install --production然后连 node_modules 一起压缩内网机器上解压即用省掉离线装依赖这一步。参数说明--production跳过 devDependencies能省掉大量构建工具和测试框架的体积。不要在这个阶段跑npm run build之类可能联网拉取二进制依赖的步骤构建过程经常下载平台相关的二进制文件会把物料目录弄脏内网机器上没法复现。2.3 模型权重的两种离线获取方式模型是离线包里体积最大的一块也最容易出问题。常见两种方式一是在有网机器上ollama pull后去缓存目录翻 blob 文件二是直接下载 GGUF 文件配 Modelfile。前者表面省事实际换机器导入时经常翻车。# 方式一有网机器上 ollama pull不推荐直接搬缓存 ollama pull qwen2.5:7b # 模型缓存在 %USERPROFILE%\.ollama\models\ 下 # blob 文件名是哈希值换机器导入容易版本不兼容 # 方式二直接下载 GGUF 文件推荐 # 从模型托管站下载 qwen2.5-7b-instruct-q4_k_m.gguf # 放在 D:\openclaw-offline\models\ 下准备一份 Modelfile# Modelfile 内容就一行关键指令 FROM D:/openclaw-offline/models/qwen2.5-7b-instruct-q4_k_m.gguf逻辑说明方式一的缓存目录结构复杂blob 文件名是哈希跨机器跨 Ollama 版本导入经常失败方式二的 GGUF 是标准格式到内网机器上用ollama create导入可控性强。Modelfile 里的 FROM 路径在 Windows 下写绝对路径分隔符建议统一用正斜杠避免反斜杠转义问题。参数说明量化等级直接决定内网机器的负载。以 7B 模型为例q4_K_M 大约 4.4GB16GB 内存的机器能跑q8_0 接近 8GB建议 32GB 内存再上f16 全精度 14GB 以上离线办公场景没必要。先按 q4_K_M 准备跑通后再换高精度这是大多数内网部署的稳妥节奏。模型选择上qwen 系列、deepseek 蒸馏版都能走这条路关键是 GGUF 文件能在外网提前下好。2.4 内网传输U 盘格式比想象中更关键物料备好之后传进内网看起来是体力活实际上翻车最多的就是这一步。FAT32 格式的 U 盘单文件不能超过 4GB而 7B 模型的 q4_K_M 文件就有 4.4GB直接拷贝会提示「文件过大」。解决方法是把 U 盘格式化成 exFAT 或 NTFS 再拷。# Windows 下把 U 盘格式化为 exFAT数据会清空先确认没有重要内容 format E: /FS:exFAT /Q参数说明/FS:exFAT指定文件系统/Q是快速格式化。exFAT 兼容 Windows 和 macOS设备间交换最省心NTFS 也支持大文件但部分老旧嵌入式设备不认。如果现场只有 FAT32 的 U 盘另一个办法是在有网机器上用分卷压缩把大文件按 4GB 以内切成多个分卷到内网再合并解压。还有一个注意点OpenClaw 应用目录文件数量多且零散直接拖拽拷贝速度慢还容易漏文件。我一般先把整个物料目录压缩成一个 zip拷进内网后解压解压完核对一遍关键文件的哈希值再开始装。这一道工序能省掉后面 80% 的「缺这个缺那个」排查时间属于必须做但没人提的隐性步骤。3. Windows内网安装WSL2、Node.js与Ollama的离线落地3.1 先用 wsl --status 探底OpenClaw 在 Windows 上依赖 WSL2 环境安装顺序上要最先处理它。Node 和 Ollama 的安装不需要 WSL2但 OpenClaw 启动时检测不到 WSL2 会直接退出所以先探底避免装到一半才发现问题。# 管理员 PowerShell 检查 WSL 状态 wsl --status wsl --set-default-version 2逻辑说明wsl --status会显示内核版本和默认 WSL 版本。如果输出里默认版本是 1或者提示「未安装 WSL」就要先处理。wsl --set-default-version 2的作用是把默认版本设为 2OpenClaw 的启动检测读取的正是这个值。如果命令提示需要内核组件说明当前 Windows 10 版本较老需要安装物料里的 wsl_update_x64.msi装完重启。参数说明执行 wsl 命令务必用管理员身份的 PowerShell普通权限下调用 WSL 服务经常返回异常输出导致 OpenClaw 误判环境不可用这就是内网部署时最常见的「无法安全验证 WSL2 环境」报错来源。判断标准很简单命令行里wsl --status能正常输出且默认版本为 2这一步就算过。如果目标是 Windows Server 或精简版系统可能连「虚拟机平台」功能都没启用需要在「启用或关闭 Windows 功能」里勾选「适用于 Linux 的 Windows 子系统」和「虚拟机平台」然后重启。这两个功能在离线状态下也能开启不需要联网下载组件。3.2 静默安装 Node.js 并验证版本Node.js 是 OpenClaw 的直接运行时要求 LTS 20.x 以上。离线安装用 MSI 的静默参数最省事尤其适合多台内网机器批量操作。# 管理员 CMD 或 PowerShell 下静默安装 msiexec /i node-v20.11.1-x64.msi /qn # 安装后验证 node -v npm -v逻辑说明/qn表示无人值守静默安装不弹安装向导。装完必须验证node -v输出版本号是 v20 开头。这里有个细节如果内网机器之前装过老版本 NodeMSI 会走升级逻辑偶尔出现 PATH 环境变量还是指向旧目录的情况。验证时如果显示的版本不对用where node看实际命中的路径必要时手动把新版本路径加到 PATH 最前。参数说明msiexec /i后跟 MSI 文件路径/qn是全静默/qb是只显示进度条。建议用/qn内网部署一般没有人在屏幕前点下一步。静默安装失败时先检查是否有残留旧版 Node 占用安装目录清理干净再装。另外注意系统架构x64 机器装 x64 包ARM 版 Windows 需要单独的 ARM64 安装包物料里要提前备对。3.3 安装 Ollama 并导入模型Ollama 负责加载模型和提供推理接口。离线安装 Ollama 本身不难难的是模型导入。安装完成后先启动服务再用 Modelfile 导入从外网带进来的 GGUF 文件。# 静默安装 Ollama ollama-setup.exe /S # 启动服务默认监听 127.0.0.1:11434 ollama serve # 写 Modelfile 并导入模型 cd D:\openclaw-offline\models echo FROM D:/openclaw-offline/models/qwen2.5-7b-instruct-q4_k_m.gguf Modelfile ollama create qwen2.5 -f Modelfile # 确认模型已就绪 ollama list逻辑说明ollama create根据 Modelfile 里 FROM 指向的本地 GGUF 文件创建模型记录整个过程不访问外网。ollama list能看到模型名和大小如果列表里模型大小和 GGUF 实际大小对不上说明导入出了问题。这里最容易犯的错是 FROM 写成了仓库名比如FROM qwen2.5:7bOllama 会尝试去远端拉取内网环境直接卡死。这条我在实际部署里见过不止一次属于高频翻车点。参数说明ollama create后面的模型名是自定义的OpenClaw 配置里填的就是这个名字。建议命名时带上量化标记比如qwen2.5:q4、qwen2.5:q8方便后续在 OpenClaw 里按精度切换。Ollama 默认只监听本机回环地址OpenClaw 和 Ollama 同机部署就不用改如果是分机部署需要在启动时设置OLLAMA_HOST0.0.0.0:11434再放行 Windows 防火墙入站规则。还有一个 Windows 特有细节ollama serve不要在管理员终端里启动Ollama 会拒绝以提升权限运行报「start the windows daemon from a non-elevated terminal」用普通权限的 PowerShell 启动即可。3.4 解压 OpenClaw 并验证 CLI应用本体从物料 zip 解压后理论上免安装。关键检查点是可执行命令能否从任意目录调用这里涉及 PATH 环境变量。# 解压物料保持原始目录结构 tar -xf openclaw-offline.zip -C D:\ # 如果解压后没有 node_modules需要离线补装依赖 cd D:\openclaw npm install --production --offline # 验证命令行 openclaw --version逻辑说明--offline参数告诉 npm 不要联网只从本地缓存或已有的 node_modules 里解析依赖。如果物料包已经带了 node_modules这一步可以整个跳过。验证openclaw --version时如果提示「不是内部或外部命令」说明 bin 目录没进 PATH。常见做法是把 OpenClaw 的 bin 目录手动加到用户 PATH或者在安装目录内用node bin/openclaw直接调用绕过 PATH 问题。参数说明npm install --production --offline在物料齐全时几秒钟就结束。如果报错说找不到某些包优先检查物料压缩时是否漏掉了 node_modules 里的隐藏目录比如.bin很多压缩工具默认忽略点开头的目录这会导致 npm 的软链命令全部失效。到这里四件套全部落地但 OpenClaw 真正能用还要看配置指向哪里。4. 配置OpenClaw接入本地模型Skill目录、环境变量与内网验证4.1 主配置里把模型指向 OllamaOpenClaw 默认配置可能指向云端模型服务内网环境必须改为本地 Ollama。配置文件常见形态是 YAML 或 JSON核心是 provider、base_url 和 model_name 三个字段。# openclaw 主配置文件 config.yaml model: provider: ollama base_url: http://127.0.0.1:11434 model_name: qwen2.5 temperature: 0.4 timeout: 120逻辑说明provider: ollama告诉 OpenClaw 走本地 Ollama 协议而不是外部模型 APIbase_url指向 Ollama 监听地址model_name必须和ollama list里显示的完全一致大小写、冒号都不能差。这个配置写错是最多的坑模型名多打个冒号比如qwen2.5:OpenClaw 启动时照样能起但一发起对话就报 model not found。参数说明temperature在工具调用场景建议 0.2 到 0.4太高会让模型在解析 skill 参数时自由发挥导致调用格式错误timeout设 120 秒内网机器没有外网延迟但模型推理在 CPU 机器上可能很慢超时设太短会频繁中断长任务。改完配置后重启 openclaw 进程再测试不要用旧进程验证配置文件不会热加载。4.2 Skill 目录结构与离线加载检查OpenClaw 的 skill 机制是它区别于普通对话助手的核心也是离线包「完整版」的重要拼图。每个 skill 是一个独立目录包含 manifest 描述文件和实现脚本。离线环境下 skill 必须随物料一起带进来运行时不能下载所以物料准备阶段就要把需要的 skill 全部放好。D:\openclaw\skills\ ├── code-review\ │ ├── manifest.json │ └── run.js └── daily-report\ ├── manifest.json └── run.py{ name: code-review, description: 对指定代码目录做本地静态审查并输出报告, entry: run.js, models: [qwen2.5] }逻辑说明结构上第一层是 skill 集合目录第二层是单个 skill。manifest.json 里entry指向实现脚本models标注该 skill 需要哪个模型OpenClaw 加载时会做匹配。检查 skill 是否被正确加载用openclaw skill list查看状态。如果某个 skill 显示 failed多半是 manifest 格式问题或 entry 路径不对去日志里搜 skill 名称定位。参数说明skill 目录路径在 Windows 下建议全用正斜杠manifest 里写entry: run.js表示相对当前 skill 目录写跨级路径时正斜杠和反斜杠混用会导致解析失败。skill 目录名不要带空格和中文OpenClaw 的路径转义处理在 Windows 上不够健壮这个细节在下一章展开。另外skill 实现脚本和具体模型解耦qwen、deepseek 蒸馏版都能跑同一套 skill只要 manifest 里的 models 字段匹配上即可。4.3 拔掉外网再验证这才是真正的内网可用很多部署「看起来成功」是因为机器实际上有外网OpenClaw 悄悄走了云端能力。验证内网可用性的唯一可靠方法是断掉外网再跑完整链路。物理隔离环境直接测能上外网的环境就把网线拔了再测测完再插回去。# 1. 确认 Ollama 服务存活 curl http://127.0.0.1:11434/api/tags # 2. 确认模型已导入 ollama list # 3. 跑一次真实对话 ollama run qwen2.5 用一句话介绍你自己 # 4. 用 OpenClaw 调 skill openclaw run code-review --target D:\test-code逻辑说明第一步curl /api/tags验证 Ollama HTTP 接口可访问返回 JSON 里能看到模型列表就说明服务正常第二步确认要用的模型在列表里第三步直接通过 Ollama 发一次对话确认模型本身能推理第四步是最终验证让 OpenClaw 完整走一遍 skill 调用链路。四步全过才称得上这个离线安装包「内网可用」。参数说明如果 curl 通了但 openclaw run 报连接拒绝检查 OpenClaw 进程是不是以不同用户启动的。Windows 上服务账户和当前用户的环境变量不一致会导致 base_url 里的 localhost 解析异常。另外ollama run首次对话会把模型加载进内存内网机器内存不足时会出现进程被杀或响应中断部署前看一眼任务管理器确认内存余量。5. 内网部署高频踩坑五个排查记录5.1 「无法安全验证 WSL2 环境」直接退出现象OpenClaw 启动时报「无法安全验证 WSL2 环境请在 PowerShell 中运行 wsl --status」随后进程退出。原因OpenClaw 启动检测调用wsl --status读取 WSL 配置但当前终端不是管理员权限或者 Windows 的 WSL 服务处于停止状态命令输出异常OpenClaw 判定环境不可用。解决用管理员身份打开 PowerShell先执行wsl --status确认默认版本为 2如果显示默认版本 1执行wsl --set-default-version 2如果提示缺少内核组件安装物料里的 wsl_update_x64.msi 并重启。重启后再验证一次最后启动 openclaw。这个坑的隐蔽之处在于装完 WSL2 不重启服务状态不会更新检测照样失败属于最容易忽略的一步。5.2 模型导入成功但对话卡死现象ollama create执行成功ollama list也能看到模型但第一次ollama run长时间卡在加载环节CPU 占用却不高。原因Modelfile 里 FROM 路径写错成了远端仓库名Ollama 在后台尝试连接模型仓库拉取内网无外网导致一直重试另一种情况是 GGUF 文件在 U 盘传输时损坏模型加载时校验不过去。解决检查 Modelfile 的 FROM 必须是本地文件绝对路径用ollama rm删掉错误的模型记录后重新 create对比 GGUF 文件在源机器和本地的哈希值确认一致再导入。哈希不一致时重新传输不要心存侥幸继续用损坏的模型文件即使加载成功推理结果也是乱的。5.3 Node 版本太低导致依赖安装一直失败现象OpenClaw 解压后执行npm install --production --offline报各种语法错误或模块版本冲突。原因内网机器原来装过 Node 14 甚至更早版本OpenClaw 依赖里用到了新语法老版本 Node 解析不了。离线包自带的 Node 没覆盖掉旧版本PATH 里先命中的还是旧 Node。解决安装离线包自带的 Node 20 LTS 后手动检查where node确认 PATH 里第一个 node 是 v20必要时卸载旧 Node或者修改 PATH 环境变量把新路径提到最前。这个坑在内网机器上格外常见因为老版本 Node 是之前别的项目装的没人敢随便动但不动它 OpenClaw 就永远起不来。5.4 Skill 加载失败路径分隔符和中文目录现象openclaw skill list显示某个 skill 状态为 failed日志里提示路径解析错误。原因manifest 里写了反斜杠路径或者 skill 目录放在带中文、空格、特殊字符的路径下OpenClaw 在 Windows 上的路径规范化处理不够健壮。解决manifest 和配置文件里的路径统一用正斜杠skill 目录只允许字母、数字、连字符整个 OpenClaw 安装目录也不要放在桌面或中文用户名目录下比如C:\Users\张三\这种路径建议直接放D:\openclaw这类纯 ASCII 路径。这个限制在 Linux 上不存在所以从外网 Linux 开发机上拷贝 skill 过来时最容易踩拷之前先检查路径。5.5 证书报错内网机器系统时间漂移现象OpenClaw 或 Ollama 启动时报 HTTPS 证书校验错误curl 访问任何 HTTPS 地址都报 SSL 错误但访问 HTTP 正常。原因内网机器长期离线系统时间漂移严重比如慢了几个月TLS 证书的有效期校验失败。OpenClaw 即使走本地 Ollama控制面的一些资源校验也会发起 HTTPS 请求证书一失败就全盘报错。解决用管理员 PowerShell 执行Set-Date 2025-01-15 10:30:00手动校正时间或者在内网架一台 NTP 时间服务器做定时同步。校正后重启 OpenClaw 再测。注意时间校准后要重新跑一遍第 4 章的验证步骤确认证书错误消失且模型链路正常再进入交付阶段。6. 全链路健康检查脚本收尾阶段必做的一步部署完成不代表交付完成。我习惯在每个内网 OpenClaw 部署的最后留下一份一键健康检查脚本让后续维护的人不用对着黑匣子猜问题。# health-check.ps1 - OpenClaw 内网部署健康检查 $ErrorActionPreference Continue Write-Host [1/4] WSL2 状态 -ForegroundColor Cyan wsl --status 21 | Select-String Default Version Write-Host [2/4] Node 版本 -ForegroundColor Cyan node -v Write-Host [3/4] Ollama 服务与模型 -ForegroundColor Cyan try { $tags Invoke-RestMethod http://127.0.0.1:11434/api/tags $tags.models | ForEach-Object { Write-Host $_.name } } catch { Write-Host Ollama 连接失败 -ForegroundColor Red } Write-Host [4/4] OpenClaw 与 Skill -ForegroundColor Cyan openclaw doctor逻辑说明脚本分四段对应运行时链条的四层哪一段失败一眼就能定位到问题层。21把 wsl 的错误输出也接进来避免检测脚本本身误判Invoke-RestMethod请求 Ollama 的 /api/tags能返回模型列表说明服务和模型都正常最后的openclaw doctor是 OpenClaw 自带的诊断命令汇总模型连通性、skill 加载情况和配置校验结果。脚本之外有两个值得做的进阶配置。一是把 Ollama 注册为开机自启避免内网机器重启后模型服务没起来在启动文件夹放一个ollama serve的快捷方式最省事也可以用sc create ollama binPath 完整路径\ollama.exe serve start auto注册成服务二是给 OpenClaw 的配置文件单独留一份带注释的备份内网机器通常没有文档沉淀习惯配置文件里的注释就是唯一的部署说明。最后说一句教训我早期给内网机器部署 OpenClaw 时总在模型导入环节翻车后来固定成「先拷 GGUF、校验哈希、再 ollama create」的节奏再没出过问题。路径分隔符、系统时间这些看起来像玄学的报错本质上都是没按顺序验证导致的。部署完多花五分钟跑一遍健康检查脚本比事后排查两小时划算得多。希望帮到你。本文还有配套的精品资源点击获取