迁移场景
随着使用规模的增长或基础设施调整,你可能需要将OpenClaw从一台服务器迁移到另一台。常见的迁移场景包括:从低配服务器升级到高配服务器、从一个云服务商切换到另一个、从本地开发机迁移到生产服务器、或者从VPS迁移到专用主机。
无论哪种场景,迁移的核心目标都是:确保配置完整转移、连接不中断、数据不丢失。本文将提供一套系统化的迁移流程。
迁移前准备
了解数据结构
OpenClaw的所有关键数据都集中在~/.openclaw/目录中。这个目录包含:
openclaw.json:主配置文件,包含AI模型设置、聊天平台凭证等data/:运行时数据和消息记录logs/:日志文件(可选迁移)
检查当前环境
在旧服务器上记录关键环境信息:
openclaw --version
node --version
cat ~/.openclaw/openclaw.json | head -5
记下OpenClaw版本号和Node.js版本,确保新服务器上安装相同或更高版本。
在新服务器上准备环境
在迁移之前,先在新服务器上完成基础环境搭建:
- 安装Node.js 22+(不要使用Bun)
- 安装OpenClaw
# 安装Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# 安装OpenClaw
npm install -g openclaw@latest
验证安装:
node --version
openclaw --version
备份旧服务器数据
停止OpenClaw服务
在备份之前,先停止运行中的OpenClaw服务,确保数据一致性:
# 如果使用systemd
sudo systemctl stop openclaw
# 如果手动运行
# 找到进程并终止
pkill -f "openclaw start"
打包配置目录
将整个~/.openclaw目录打包:
tar czf openclaw-backup-$(date +%Y%m%d).tar.gz -C ~ .openclaw
记录服务配置
如果你配置了systemd服务,也需要备份服务文件:
cp /etc/systemd/system/openclaw.service ~/openclaw-service-backup.service
如果配置了Nginx反向代理,同样备份:
sudo cp /etc/nginx/sites-available/openclaw ~/openclaw-nginx-backup.conf
传输数据到新服务器
使用scp或rsync将备份文件传输到新服务器:
使用scp
scp openclaw-backup-*.tar.gz user@新服务器IP:~/
scp openclaw-service-backup.service user@新服务器IP:~/
使用rsync(推荐,支持断点续传)
rsync -avz --progress openclaw-backup-*.tar.gz user@新服务器IP:~/
如果两台服务器之间网络不通,可以先下载到本地再上传,或者使用中转存储(如对象存储)。
在新服务器上恢复数据
解压配置目录
cd ~
tar xzf openclaw-backup-*.tar.gz
这会将.openclaw目录恢复到新服务器的用户主目录下。
验证配置文件
检查配置文件是否完整恢复:
ls -la ~/.openclaw/
cat ~/.openclaw/openclaw.json
确认配置文件中的AI模型密钥、聊天平台凭证等信息完整无误。
检查路径兼容性
如果新旧服务器的用户名不同,可能需要更新配置文件中的路径引用。打开~/.openclaw/openclaw.json检查是否有硬编码的路径需要修改。
配置新服务器的服务
配置systemd服务
在新服务器上创建systemd服务文件。你可以基于备份的服务文件修改:
sudo nano /etc/systemd/system/openclaw.service
确保更新以下字段以匹配新服务器的环境:
User和Group:新服务器的用户名ExecStart:OpenClaw可执行文件的正确路径WorkingDirectory和Environment中的HOME路径
sudo systemctl daemon-reload
sudo systemctl enable openclaw
配置反向代理(如需要)
如果旧服务器使用了Nginx反向代理,在新服务器上也进行相应配置:
sudo apt install -y nginx certbot python3-certbot-nginx
sudo nano /etc/nginx/sites-available/openclaw
配置内容可以参考之前备份的文件。如果域名指向也要迁移,需要同步更新DNS记录。
启动并验证
启动OpenClaw服务
sudo systemctl start openclaw
运行诊断检查
openclaw doctor
仔细检查每一项诊断结果,确保:
- Node.js版本满足22+要求
- 配置文件加载正确
- AI模型API连接正常
- 各聊天平台连接状态正常
检查管理面板
openclaw dashboard
通过浏览器访问新服务器的管理面板,确认所有功能正常工作。
DNS和域名迁移
如果你为OpenClaw配置了自定义域名,需要更新DNS记录指向新服务器的IP地址。
建议的步骤:
- 先降低DNS TTL值(例如设为60秒),等待旧TTL过期
- 确认新服务器一切正常后,更新DNS A记录指向新IP
- 等待DNS传播完成(通常几分钟到几小时)
- 确认域名解析到新服务器后,再关闭旧服务器
处理SSL证书
如果使用Let's Encrypt证书,在新服务器上重新申请即可:
sudo certbot --nginx -d openclaw.yourdomain.com
验证聊天平台连接
迁移后最重要的一步是验证所有聊天平台的连接是否正常:
- WhatsApp:检查WebSocket连接状态,可能需要重新扫码认证
- Telegram:Bot Token不受服务器变更影响,但需要更新Webhook URL
- Discord:同样需要确认Webhook和Bot连接正常
如果某个平台的Webhook URL中包含旧服务器的域名或IP,需要在对应平台的开发者控制台中更新。
旧服务器收尾
确认新服务器完全正常运行后:
- 在旧服务器上停止OpenClaw服务
- 保留旧服务器的备份数据至少7天
- 取消旧服务器的开机自启设置
- 确认没有流量到达旧服务器后,可以安全关闭
# 旧服务器上执行
sudo systemctl stop openclaw
sudo systemctl disable openclaw
迁移检查清单
总结一下完整的迁移检查清单:
- 新服务器Node.js 22+已安装
- OpenClaw已安装且版本匹配
- 配置目录
~/.openclaw/已完整恢复 - systemd服务已配置并启用
openclaw doctor所有检查通过- 管理面板可正常访问
- 所有聊天平台连接正常
- Webhook URL已更新
- DNS记录已更新(如适用)
- SSL证书已配置(如适用)
- 旧服务器已安全停用
总结
服务器迁移虽然步骤较多,但只要遵循系统化的流程,就能确保OpenClaw的平稳过渡。关键在于:完整备份~/.openclaw/配置目录、在新环境中验证所有连接、以及在确认一切正常后再关闭旧服务器。通过本指南的检查清单,你可以放心地将OpenClaw迁移到任何新的服务器环境中。