跳转至

Daytona

在 Daytona 云沙箱中运行一个持久的 OpenClaw Gateway:这是一个隔离的 Linux 环境,支持 SSH 访问,并内置预览 URL,无需管理 VPS。OpenClaw 已预装在 daytona-medium 快照中,因此通过 SSH 连接后即可立即开始配置。

将 Gateway 保持在 loopback 上,并通过 Daytona 的签名预览 URL 访问仪表盘。不要将 Gateway 端口直接暴露到公共互联网。

准备工作

安装 Daytona CLI

brew install daytonaio/cli/daytona
powershell -Command "irm https://get.daytona.io/windows | iex"

验证安装:

daytona --version

较旧的 CLI 版本缺少新的沙箱命令;请保持其为最新版本(例如 brew upgrade daytonaio/cli/daytona)。

身份验证

daytona login --api-key=YOUR_API_KEY

创建沙箱

daytona sandbox create --name openclaw --snapshot daytona-medium --auto-stop 0
标志 原因
--snapshot daytona-medium 提供足够的内存余量来运行 Gateway
--auto-stop 0 保持沙箱持续运行,直到手动停止

通过 SSH 连接

daytona ssh openclaw

运行 onboarding

在沙箱内,通过一条命令配置 OpenClaw:

openclaw onboard --non-interactive --accept-risk \
  --anthropic-api-key YOUR_ANTHROPIC_KEY \
  --skip-daemon --skip-channels --skip-skills --skip-hooks --skip-health

--skip-daemon 很重要:Daytona 沙箱不运行服务管理器,因此你需要在下面手动启动 Gateway。将密钥标志替换为你所用提供商的对应标志(--openai-api-key、--openrouter-api-key 等);openclaw onboard --help 会列出全部标志。此处会跳过 channels、skills 和 hooks,留待之后配置。

不带标志运行 openclaw onboard 会启动一个对话式设置助手,并且需要交互式终端;openclaw onboard --classic 则运行旧版的逐步向导。

Onboarding 会配置一个 gateway 身份验证令牌。随时在沙箱的交互式终端中打印它:

openclaw gateway auth-token --show

当 stdout 不是交互式终端时,该命令会拒绝打印令牌,因此无法通过管道或命令替换来捕获它。

openclaw config get gateway.auth.token 返回的是 __OPENCLAW_REDACTED__ 而不是实际值,因为 CLI 会在输出中屏蔽机密信息。

允许预览 URL 来源

Gateway 只接受来自允许来源的浏览器连接,而 Daytona 的预览代理位于其前面。在启动 Gateway 之前,请将两者都配置好。

在本地终端(而非沙箱 SSH 会话)中,为 Gateway 端口生成一个签名预览 URL:

daytona preview-url openclaw --port 18789

复制它打印出的 URL。回到沙箱 SSH 会话,允许该来源并信任沙箱内的预览代理,将示例 URL 替换为你自己的:

openclaw config set gateway.controlUi.allowedOrigins '["PASTE_YOUR_PREVIEW_URL"]'
openclaw config set gateway.trustedProxies '["127.0.0.1"]'

请严格按照打印结果粘贴 URL:仅包含协议和主机,不带末尾斜杠,也不带路径。Gateway 会逐字比较浏览器来源,而浏览器发送的是 https://host,没有末尾斜杠,因此 https://host/ 无法匹配,连接会被拒绝。浏览器地址栏通常会显示末尾斜杠,所以请从终端复制。

启动 Gateway

nohup openclaw gateway run > /tmp/gateway.log 2>&1 &

Gateway 在后台运行,并且不会因 SSH 断开而终止。验证它是否已启动:

openclaw gateway health

该命令会报告 Gateway 的状态,因此 OK 表示你可以继续。

稍后(在配置更改或更新之后)需要重启 Gateway 时:

pkill -f "openclaw gateway" || true
nohup openclaw gateway run > /tmp/gateway.log 2>&1 &

打开仪表盘

在浏览器中打开之前生成的预览 URL。Control UI 会在首次连接时要求输入 gateway 令牌;粘贴你在 onboarding 后打印出的值。

批准你的设备

首次浏览器连接会进入一个设备配对请求队列。回到你的沙箱 SSH 会话:

# List pending requests and copy the request id
openclaw devices list

# Approve it
openclaw devices approve REQUEST_ID

安全性

Gateway 的访问受三层保护:

层 描述
预览 URL 限时签名 URL(1 小时后过期)
Gateway 令牌 通过 Control UI 连接时所必需
设备批准 每个新浏览器或客户端都必须获得明确批准

请将你的 gateway 令牌和预览 URL 保密。Gateway 始终保持绑定到 loopback;由 Daytona 的预览代理处理外部访问。

渠道设置

默认情况下,未知发送者需要经过配对批准;参见 配对。

Telegram

使用 @BotFather(/newbot)创建一个机器人,复制令牌,然后在沙箱 SSH 会话中配置 OpenClaw:

export TELEGRAM_BOT_TOKEN="<bot-token>"
openclaw channels add --channel telegram --use-env

还要将 TELEGRAM_BOT_TOKEN=<bot-token> 存储到 ~/.openclaw/.env 中,这样后台 Gateway 会在重启后读取到它。--use-env 会验证令牌,而不会将其复制到 openclaw.json 中。

重启 Gateway(见上文),给你的机器人发送一条私信,然后批准它报告的配对代码:

```bash
openclaw pairing list telegram
openclaw pairing approve telegram PAIRING_CODE

配对码一小时后过期。完整参考:Telegram。

WhatsApp

WhatsApp 作为独立插件提供,因此请先安装并启用它:

openclaw plugins install clawhub:@openclaw/whatsapp
openclaw plugins enable whatsapp

安装并不会启用插件,因此 enable 步骤是必需的;否则 Gateway 会将该渠道报告为已配置但不受信任。如果在未安装的情况下运行下面的登录命令,系统会提示你改为从 ClawHub 或 npm 下载插件。

然后通过沙箱 SSH 会话扫描二维码来关联账户:

openclaw channels login --channel whatsapp

在手机上:设置 → 已链接设备 → 链接设备,然后扫描终端中显示的二维码。关联后重启 Gateway,然后在 WhatsApp 上给自己发一条消息,OpenClaw 会在该聊天中回复。

无需配对审批:未配置允许列表时,默认允许已关联账户自己的号码。配对适用于未知发送者,这就是为什么 Telegram 需要配对而自我聊天不需要。允许列表、个人号码模式以及自我聊天的详细信息:WhatsApp。

更新

快照的全局 npm 树归 root 所有,因此直接运行 openclaw update 无法写入。请在沙箱 SSH 会话中使用以下命令更新:

下面的命令适用于 npm 12 或 npm 11.16+。在 npm 11.15 及更早版本上,请省略 --allow-scripts=openclaw。

sudo env "PATH=$PATH" npm install --global openclaw@latest --allow-scripts=openclaw
openclaw doctor

openclaw doctor 会在更新后迁移任何旧配置。之后请重启 Gateway(见上文)。

停止和恢复沙箱

# Stop
daytona sandbox stop openclaw

# Resume
daytona sandbox start openclaw

沙箱状态在停止/启动周期中会持久保留,但 Gateway 进程不会自动启动。恢复后,请重新连接并再次启动:

daytona ssh openclaw
nohup openclaw gateway run > /tmp/gateway.log 2>&1 &

故障排除

沙箱重启后 Gateway 未运行

Gateway 进程无法在沙箱重启后继续运行。请使用 daytona ssh openclaw 重新连接,并用上面的 nohup 命令再次启动。

预览 URL 已过期

预览 URL 有时间限制(默认 3600 秒)。请从本地终端重新生成,可选择更长的过期时间:

daytona preview-url openclaw --port 18789 --expires 86400

每个生成的 URL 都有不同的主机,因此它是一个新的源。重新生成后,用新的 URL 更新 gateway.controlUi.allowedOrigins 并重启 Gateway,否则控制 UI 会被拒绝并提示 origin not allowed。

沙箱自动停止

如果沙箱创建时没有使用 --auto-stop 0,它会在空闲时自动停止。使用 daytona sandbox start openclaw 恢复它。

无法访问 Gateway 端口

请确认 Gateway 正在运行并监听端口:

openclaw gateway health
tail -20 /tmp/gateway.log

如果你更改了 Gateway 端口,请将相同的端口传递给 daytona preview-url。

备注

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw