OpenClaw VPS 部署教程:安全安装、常驻运行与备份
OpenClaw 是可自托管的个人 AI 助手。VPS 能让它常驻运行,但权限和密钥仍要自己管理。部署前先确认谁能向 Agent 发送内容,以及它可以访问主机上的哪些资源。
一个可信操作者的信任边界只运行一个 Gateway。互不信任的用户应使用独立 Gateway,并尽量拆到不同系统用户或主机。
这套配置让 Gateway 在 VPS 上常驻,并把控制台留在本机访问。微信、飞书和 QQ 的设置在 OpenClaw 消息平台接入教程。
这种部署适合谁
| 场景 | 建议 |
|---|---|
| 自己通过手机使用个人助手 | 可以放在专用 VPS |
| 同一团队共享一个业务 Agent | 仅限成员处在同一信任边界,并限制工具权限 |
| 为互不信任的客户提供服务 | 不共享 Gateway;分别隔离账户、凭据和运行环境 |
| 主要操作本机文件或桌面应用 | 本地运行或配对受控节点通常更直接 |
聊天入口不是普通客服表单。OpenClaw 能调用文件、网络和命令工具时,获准发消息的人也可能间接影响这些资源。
准备服务器和恢复入口
先完成 Linux VPS 初始安全配置,再确认普通用户、SSH 密钥、主机防火墙和服务商控制台都可用。API Key、平台密钥和备份不能进入公开仓库。
已有 OpenClaw 时,先记录现状:
openclaw --version
openclaw gateway status --deep --json
openclaw security audit --json
再用当前服务用户创建并验证备份:
mkdir -p ~/Backups/openclaw
openclaw backup create --output ~/Backups/openclaw --verify
备份可能包含模型认证、会话、聊天平台凭据和工作区。把归档加密复制到 VPS 之外;只存在原服务器上的备份,无法应对整机故障。
用专用用户安装
全新实例可以创建一个 openclaw 用户:
sudo adduser openclaw
sudo -iu openclaw
不要顺手把它加入所有管理组。sudo、Docker socket、宿主机文件和 SSH 私钥都会扩大 Agent 的影响范围。已有实例若要更换服务用户,应先设计状态迁移和回滚。
下载后再执行安装器
远程安装脚本会变化。下面先把脚本下载到临时文件,查看内容并记录本次摘要,再决定是否执行:
OPENCLAW_INSTALLER=$(mktemp)
trap 'rm -f "$OPENCLAW_INSTALLER"' EXIT
curl --proto '=https' --tlsv1.2 --fail --show-error --location \
https://openclaw.ai/install.sh \
--output "$OPENCLAW_INSTALLER"
sha256sum "$OPENCLAW_INSTALLER"
less "$OPENCLAW_INSTALLER"
bash "$OPENCLAW_INSTALLER" --no-onboard
rm -f "$OPENCLAW_INSTALLER"
trap - EXIT
自己算出的 SHA-256 可以留下安装记录,但不能替代上游签名。域名、脚本内容或执行用户有一项不符合预期,就先停下来。
重新登录专用用户会话后检查运行时:
node --version
openclaw --version
openclaw doctor
完成引导并让 Gateway 常驻
用官方引导配置模型、工作区和服务:
openclaw onboard --install-daemon
模型密钥应写入 OpenClaw 支持的凭据位置或权限受限的环境文件,不要粘进聊天、命令示例或公开截图。
完成后检查:
openclaw gateway status --deep --json
openclaw doctor --lint --json
Linux 引导通常安装 systemd 用户服务。确认服务属于 openclaw 用户且路径正确后,再由管理员允许它在 SSH 退出后继续运行:
sudo loginctl enable-linger openclaw
退出并重新登录,再验证服务没有依赖旧会话:
systemctl --user status openclaw-gateway.service
openclaw gateway status --deep --json
控制台只监听本机
Gateway 控制台应绑定 loopback,通过 SSH 隧道或受控 Tailnet 访问。不要为了省事把它改成 0.0.0.0。
openclaw config get gateway.bind
ss -lnt '( sport = :18789 )'
在自己的电脑建立 SSH 隧道。这里使用已经验证过的登录账号和真实端口,不假设 openclaw 服务用户可以远程登录:
read -r -p '已验证 SSH 用户: ' VPS_SSH_USER
read -r -p '服务器 IP 或主机名: ' VPS_HOST
read -r -p '实际 SSH 端口: ' VPS_SSH_PORT
test -n "$VPS_SSH_USER" && test -n "$VPS_HOST" || exit 1
case "$VPS_SSH_PORT" in ''|*[!0-9]*) exit 1 ;; esac
ssh -N -p "$VPS_SSH_PORT" \
-L 18789:127.0.0.1:18789 \
"${VPS_SSH_USER}@${VPS_HOST}"
随后只在本机浏览器打开 http://127.0.0.1:18789/。即使控制台配置了 token 或密码,也不应直接暴露到公网。
接入消息平台
部署稳定后再添加消息入口,不要把安装、模型、Gateway 和平台权限问题一次叠在一起。
- 微信、飞书、QQ 的插件与 allowlist:OpenClaw 消息平台接入教程
- 每次改频道或插件后:
openclaw security audit --deep - 默认使用 pairing 或 allowlist,不用
open掩盖身份配置问题
Gateway 会直接执行插件代码,插件可以接触相应配置和环境。只安装可信来源的插件,并尽量固定已经核对的版本。
做行为级验收
openclaw gateway status --deep --json
openclaw plugins list --json
openclaw channels status --probe
openclaw security audit --deep
至少验证四件事:允许的账号能得到最小回复;未授权账号不能触发模型和工具;未批准的群不能触发 Agent;SSH 隧道关闭后,公网不能访问控制台。
日志里不应有循环重启、持续认证失败或意外公网监听。提供排障日志前,先删掉 token、App Secret、用户标识、消息正文和内部路径。
备份后再升级
升级前重新创建一份可验证备份,并复制到 VPS 之外:
openclaw backup create --output ~/Backups/openclaw --verify
openclaw update --dry-run
openclaw update
升级完成后,重新检查 Gateway、插件、频道和真实消息。Updater 返回成功,只说明更新命令结束,不代表 Agent 已恢复服务。
需要回退代码时,先查已发布版本并明确选择已知可用版本:
npm view openclaw versions --json
read -r -p '已知可用版本: ' KNOWN_GOOD_VERSION
test -n "$KNOWN_GOOD_VERSION" || exit 1
openclaw update --tag "$KNOWN_GOOD_VERSION" --dry-run
openclaw update --tag "$KNOWN_GOOD_VERSION"
只有旧代码无法读取新状态时才考虑恢复归档。先用官方恢复器写入新的临时位置,不要把备份直接覆盖正在运行的 ~/.openclaw:
read -r -p '验证归档路径: ' BACKUP_ARCHIVE
test -f "$BACKUP_ARCHIVE" || exit 1
RESTORE_STAGE=$(mktemp -d "$HOME/openclaw-restore.XXXXXX") || exit 1
openclaw backup restore "$BACKUP_ARCHIVE" --target "$RESTORE_STAGE"
服务边界
iVPSer 提供 VPS、基础资源和控制台入口。OpenClaw、模型账户、插件、消息平台审核、密钥、备份与 Agent 执行结果由使用者管理。
实例规格、库存和价格以实时控制台为准。先按真实频道、工具和浏览器任务选择,再根据监控调整,不照搬教程中的固定内存数字。