在企业离线内网部署 OpenClaw + 大模型(Ollama 方案) ,核心是先在外网准备好所有离线包,再在内网服务器完成安装、配置与对接。下面按 Linux x86_64 服务器 给出完整步骤与所需文件清单(Windows 可参考对应包替换)。
一、先明确:离线部署的核心思路
- 外网准备:下载所有安装包、依赖、模型文件
- 内网传输:用 U 盘/内网文件服务传到离线服务器
- 内网安装:按顺序装基础环境 → Ollama → OpenClaw
- 模型导入:离线导入 GGUF 格式大模型
- 对接配置:OpenClaw 连接本地 Ollama 服务
- 验证与启动:测试模型调用、启动 OpenClaw 面板
二、必须准备的离线安装文件清单(外网下载)
1. 系统基础依赖(必装,解决运行库缺失)
- Linux x86_64
gcc、g++、make、libssl-dev、zlib1g-dev等开发库(离线.rpm/.deb包,按系统发行版准备)- Docker 离线包(推荐容器化,更稳定):
docker-ce、docker-ce-cli、containerd.io(.rpm/.deb)- 或直接下载:
docker-26.1.0.tgz(二进制离线包)
- Windows Server (如用 Windows)
vc_redist.x64.exe(VC++ 2022 运行库)MicrosoftEdgeWebView2Setup.exe(WebView2 运行时)
2. Ollama 离线包(大模型运行引擎)
- 主程序:
ollama-linux-amd64.tgz(Linux)/ollama-windows-amd64.zip(Windows) - 安装脚本:
install.sh(Linux)/install.ps1(Windows) - 模型文件(GGUF 格式,核心) :
- 示例:
qwen2.5:7b-instruct-q4_0.gguf、llama3:8b-instruct-q4_0.gguf、deepseek-r1:7b-q4_0.gguf - 从 魔搭社区 / Hugging Face 下载对应量化版(Q4_0 兼顾速度与效果)
- 配套:
Modelfile(模型配置文件,用于 Ollama 导入)
- 示例:
3. OpenClaw 离线包(AI 客户端/面板)
- 方式一(Docker 镜像,推荐):
openclaw:latest.tar(外网docker save导出)- 基础镜像:
node:22-bookworm.tar(如内网无 Node 镜像)
- 方式二(二进制/源码,纯离线):
openclaw-linux-x64.zip(预编译包)- Node.js 离线包:
node-v22.9.0-linux-x64.tar.xz(OpenClaw 依赖 Node 22+) - npm 依赖包:
node_modules.tar.gz(外网npm install后打包) - 配置文件:
package.json(修复依赖缺失)
4. 其他辅助文件
- 嵌入模型(可选,知识库/检索用):
bge-small-zh-v1.5.tar.gz - 企业知识库文档(TXT/PDF/Markdown,打包):
knowledge-base.tar.gz - 校验文件:各包的
sha256sum校验值(防文件损坏)
三、离线部署完整步骤(Linux x86_64 服务器)
步骤 1:内网服务器环境准备(离线安装基础依赖)
-
上传所有离线包到服务器目录(如
/opt/offline-packages)bashmkdir -p /opt/offline-packages # 用 scp/U盘 拷贝所有文件到该目录 -
安装系统依赖(以 CentOS/RHEL 为例,Debian 换
dpkg -i)bash# 安装开发库 rpm -ivh /opt/offline-packages/*.rpm --nodeps --force # 安装 Docker(二进制方式) tar -zxvf /opt/offline-packages/docker-26.1.0.tgz -C /usr/local/bin/ dockerd & # 启动 Docker 服务 -
验证 Docker
bashdocker info # 正常输出即成功
步骤 2:离线安装 Ollama(大模型运行环境)
-
解压 Ollama 主程序
bashtar -zxvf /opt/offline-packages/ollama-linux-amd64.tgz -C /usr/local/bin/ chmod +x /usr/local/bin/ollama -
启动 Ollama 服务(后台运行)
bashollama serve & # 验证:curl http://localhost:11434 返回 Ollama 版本即成功 -
离线导入大模型(关键)
bash# 1. 新建模型目录 mkdir -p /opt/ollama-models/qwen2.5-7b # 2. 拷贝 GGUF 模型文件到该目录 cp /opt/offline-packages/qwen2.5:7b-instruct-q4_0.gguf /opt/ollama-models/qwen2.5-7b/ # 3. 编写 Modelfile(示例) cat > /opt/ollama-models/qwen2.5-7b/Modelfile << EOF FROM ./qwen2.5:7b-instruct-q4_0.gguf PARAMETER temperature 0.7 PARAMETER stop "<|im_end|>" EOF # 4. Ollama 导入模型 ollama create qwen2.5:7b -f /opt/ollama-models/qwen2.5-7b/Modelfile # 5. 验证模型 ollama list # 显示 qwen2.5:7b 即成功 ollama run qwen2.5:7b "你好" # 能正常回复即模型可用
步骤 3:离线安装 OpenClaw(Docker 方式,推荐)
-
导入 Docker 镜像
bashdocker load -i /opt/offline-packages/node_22_bookworm.tar docker load -i /opt/offline-packages/openclaw_latest.tar -
启动 OpenClaw 容器(映射端口 3000)
bashdocker run -d \ --name openclaw \ -p 3000:3000 \ -v /opt/openclaw-data:/root/.openclaw \ openclaw:latest -
验证 OpenClaw 服务
bashcurl http://localhost:3000 # 返回页面即成功
步骤 4:OpenClaw 对接本地 Ollama(核心配置)
-
进入 OpenClaw 配置界面
bashdocker exec -it openclaw openclaw config edit -
修改模型配置(关键参数)
ini[model] provider = "ollama" baseUrl = "http://宿主机IP:11434" # 不能用 localhost,填服务器内网IP model = "qwen2.5:7b" # 与 Ollama 导入的模型名一致 -
保存退出(
Ctrl+S→Ctrl+Q),重启 OpenClawbashdocker restart openclaw
步骤 5:验证全链路(OpenClaw → Ollama → 大模型)
- 访问 OpenClaw 面板:
http://服务器IP:3000 - 在聊天框发送测试指令:
帮我总结这段文字:xxx - 正常返回结果 → 部署成功
四、常见问题与避坑
- Ollama 无法启动:检查端口 11434 是否被占用,关闭防火墙/SELinux
- OpenClaw 连不上 Ollama :
- 必须用 服务器内网 IP(不是 localhost)
- 检查 Ollama 服务是否正常运行:
ps -ef | grep ollama
- 模型导入失败 :
- 确认 GGUF 模型文件完整,校验
sha256sum - Modelfile 路径正确,FROM 指向本地 GGUF 文件
- 确认 GGUF 模型文件完整,校验
- 依赖缺失 :提前在外网打包所有
.rpm/.deb依赖,避免内网缺包
五、交付物清单(外网下载后打包)
建议将所有文件打包为一个 offline-ai-package.tar.gz,包含:
docker-*.tgz、系统依赖.rpm/.debollama-linux-amd64.tgz、install.sh- 模型文件(
.gguf)+Modelfile openclaw_latest.tar、node_22_bookworm.tar- 嵌入模型、知识库文档
=================================================================================
可直接复制的离线安装一键脚本, Windows 服务器适配说明、高可用部署建议,让你在内网部署更高效、更稳定。
一、离线安装一键脚本(Linux x86_64)
将以下脚本保存为 offline-deploy.sh,上传到内网服务器 /opt/offline-packages/ 目录,修改其中的服务器内网IP 和模型名即可一键执行。
完整脚本(带注释+异常处理)
bash
#!/bin/bash
# OpenClaw + Ollama 离线部署一键脚本
# 适用:Linux x86_64 (CentOS/RHEL/Debian)
# 作者:编程导师
# 日期:2026
# ====================== 配置项(需根据实际修改)======================
SERVER_IP="192.168.1.100" # 服务器内网IP(必填)
MODEL_NAME="qwen2.5:7b" # Ollama 导入的模型名(必填)
PACKAGE_DIR="/opt/offline-packages" # 离线包存放目录
OPENCLAW_PORT=3000 # OpenClaw 访问端口
OLLAMA_PORT=11434 # Ollama 服务端口
# ====================================================================
# 颜色输出函数(方便看日志)
red(){ echo -e "\033[31m$1\033[0m"; }
green(){ echo -e "\033[32m$1\033[0m"; }
yellow(){ echo -e "\033[33m$1\033[0m"; }
# 步骤1:检查目录与文件
green "===== 步骤1:检查离线包目录 ====="
if [ ! -d "$PACKAGE_DIR" ]; then
red "错误:离线包目录 $PACKAGE_DIR 不存在!"
exit 1
fi
# 检查核心文件是否存在
CORE_FILES=("ollama-linux-amd64.tgz" "openclaw_latest.tar" "node_22_bookworm.tar" "$MODEL_NAME.gguf")
for file in "${CORE_FILES[@]}"; do
if [ ! -f "$PACKAGE_DIR/$file" ]; then
red "错误:核心文件 $file 缺失!"
exit 1
fi
done
green "✅ 所有核心文件检查通过"
# 步骤2:安装系统依赖(兼容CentOS/Debian)
green "===== 步骤2:安装系统依赖 ====="
if [ -f /etc/redhat-release ]; then
# CentOS/RHEL
rpm -ivh "$PACKAGE_DIR"/*.rpm --nodeps --force > /dev/null 2>&1
elif [ -f /etc/debian_version ]; then
# Debian/Ubuntu
dpkg -i "$PACKAGE_DIR"/*.deb > /dev/null 2>&1
fi
# 安装Docker(二进制方式)
if ! command -v docker &> /dev/null; then
yellow "正在安装Docker..."
tar -zxvf "$PACKAGE_DIR/docker-26.1.0.tgz" -C /usr/local/bin/ > /dev/null 2>&1
# 启动Docker并设置开机自启
nohup dockerd > /var/log/docker.log 2>&1 &
sleep 5
# 验证Docker
if docker info > /dev/null 2>&1; then
green "✅ Docker安装并启动成功"
else
red "❌ Docker启动失败!"
exit 1
fi
else
green "✅ Docker已安装"
fi
# 步骤3:安装并启动Ollama
green "===== 步骤3:安装Ollama ====="
# 解压Ollama
tar -zxvf "$PACKAGE_DIR/ollama-linux-amd64.tgz" -C /usr/local/bin/ > /dev/null 2>&1
chmod +x /usr/local/bin/ollama
# 启动Ollama服务(后台运行+开机自启)
nohup ollama serve > /var/log/ollama.log 2>&1 &
sleep 5
# 验证Ollama
if curl -s "http://localhost:$OLLAMA_PORT" | grep -q "Ollama"; then
green "✅ Ollama服务启动成功"
else
red "❌ Ollama启动失败!日志:/var/log/ollama.log"
exit 1
fi
# 离线导入大模型
green "===== 步骤4:导入大模型 $MODEL_NAME ====="
mkdir -p "/opt/ollama-models/$MODEL_NAME"
cp "$PACKAGE_DIR/$MODEL_NAME.gguf" "/opt/ollama-models/$MODEL_NAME/"
# 生成Modelfile(通用模板,适配主流模型)
cat > "/opt/ollama-models/$MODEL_NAME/Modelfile" << EOF
FROM ./$MODEL_NAME.gguf
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER max_tokens 2048
PARAMETER stop "<|im_end|>"
PARAMETER stop "</s>"
SYSTEM "你是一个企业级AI助手,回答简洁、专业、准确。"
EOF
# 导入模型
ollama create "$MODEL_NAME" -f "/opt/ollama-models/$MODEL_NAME/Modelfile" > /dev/null 2>&1
# 验证模型
if ollama list | grep -q "$MODEL_NAME"; then
green "✅ 模型 $MODEL_NAME 导入成功"
else
red "❌ 模型导入失败!检查GGUF文件是否完整"
exit 1
fi
# 步骤5:安装并启动OpenClaw
green "===== 步骤5:安装OpenClaw ====="
# 导入Docker镜像
docker load -i "$PACKAGE_DIR/node_22_bookworm.tar" > /dev/null 2>&1
docker load -i "$PACKAGE_DIR/openclaw_latest.tar" > /dev/null 2>&1
# 停止旧容器(如有)
docker stop openclaw > /dev/null 2>&1
docker rm openclaw > /dev/null 2>&1
# 启动OpenClaw容器(映射数据目录+端口)
docker run -d \
--name openclaw \
--restart=always \
-p "$OPENCLAW_PORT:3000" \
-v /opt/openclaw-data:/root/.openclaw \
openclaw:latest > /dev/null 2>&1
sleep 5
# 验证OpenClaw
if curl -s "http://localhost:$OPENCLAW_PORT" | grep -q "OpenClaw"; then
green "✅ OpenClaw启动成功"
else
red "❌ OpenClaw启动失败!日志:docker logs openclaw"
exit 1
fi
# 步骤6:配置OpenClaw对接Ollama
green "===== 步骤6:配置OpenClaw连接Ollama ====="
# 进入容器修改配置
docker exec -i openclaw bash << EOF
cat > /root/.openclaw/config.ini << CONFIG
[model]
provider = "ollama"
baseUrl = "http://$SERVER_IP:$OLLAMA_PORT"
model = "$MODEL_NAME"
[server]
port = 3000
host = "0.0.0.0"
CONFIG
EOF
# 重启OpenClaw使配置生效
docker restart openclaw > /dev/null 2>&1
# 最终验证
green "===== 部署完成!验证全链路 ====="
yellow "1. Ollama服务:http://$SERVER_IP:$OLLAMA_PORT"
yellow "2. OpenClaw面板:http://$SERVER_IP:$OPENCLAW_PORT"
yellow "3. 测试模型调用:curl -X POST http://$SERVER_IP:$OLLAMA_PORT/api/generate -d '{\"model\":\"$MODEL_NAME\",\"prompt\":\"你好\"}'"
green "✅ 所有步骤执行完成!请访问 http://$SERVER_IP:$OPENCLAW_PORT 使用OpenClaw"
脚本使用方法
-
上传脚本到
/opt/offline-packages/:bashchmod +x /opt/offline-packages/offline-deploy.sh -
修改脚本顶部的
SERVER_IP、MODEL_NAME为实际值; -
一键执行:
bash/opt/offline-packages/offline-deploy.sh
二、Windows Server 离线部署适配(补充)
如果内网服务器是 Windows Server,核心步骤替换如下:
1. 准备Windows离线包
- Ollama:
ollama-windows-amd64.zip - OpenClaw:
openclaw-windows-x64.zip - 依赖:
vc_redist.x64.exe、Docker Desktop Installer.exe(离线版)
2. 核心安装命令(批处理脚本)
bat
@echo off
:: Windows离线部署脚本
set SERVER_IP=192.168.1.100
set MODEL_NAME=qwen2.5:7b
:: 安装VC运行库
vc_redist.x64.exe /quiet /norestart
:: 安装Docker Desktop(离线版)
Docker Desktop Installer.exe install --backend=docker-engine --offline-installer
:: 解压并启动Ollama
tar -xf ollama-windows-amd64.zip -C C:\Program Files\Ollama
start "" "C:\Program Files\Ollama\ollama.exe" serve
:: 导入模型
mkdir C:\ollama-models\%MODEL_NAME%
copy %MODEL_NAME%.gguf C:\ollama-models\%MODEL_NAME%\
:: 生成Modelfile(同Linux)
:: 导入模型
ollama create %MODEL_NAME% -f C:\ollama-models\%MODEL_NAME%\Modelfile
:: 启动OpenClaw
tar -xf openclaw-windows-x64.zip -C C:\OpenClaw
start "" C:\OpenClaw\openclaw.exe
三、企业级高可用建议(内网部署必看)
- 服务自启 :
- Linux:将 Ollama/Docker 加入
systemd服务(脚本已加--restart=always); - Windows:将 Ollama/OpenClaw 加入「任务计划程序」,开机自启。
- Linux:将 Ollama/Docker 加入
- 资源限制 :
- 大模型运行需足够内存(7B模型建议 ≥16GB 内存);
- Docker 启动时添加内存限制:
--memory=16g --cpus=4。
- 日志监控 :
- Ollama 日志:
/var/log/ollama.log; - OpenClaw 日志:
docker logs openclaw; - 建议接入企业日志平台(如 ELK)。
- Ollama 日志:
- 模型更新 :
- 外网下载新模型 GGUF 文件 → 内网导入:
ollama create 新模型名 -f Modelfile。
- 外网下载新模型 GGUF 文件 → 内网导入:
- 安全加固 :
- 限制 OpenClaw/Ollama 端口仅对内网开放(防火墙规则);
- 给 OpenClaw 添加登录密码(配置文件中设置
auth = true)。
总结
- 核心文件:需提前在外网下载 Ollama 主程序、GGUF 模型、OpenClaw Docker 镜像、系统依赖包;
- 一键部署 :修改脚本中的服务器 IP 和模型名,执行
offline-deploy.sh即可完成安装; - 关键验证 :部署后通过
http://服务器IP:3000访问 OpenClaw 面板,测试模型对话是否正常。