Oracle Cloud
在 Oracle Cloud 的 Always Free ARM 层级上以零成本运行持久化的 OpenClaw Gateway(最高 4 OCPU、24 GB RAM、200 GB 存储)。
先决条件¶
- Oracle Cloud 账户(注册)——如果遇到问题,请参阅社区注册指南
- Tailscale 账户(免费注册:tailscale.com)
- 一对 SSH 密钥
- 约 30 分钟
设置¶
1. 创建 OCI 实例
1. 登录 [Oracle Cloud Console](https://cloud.oracle.com/)。
2. 导航到 **Compute > Instances > Create Instance**。
3. 配置:
- **名称:** `openclaw`
- **映像:** Ubuntu 24.04 (aarch64)
- **形状:** `VM.Standard.A1.Flex`(Ampere ARM)
- **OCPU:** 2(或最多 4)
- **内存:** 12 GB(或最多 24 GB)
- **引导卷:** 50 GB(最多 200 GB 免费)
- **SSH 密钥:** 添加你的公钥
4. 点击 **Create**,并记下公网 IP 地址。
Tip
如果实例创建失败并提示 "Out of capacity",请尝试其他可用性域或稍后重试。免费层级容量有限。
2. 连接并更新系统
ssh ubuntu@YOUR_PUBLIC_IP
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential
某些依赖项在 ARM 上编译时需要 build-essential。
3. 配置用户与主机名
启用 linger 后,用户服务会在注销后继续运行。
4. 安装 Tailscale
从现在开始,通过 Tailscale 连接:ssh ubuntu@openclaw。
5. 安装 OpenClaw
当安装程序提示孵化 agent 时,先跳过——下面的网关配置步骤会先配置主机。
6. 配置网关
使用 Tailscale Serve 的令牌认证来实现安全的远程访问。
openclaw config set gateway.bind loopback
openclaw config set gateway.auth.mode token
openclaw doctor --generate-gateway-token
openclaw config set gateway.tailscale.mode serve
openclaw config set gateway.trustedProxies '["127.0.0.1"]'
openclaw gateway install
systemctl --user restart openclaw-gateway.service
这里的 gateway.trustedProxies=["127.0.0.1"] 仅用于本地 Tailscale Serve 代理的转发 IP/本地客户端处理。它不是 gateway.auth.mode: "trusted-proxy"。在此配置下,Diff 查看器路由会保持默认拒绝(fail-closed)行为:没有转发代理头部的原始 127.0.0.1 查看器请求会返回 Diff not found。对于附件,请使用 mode=file / mode=both;如果你需要可分享的查看器链接,请有意启用远程查看器并设置 plugins.entries.diffs.config.viewerBaseUrl(或传入代理 baseUrl)。
7. 锁定 VCN 网络安全
在网络边缘阻止除 Tailscale 外的所有流量:
- 在 OCI 控制台中,转到 Networking > Virtual Cloud Networks。
- 点击你的 VCN,然后进入 Security Lists > Default Security List。
- 删除除
0.0.0.0/0 UDP 41641(Tailscale)之外的所有入站规则。 - 保留默认出站规则(允许所有出站流量)。
这会在网络边缘阻止 22 端口的 SSH、HTTP、HTTPS 以及所有其他流量。此后,你只能通过 Tailscale 连接。
8. 验证
openclaw --version
systemctl --user status openclaw-gateway.service
tailscale serve status
curl http://localhost:18789
从 tailnet 上的任何设备访问控制界面(Control UI):
将 <tailnet-name> 替换为你的 tailnet 名称(可在 tailscale status 中查看)。
验证安全态势¶
由于 VCN 已锁定(仅开放 UDP 41641),且 Gateway 绑定到 loopback,公网流量会在网络边缘被阻止,管理员访问仅限 tailnet。这消除了多个传统 VPS 加固步骤的需求:
| 传统步骤 | 是否需要? | 原因 |
|---|---|---|
| UFW 防火墙 | 不需要 | VCN 会在流量到达实例之前将其阻止。 |
| fail2ban | 不需要 | 22 端口已在 VCN 处被阻止;没有暴力破解面。 |
| sshd 加固 | 不需要 | Tailscale SSH 不使用 sshd。 |
| 禁用 root 登录 | 不需要 | Tailscale 通过 tailnet 身份进行认证,而非系统用户。 |
| 仅使用 SSH 密钥认证 | 不需要 | 同样——tailnet 身份取代了系统 SSH 密钥。 |
| IPv6 加固 | 通常不需要 | 取决于 VCN/子网设置;请核实实际分配/暴露的地址。 |
仍然推荐:
- 执行
chmod 700 ~/.openclaw以限制凭据文件权限。 - 运行
openclaw security audit进行 OpenClaw 专属的安全态势检查。 - 定期运行
sudo apt update && sudo apt upgrade以安装操作系统补丁。 - 定期查看 Tailscale 管理控制台 中的设备。
快速验证命令:
# 确认没有公网端口在监听
sudo ss -tlnp | grep -v '127.0.0.1\|::1'
# 验证 Tailscale SSH 是否已激活
tailscale status | grep -q 'offers: ssh' && echo "Tailscale SSH active"
# 可选:确认 Tailscale SSH 正常工作后,彻底禁用 sshd
sudo systemctl disable --now ssh
ARM 注意事项¶
Always Free 层级使用 ARM(aarch64)架构。大多数 OpenClaw 功能均可正常工作;少数原生二进制文件需要 ARM 构建:
- Node.js、Telegram、WhatsApp(Baileys):纯 JavaScript,没有问题。
- 大多数带原生代码的 npm 包:提供预构建的
linux-arm64产物。 - 可选的 CLI 辅助工具(例如 skills 附带的 Go/Rust 二进制文件):安装前请检查是否有
aarch64/linux-arm64版本。
使用 uname -m 验证架构(应输出 aarch64)。对于没有 ARM 构建的二进制文件,请从源码安装或跳过。
持久化与备份¶
OpenClaw 状态数据存放于:
~/.openclaw/--openclaw.json、共享及按代理区分的 SQLite 认证存储、渠道/提供商状态以及会话数据。~/.openclaw/workspace/-- 代理工作区(SOUL.md、记忆、产物)。
这些数据在重启后仍会保留。要创建备份归档:
绝对符号链接会保持其原始目标位置,包括指向单独备份的配置或凭据的链接。在另一台主机或另一路径上激活状态之前,请检查这些链接;请参阅备份符号链接注意事项。恢复操作会校验并解压到全新的暂存目录;激活是单独的离线步骤。回滚警告和激活顺序请参阅恢复完整归档。
备选方案:SSH 隧道¶
如果 Tailscale Serve 无法工作,可从本地机器使用 SSH 隧道:
然后打开 http://localhost:18789。
故障排除¶
实例创建失败("容量不足") -- 免费套餐的 ARM 实例很抢手。请尝试不同的可用性域,或在非高峰时段重试。
Tailscale 无法连接 -- 运行 sudo tailscale up --ssh --hostname=openclaw --reset 重新进行身份验证。
网关无法启动 -- 运行 openclaw doctor --non-interactive,并使用 journalctl --user -u openclaw-gateway.service -n 50 查看日志。
ARM 二进制文件问题 -- 大多数 npm 包都能在 ARM64 上运行。对于原生二进制文件,请查找 linux-arm64 或 aarch64 版本。使用 uname -m 验证架构。
后续步骤¶
相关¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw