ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Ubuntu 22.04 LTS 部署宝塔面板与 OpenClaw 实战指导文档

Ubuntu 22.04 LTS 部署宝塔面板与 OpenClaw 实战指导文档

Ubuntu 22.04 LTS 部署宝塔面板与 OpenClaw 实战指导文档

摘要

本文档针对在 Ubuntu 22.04 LTS 上部署 OpenClaw(开源自托管 AI 助手网关)的两种思路进行深度技术分析与实战指导。思路一为先部署宝塔(BT)面板,再在宝塔环境中部署 OpenClaw;思路二为绕过面板,直接以 Docker Compose 或 systemd 原生方式部署 OpenClaw。经过对 OpenClaw 项目架构、三种安装方式、宝塔面板集成路径、安全加固、迁移与运维的系统性研究,本文档得出结论:对于关注"后续迁移与管理便利性"的场景,思路二(Docker Compose 直接部署 + Nginx 反向代理 + systemd 托管)在迁移效率、停机时间、数据完整性、回滚能力和安全隔离方面具有压倒性优势;思路一则更适合服务器上同时运行多个网站、运维团队习惯图形化管理的场景。文档提供两条路径的完整实战命令、配置文件示例、踩坑解决方案及决策树,可直接作为部署执行参考。


一、背景与项目概览

1.1 OpenClaw 项目简介

OpenClaw(前身为 Clawdbot / Moltbot)是一个开源、自托管的个人 AI 助手网关,采用 MIT 协议,由 Peter Steinberger 主导开发,GitHub 仓库位于https://github.com/openclaw/openclaw。其核心定位是运行在用户自有机器或服务器上的 AI 智能体网关,支持多模型接入(Anthropic Claude、OpenAI GPT、Google Gemini、Kimi、DeepSeek、通义千问、Ollama 本地模型等)、工作流自动化、代码辅助、IM 渠道接入(Telegram、WhatsApp、飞书、钉钉、企业微信等)。截至调研时最新版本约为2026.7.1

1.2 核心架构组件

组件说明默认端口
Gateway核心网关服务,提供控制面板、API 和 Prometheus 指标端点18789
Bridge内部桥接服务(Docker 部署中可映射为 18890)18790
Web UI / Control UIWeb 控制面板,通过http://localhost:18789访问
CLI命令行工具openclaw,入口为dist/index.js
Skills技能插件系统(53个),通过clawhub install安装
Tools系统能力层(25种),包含 read/write/edit/exec/web_search 等
SandboxAgent 沙箱隔离(Docker 容器方式)

1.3 运行时依赖与系统要求

依赖要求
Node.js最低 22.22.3+;支持 24.15+、25.9+、26+(默认推荐 26)
SQLiteNode.js 内置node:sqlite,需 WAL-reset-safe 版本(>3.51.x 或 3.50.7+)
npm≥ 8
Git≥ 2.x
资源最低推荐
CPU2 核4 核+
内存2 GB4-8 GB
磁盘10 GB SSD20-40 GB SSD
OSUbuntu 22.04 LTSUbuntu 22.04 LTS 或 macOS

1.4 安全提示

OpenClaw 仍处于 beta 阶段,其 Tools 层包含exec(Shell 命令执行)等高权限能力。CVE-2026-25253(CVSS 8.8)影响 v2026.1.29 之前版本,存在跨站 WebSocket 劫持漏洞,可导致远程代码执行。部署时务必升级到 ≥ 2026.1.29 版本,该版本已永久移除auth: "none"模式,强制使用 Token 或密码认证。


二、部署前环境准备(通用步骤)

无论选择哪种部署思路,以下基础环境准备工作必须先完成。

2.1 系统更新与基础工具安装

# 更新系统软件源和已安装包sudoaptupdate&&sudoaptupgrade-y# 安装基础依赖工具sudoaptinstall-ycurlwgetgitnet-tools build-essential

2.2 配置 Swap(内存低于 4GB 必做)

OpenClaw 的 npm install 或 Docker 镜像构建过程中可能因内存不足被 OOM Killer 终止(退出码 137),低配服务器必须配置 Swap:

sudofallocate-l4G /swapfilesudochmod600/swapfilesudomkswap/swapfilesudoswapon/swapfileecho'/swapfile none swap sw 0 0'|sudotee-a/etc/fstab

2.3 配置防火墙基线

Ubuntu 22.04 默认使用 ufw 防火墙。部署前先放行 SSH 端口,避免后续操作中误锁自己:

sudoufw allow22/tcpsudoufwenable

后续根据部署思路开放对应端口(详见各方案章节)。

2.4 配置时区与时间同步

sudotimedatectl set-timezone Asia/Shanghaisudoaptinstall-ychronysudosystemctlenablechronysudosystemctl start chrony

三、思路一:先部署宝塔面板,再在宝塔中部署 OpenClaw

3.1 宝塔面板安装

3.1.1 安装命令

Ubuntu 22.04 使用官方推荐的一键安装脚本:

if[-f/usr/bin/curl];thencurl-sSOhttps://download.bt.cn/install/install_panel.sh;elsewget-Oinstall_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bashinstall_panel.sh docscenter

安装过程中提示Do you want to install Bt-Panel to the /www directory now?(y/n)时输入y确认。安装完成后终端会输出面板地址、用户名和密码,务必记录。

3.1.2 安装后关键路径与配置
项目路径/值
面板安装路径/www/server/panel
默认端口8888(建议修改)
站点默认目录/www/wwwroot
Nginx 配置文件/www/server/nginx/conf/nginx.conf
站点 Nginx 配置目录/www/server/panel/vhost/nginx
备份目录/www/backup/site/www/backup/database

查看默认登录信息:bt 14;修改密码:bt 5;修改用户名:bt 6;修改端口:bt 8

3.1.3 宝塔面板安全加固(必做)

宝塔面板默认端口 8888 是高频扫描目标,安装后必须立即加固:

# 修改默认端口(如改为 8881)bt8# 同步放行 ufw 防火墙ufw allow8881/tcp# 删除旧端口规则(如需)ufw delete allow8888/tcp

在面板设置中进一步配置:绑定域名(仅可通过指定域名访问)、开启面板 SSL、开启 BasicAuth 认证、限制授权 IP。

3.2 在宝塔中部署 OpenClaw

宝塔环境下有三条可行路径,按推荐程度排序。

路径 A:宝塔 Docker 管理器 + Docker Compose 部署(推荐)

此路径将宝塔的可视化管理与 Docker 的环境隔离优势结合,是思路一中的最优选择。

第一步:安装 Docker 管理器

登录宝塔面板 → 软件商店 → 搜索"Docker" → 安装"Docker 管理器"。安装后会自动安装 Docker Engine。

第二步:配置镜像加速器(国内必做)

打开 Docker 管理器 → 设置 → 镜像加速,添加阿里云加速地址:https://registry.cn-hangzhou.aliyuncs.com

第三步:准备部署目录与配置

mkdir-p/www/wwwroot/openclaw/data/configmkdir-p/www/wwwroot/openclaw/data/workspacecd/www/wwwroot/openclaw

创建docker-compose.yml

services:openclaw-gateway:image:ghcr.io/openclaw/openclaw:latestcontainer_name:openclaw-gatewayrestart:unless-stoppedenvironment:HOME:/home/nodeTERM:xterm-256colorTZ:Asia/ShanghaiOPENCLAW_GATEWAY_TOKEN:${OPENCLAW_GATEWAY_TOKEN}OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:"false"volumes:-./data/config:/home/node/.openclaw-./data/workspace:/home/node/.openclaw/workspaceports:-"127.0.0.1:18789:18789"init:truecommand:["node","dist/index.js","gateway","--bind","loopback","--port","18789"]cap_drop:-NET_RAW-NET_ADMINsecurity_opt:-no-new-privileges:truehealthcheck:test:["CMD","node","-e","fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]interval:30stimeout:5sretries:5start_period:20sopenclaw-cli:image:ghcr.io/openclaw/openclaw:latestnetwork_mode:"service:openclaw-gateway"environment:HOME:/home/nodeOPENCLAW_GATEWAY_TOKEN:${OPENCLAW_GATEWAY_TOKEN}volumes:-./data/config:/home/node/.openclawstdin_open:truetty:trueinit:trueentrypoint:["node","dist/index.js"
返回列表