OpenClaw 目前迭代非常迅速(几乎每两天一个版本),建议定期进行升级,以获取新功能和安全补丁。
本篇总结并规范OpenClaw升级流程,参考以下步骤操作,以确保升级过程平滑、数据不丢失。
https://github.com/openclaw/openclaw
注意:一般升级不会破坏已有配置,但为了万无一失,强烈建议在升级前备份整个工作区!!!
mkdir -p ~/openclaw_backup
cp -r ~/.openclaw ~/openclaw_backup/openclaw-backup-$(date +%Y%m%d)
```bashtar -cjvf ~/openclaw_backup/openclaw-backup-$(date +%Y%m%d).tar.bz2 ~/.openclaw```
```bashls -l ~/openclaw_backup```
```bashopenclaw gateway stop```
# 升级方式一:使用 npm 全局更新到最新版本(低配主机推荐)
```bashnpm i -g openclaw@latest```
说明1:此种方式升级最简单,适合低配的 如:2c2g 的云主机升级;如果安装openclaw的主机配置较高,推荐采用 openclaw update 命令更新
说明2:npm升级方式也适用于升级到中间版本(非最新版本)、回退到原始版本(老版本)
# 升级方式二:使用一键安装脚本升级(备选升级方案)
说明:重新运行官方安装脚本也可以将openclaw升级到最新版
```bashcurl -fsSL https://openclaw.ai/install.sh | bash```
说明:如果其它升级出现中断导致失败,可重新执行一键安装脚本进行重新安装或升级(万能方法)
# 升级方式三:使用 `openclaw update` 命令 (高配主机推荐)
```bashopenclaw update```
注意:低配不建议采用此种方式更新,容易挂(cpu负载过高,更新会卡死,甚至主机都没法用了)
```bashopenclaw update --dry-run```
#非交互式更新:跳过确认提示(适合自动化脚本场景)
```bashopenclaw update --yes```
```bashopenclaw update --no-restart```
```bashopenclaw update wizard```
当不在电脑前时,也可以让AI小助手帮完成更新升级操作,注意要求升级前备份,示例:
```shell你帮我更新openclaw版本,更新前注意备份```
说明:此步有一定风险,AI小助手使用openclaw update进行自动更新,如果升级失败可能导致AI小助手失联(断开链接),建议升级版本间隔小的时候使用。
更改Gateway配置设置自动更新(自动更新默认处于关闭状态)
```json{ "update": { "channel": "stable", "auto": { "enabled": true, "stableDelayHours": 6, "stableJitterHours": 12, "betaCheckIntervalHours": 1 } }}```
stable (默认) 稳定版,推荐生产环境使用beta 测试版,提前体验新功能dev 开发版,最新但可能不稳定
openclaw update --channel betaopenclaw update --channel devopenclaw update --channel stable
新版本可能会对配置文件或数据格式进行调整,运行 openclaw doctor 自动检查和修复问题:
(2)使用 –fix 参数进行修复(说明:没问题则无需执行)
#更新gateway service配置(推荐选择yes)
说明:虽然doctor会尽量保留用户自定义设置,但此步也有一定风险,如果升级版本过大,且有手动修改过服务配置文件且不想被覆盖,可以选择No
#完成检查,提示使用 openclaw doctor –fix 应用更改
tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log
mv ~/.openclaw ~/openclaw_backup/.openclaw_new_bakup-$(date +%Y%m%d)# rm -r ~/.openclaw
npm uninstall -g openclaw
cp -r ~/openclaw_backup/openclaw-backup-20260303 ~/mv ~/openclaw-backup-20260303 ~/.openclaw
npm view openclaw versions
# 全局安装指定版本npm install -g openclaw@<你要安装的版本号># 安装指定历史版本(例如 2026.2.15)npm install -g openclaw@2026.2.15
# 使用 –fix 参数进行修复(说明:没问题则无需执行)
tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log
# 访问 Web UI,发送一条消息测试功能是否正常
问题1:origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)
解决:OpenClaw 升级后,为了加强安全防护,引入了更严格的访问控制策略。新版本不再允许通过非回环地址(即非 127.0.0.1 或 localhost)直接访问控制界面(Control UI),需要显式地在配置文件中声明允许访问的来源(allowedOrigins)
vi ~/.openclaw/openclaw.json
{ "gateway": { // ... 其他配置 "controlUi": { "allowedOrigins": [ "http://localhost:18789", "http://127.0.0.1:18789", "http://局域网IP:18789", "http://公网IP:18789" ] }, "bind": "lan" // 绑定模式 }}
问题2:control ui requires device identity (use HTTPS or localhost secure context)
解决:根据页面提示,如果通过内外网IP且以HTTP方式访问,需要设置 gateway.controlUi.allowInsecureAuth: true (仅限令牌)。
{ "gateway": { // ... 其他配置(如 bind, port 等) "controlUi": { "allowInsecureAuth": true }, "auth": { "mode": "token", "token": "网关token" } }}
openclaw config set gateway.controlUi.allowInsecureAuth true#修改后重启网关openclaw gateway restart
说明:升级到 2026.3.2 发现设置`gateway.controlUi.allowInsecureAuth: true`后问题仍然存在
参考:https://docs.openclaw.ai/web/control-ui#insecure-http
#进一步解决:增加 dangerouslyDisableDeviceAuth: true 配置
openclaw config set gateway.controlUi.dangerouslyDisableDeviceAuth true# 配置后重启openclaw gateway restart