在企业的离线内网环境的服务器部署openclaw和大模型

在企业离线内网部署 OpenClaw + 大模型(Ollama 方案) ,核心是先在外网准备好所有离线包,再在内网服务器完成安装、配置与对接。下面按 Linux x86_64 服务器 给出完整步骤与所需文件清单(Windows 可参考对应包替换)。


一、先明确:离线部署的核心思路

  1. 外网准备:下载所有安装包、依赖、模型文件
  2. 内网传输:用 U 盘/内网文件服务传到离线服务器
  3. 内网安装:按顺序装基础环境 → Ollama → OpenClaw
  4. 模型导入:离线导入 GGUF 格式大模型
  5. 对接配置:OpenClaw 连接本地 Ollama 服务
  6. 验证与启动:测试模型调用、启动 OpenClaw 面板

二、必须准备的离线安装文件清单(外网下载)

1. 系统基础依赖(必装,解决运行库缺失)

  • Linux x86_64
    • gccg++makelibssl-devzlib1g-dev 等开发库(离线 .rpm/.deb 包,按系统发行版准备)
    • Docker 离线包(推荐容器化,更稳定):
      • docker-cedocker-ce-clicontainerd.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.ggufllama3:8b-instruct-q4_0.ggufdeepseek-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:内网服务器环境准备(离线安装基础依赖)

  1. 上传所有离线包到服务器目录(如 /opt/offline-packages

    bash 复制代码
    mkdir -p /opt/offline-packages
    # 用 scp/U盘 拷贝所有文件到该目录
  2. 安装系统依赖(以 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 服务
  3. 验证 Docker

    bash 复制代码
    docker info  # 正常输出即成功

步骤 2:离线安装 Ollama(大模型运行环境)

  1. 解压 Ollama 主程序

    bash 复制代码
    tar -zxvf /opt/offline-packages/ollama-linux-amd64.tgz -C /usr/local/bin/
    chmod +x /usr/local/bin/ollama
  2. 启动 Ollama 服务(后台运行)

    bash 复制代码
    ollama serve &
    # 验证:curl http://localhost:11434  返回 Ollama 版本即成功
  3. 离线导入大模型(关键)

    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 方式,推荐)

  1. 导入 Docker 镜像

    bash 复制代码
    docker load -i /opt/offline-packages/node_22_bookworm.tar
    docker load -i /opt/offline-packages/openclaw_latest.tar
  2. 启动 OpenClaw 容器(映射端口 3000)

    bash 复制代码
    docker run -d \
      --name openclaw \
      -p 3000:3000 \
      -v /opt/openclaw-data:/root/.openclaw \
      openclaw:latest
  3. 验证 OpenClaw 服务

    bash 复制代码
    curl http://localhost:3000  # 返回页面即成功

步骤 4:OpenClaw 对接本地 Ollama(核心配置)

  1. 进入 OpenClaw 配置界面

    bash 复制代码
    docker exec -it openclaw openclaw config edit
  2. 修改模型配置(关键参数)

    ini 复制代码
    [model]
    provider = "ollama"
    baseUrl = "http://宿主机IP:11434"  # 不能用 localhost,填服务器内网IP
    model = "qwen2.5:7b"  # 与 Ollama 导入的模型名一致
  3. 保存退出(Ctrl+SCtrl+Q),重启 OpenClaw

    bash 复制代码
    docker restart openclaw

步骤 5:验证全链路(OpenClaw → Ollama → 大模型)

  1. 访问 OpenClaw 面板:http://服务器IP:3000
  2. 在聊天框发送测试指令:帮我总结这段文字:xxx
  3. 正常返回结果 → 部署成功

四、常见问题与避坑

  1. Ollama 无法启动:检查端口 11434 是否被占用,关闭防火墙/SELinux
  2. OpenClaw 连不上 Ollama
    • 必须用 服务器内网 IP(不是 localhost)
    • 检查 Ollama 服务是否正常运行:ps -ef | grep ollama
  3. 模型导入失败
    • 确认 GGUF 模型文件完整,校验 sha256sum
    • Modelfile 路径正确,FROM 指向本地 GGUF 文件
  4. 依赖缺失 :提前在外网打包所有 .rpm/.deb 依赖,避免内网缺包

五、交付物清单(外网下载后打包)

建议将所有文件打包为一个 offline-ai-package.tar.gz,包含:

  • docker-*.tgz、系统依赖 .rpm/.deb
  • ollama-linux-amd64.tgzinstall.sh
  • 模型文件(.gguf)+ Modelfile
  • openclaw_latest.tarnode_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"

脚本使用方法

  1. 上传脚本到 /opt/offline-packages/

    bash 复制代码
    chmod +x /opt/offline-packages/offline-deploy.sh
  2. 修改脚本顶部的 SERVER_IPMODEL_NAME 为实际值;

  3. 一键执行:

    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.exeDocker 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

三、企业级高可用建议(内网部署必看)

  1. 服务自启
    • Linux:将 Ollama/Docker 加入 systemd 服务(脚本已加 --restart=always);
    • Windows:将 Ollama/OpenClaw 加入「任务计划程序」,开机自启。
  2. 资源限制
    • 大模型运行需足够内存(7B模型建议 ≥16GB 内存);
    • Docker 启动时添加内存限制:--memory=16g --cpus=4
  3. 日志监控
    • Ollama 日志:/var/log/ollama.log
    • OpenClaw 日志:docker logs openclaw
    • 建议接入企业日志平台(如 ELK)。
  4. 模型更新
    • 外网下载新模型 GGUF 文件 → 内网导入:ollama create 新模型名 -f Modelfile
  5. 安全加固
    • 限制 OpenClaw/Ollama 端口仅对内网开放(防火墙规则);
    • 给 OpenClaw 添加登录密码(配置文件中设置 auth = true)。

总结

  1. 核心文件:需提前在外网下载 Ollama 主程序、GGUF 模型、OpenClaw Docker 镜像、系统依赖包;
  2. 一键部署 :修改脚本中的服务器 IP 和模型名,执行 offline-deploy.sh 即可完成安装;
  3. 关键验证 :部署后通过 http://服务器IP:3000 访问 OpenClaw 面板,测试模型对话是否正常。
相关推荐
天赐学c语言2 小时前
Linux - 应用层自定义协议与序列/反序列化
linux·服务器·网络·c++
hzhsec2 小时前
MSF-CobaltStrike实现内网socks代理转发上线
服务器·网络·安全·网络安全
脆皮的饭桶3 小时前
结合使用,实现IPVS的高可用性、利用VRRP Script 实现全能高可用
运维·服务器·网络
王琦03184 小时前
第三章 linux文件类型和根目录结构
linux·运维·服务器
minji...4 小时前
Linux 文件系统 (三) 软连接和硬链接
linux·运维·服务器·c++·算法
源远流长jerry5 小时前
DPDK 内存管理深度解析:从大页到 Mbuf 的完整链路
linux·服务器·网络
leaves falling5 小时前
有效的字母异位词
java·服务器·前端
新手88606 小时前
Oracle VirtualBox虚拟机安装 和 安装 window11版本虚拟机 及 启用EFI和硬盘无法使用 问题
服务器·windows·计算机网络·安全·虚拟机
ALex_zry7 小时前
Docker Compose 配置文件完全指南:从基础到生产级安全实践
服务器·安全·docker