Appearance
OpenClaw 部署到 Oracle Cloud(OCI)
目标
在 Oracle Cloud 的 Always Free ARM 实例上运行永久性 OpenClaw Gateway。
Oracle 免费套餐非常适合 OpenClaw(尤其是已有 OCI 账户的用户),但有一些权衡:
- ARM 架构(大多数功能正常,但部分二进制可能仅支持 x86)
- 容量和注册流程有时比较折腾
费用对比(2026)
| 提供商 | 套餐 | 配置 | 月费 | 备注 |
|---|---|---|---|---|
| Oracle Cloud | Always Free ARM | 最高 4 OCPU、24GB RAM | $0 | ARM 架构,容量有限 |
| Hetzner | CX22 | 2 vCPU、4GB RAM | ~$4 | 最便宜的付费选项 |
| DigitalOcean | Basic | 1 vCPU、1GB RAM | $6 | 易用 UI,文档完善 |
| Vultr | Cloud Compute | 1 vCPU、1GB RAM | $6 | 机房位置多 |
| Linode | Nanode | 1 vCPU、1GB RAM | $5 | 现属 Akamai |
前置条件
- Oracle Cloud 账户(注册)—— 遇到问题可参考社区注册指南
- Tailscale 账户(免费:tailscale.com)
- 约 30 分钟
1)创建 OCI 实例
- 登录 Oracle Cloud Console
- 进入 Compute → Instances → Create Instance
- 配置如下:
- 名称:
openclaw - 镜像: Ubuntu 24.04(aarch64)
- 规格:
VM.Standard.A1.Flex(Ampere ARM) - OCPU: 2(最多 4)
- 内存: 12 GB(最多 24 GB)
- 启动卷: 50 GB(免费最多 200 GB)
- SSH 密钥: 添加你的公钥
- 名称:
- 点击Create
- 记录公网 IP 地址
提示: 如果实例创建失败提示"Out of capacity",可以尝试其他可用域,或稍后重试。免费套餐容量有限。
2)连接并更新系统
bash
# 通过公网 IP 连接
ssh ubuntu@YOUR_PUBLIC_IP
# 更新系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential注意: ARM 架构编译某些依赖时需要 build-essential。
3)配置用户和主机名
bash
# 设置主机名
sudo hostnamectl set-hostname openclaw
# 为 ubuntu 用户设置密码
sudo passwd ubuntu
# 启用 lingering(注销后保持用户服务运行)
sudo loginctl enable-linger ubuntu4)安装 Tailscale
bash
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh --hostname=openclaw这会启用 Tailscale SSH,让你可以从 tailnet 中任何设备通过 ssh openclaw 连接——无需公网 IP。
验证:
bash
tailscale status从现在起,通过 Tailscale 连接: ssh ubuntu@openclaw(或使用 Tailscale IP)。
5)安装 OpenClaw
bash
curl -fsSL https://openclaw.ai/install.sh | bash
source ~/.bashrc提示"How do you want to hatch your bot?"时,选择 "Do this later"。
注意:如果遇到 ARM 原生构建问题,先安装系统包(如
sudo apt install -y build-essential),再考虑使用 Homebrew。
6)配置 Gateway(loopback + token 认证)并启用 Tailscale Serve
使用 token 认证作为默认方案,它可预测且无需任何"不安全认证"控制 UI 标志。
bash
# 将 Gateway 限制在 VM 内部
openclaw config set gateway.bind loopback
# 要求 Gateway + 控制 UI 认证
openclaw config set gateway.auth.mode token
openclaw doctor --generate-gateway-token
# 通过 Tailscale Serve 暴露(HTTPS + tailnet 访问)
openclaw config set gateway.tailscale.mode serve
openclaw config set gateway.trustedProxies '["127.0.0.1"]'
systemctl --user restart openclaw-gateway7)验证安装
bash
# 检查版本
openclaw --version
# 检查守护进程状态
systemctl --user status openclaw-gateway
# 检查 Tailscale Serve
tailscale serve status
# 测试本地响应
curl http://localhost:187898)锁定 VCN 安全规则
一切正常后,锁定 VCN 以拦截所有流量(Tailscale 除外)。OCI 的虚拟云网络在网络层面充当防火墙——流量在到达实例之前就被拦截。
- 在 OCI Console 进入 Networking → Virtual Cloud Networks
- 点击你的 VCN → Security Lists → Default Security List
- 删除所有入站规则,只保留:
0.0.0.0/0 UDP 41641(Tailscale)
- 保留默认出站规则(允许所有出站)
这会在网络层面封锁 22 端口(SSH)、HTTP、HTTPS 及其他所有端口。从此之后只能通过 Tailscale 连接。
访问控制 UI
从 Tailscale 网络中的任意设备:
https://openclaw.<tailnet-name>.ts.net/将 <tailnet-name> 替换为你的 tailnet 名称(通过 tailscale status 查看)。
无需 SSH 隧道。Tailscale 提供:
- HTTPS 加密(自动证书)
- 通过 Tailscale 身份认证
- tailnet 中任何设备(笔记本、手机等)均可访问
安全方案:VCN + Tailscale(推荐基准)
VCN 仅开放 UDP 41641、Gateway 绑定 loopback,可实现深度防御:公网流量在网络层被拦截,管理员访问通过 tailnet 进行。
这通常消除了专门为防止互联网 SSH 暴力破解而设置额外主机防火墙规则的需要——但仍应保持系统更新、运行 openclaw security audit,并确认没有意外监听公网接口。
已受保护(无需额外操作)
| 传统步骤 | 是否需要 | 原因 |
|---|---|---|
| UFW 防火墙 | 否 | VCN 在流量到达实例前就已拦截 |
| fail2ban | 否 | 22 端口被 VCN 封锁,无暴力破解可能 |
| sshd 加固 | 否 | Tailscale SSH 不使用 sshd |
| 禁用 root 登录 | 否 | Tailscale 使用 Tailscale 身份,不依赖系统用户 |
| 仅 SSH 密钥认证 | 否 | Tailscale 通过 tailnet 认证 |
| IPv6 加固 | 通常不需要 | 取决于 VCN/子网设置;请验证实际分配/暴露情况 |
仍建议执行
- 凭据权限:
chmod 700 ~/.openclaw - 安全审计:
openclaw security audit - 系统更新: 定期
sudo apt update && sudo apt upgrade - 监控 Tailscale: 在 Tailscale 管理控制台 审查设备
验证安全状态
bash
# 确认没有公网端口在监听
sudo ss -tlnp | grep -v '127.0.0.1\|::1'
# 验证 Tailscale SSH 已激活
tailscale status | grep -q 'offers: ssh' && echo "Tailscale SSH active"
# 可选:完全禁用 sshd
sudo systemctl disable --now ssh备用方案:SSH 隧道
如果 Tailscale Serve 暂时不工作,可使用 SSH 隧道:
bash
# 从本地机器(通过 Tailscale)
ssh -L 18789:127.0.0.1:18789 ubuntu@openclaw然后打开 http://localhost:18789。
故障排查
实例创建失败("Out of capacity")
免费 ARM 实例需求很大。可以尝试:
- 换一个可用域
- 在非高峰期重试(凌晨)
- 选择规格时使用"Always Free"过滤器
Tailscale 无法连接
bash
# 检查状态
sudo tailscale status
# 重新认证
sudo tailscale up --ssh --hostname=openclaw --resetGateway 无法启动
bash
openclaw gateway status
openclaw doctor --non-interactive
journalctl --user -u openclaw-gateway -n 50无法访问控制 UI
bash
# 验证 Tailscale Serve 正在运行
tailscale serve status
# 检查 Gateway 是否在监听
curl http://localhost:18789
# 需要时重启
systemctl --user restart openclaw-gatewayARM 二进制问题
部分工具可能没有 ARM 版本。检查:
bash
uname -m # 应显示 aarch64大多数 npm 包都能正常工作。对于二进制文件,请查找 linux-arm64 或 aarch64 版本。
数据持久化
所有状态存储在:
~/.openclaw/—— 配置、凭据、会话数据~/.openclaw/workspace/—— 工作区(SOUL.md、记忆、artifacts)
定期备份:
bash
tar -czvf openclaw-backup.tar.gz ~/.openclaw ~/.openclaw/workspace参考文档
- Gateway 远程访问 —— 其他远程访问模式
- Tailscale 集成 —— 完整 Tailscale 文档
- Gateway 配置 —— 所有配置选项
- DigitalOcean 指南 —— 付费 + 注册更简单
- Hetzner 指南 —— 基于 Docker 的替代方案