在 Oracle Cloud (OCI) 上執行 OpenClaw

目標

在 Oracle Cloud 的 Always Free ARM 方案上運行常駐的 OpenClaw Gateway。

Oracle 的免費方案很適合 OpenClaw(尤其是你已有 OCI 帳號的話),但有一些取捨:

  • ARM 架構(多數工具可正常運作,但部分執行檔可能僅有 x86 版本)
  • 容量與註冊流程可能不太順利

費用比較(2026)

供應商方案規格月費備註
Oracle CloudAlways Free ARM最多 4 OCPU、24GB RAM$0ARM,容量有限
HetznerCX222 vCPU、4GB RAM~ $4最便宜的付費選項
DigitalOceanBasic1 vCPU、1GB RAM$6介面簡潔,文件完善
VultrCloud Compute1 vCPU、1GB RAM$6據點眾多
LinodeNanode1 vCPU、1GB RAM$5現為 Akamai 旗下

前置需求

1) 建立 OCI 執行個體

  1. 登入 Oracle Cloud Console
  2. 前往 Compute → Instances → Create Instance
  3. 設定:
    • Name: openclaw
    • Image: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex(Ampere ARM)
    • OCPUs: 2(最多可用 4)
    • Memory: 12 GB(最多可用 24 GB)
    • Boot volume: 50 GB(免費可用最多 200 GB)
    • SSH key: 加入你的公鑰
  4. 點選 Create
  5. 記下公用 IP 位址

提示: 若建立失敗並顯示「Out of capacity」,嘗試不同的可用性網域或稍後重試。免費方案的容量有限。

2) 連線並更新

# 以公用 IP 連線
ssh ubuntu@YOUR_PUBLIC_IP

# 更新系統
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential

注意: ARM 架構下部分相依套件需要 build-essential 進行編譯。

3) 設定使用者與主機名稱

# 設定主機名稱
sudo hostnamectl set-hostname openclaw

# 設定 ubuntu 使用者密碼
sudo passwd ubuntu

# 啟用 lingering(登出後使用者服務繼續運行)
sudo loginctl enable-linger ubuntu

4) 安裝 Tailscale

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh --hostname=openclaw

啟用 Tailscale SSH 後,你可以在 tailnet 上任何裝置透過 ssh openclaw 連線——不需要公用 IP。

驗證:

tailscale status

從現在開始透過 Tailscale 連線: ssh ubuntu@openclaw(或使用 Tailscale IP)。

5) 安裝 OpenClaw

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 驗證。行為可預期,且不需要任何「不安全驗證」的 Control UI 旗標。

# 讓 Gateway 在 VM 上保持私密
openclaw config set gateway.bind loopback

# 要求 Gateway + Control 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-gateway

7) 驗證

# 檢查版本
openclaw --version

# 檢查背景服務狀態
systemctl --user status openclaw-gateway

# 檢查 Tailscale Serve
tailscale serve status

# 測試本機回應
curl http://localhost:18789

8) 鎖定 VCN 安全性

一切運作正常後,鎖定 VCN 以阻擋除 Tailscale 以外的所有流量。OCI 的虛擬雲端網路在網路邊界充當防火牆——流量在到達你的執行個體之前就會被擋下。

  1. 在 OCI Console 中前往 Networking → Virtual Cloud Networks
  2. 點選你的 VCN → Security Lists → Default Security List
  3. 移除所有輸入規則,僅保留:
    • 0.0.0.0/0 UDP 41641(Tailscale)
  4. 保留預設的輸出規則(允許所有出站)

這會在網路邊界阻擋 SSH 22 埠、HTTP、HTTPS 及其他一切。從此只能透過 Tailscale 連線。


存取 Control 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 在流量到達執行個體前就已阻擋
fail2banVCN 阻擋 22 埠後無暴力攻擊
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 管理主控台 檢視裝置

驗證安全狀態

# 確認沒有公用連接埠在監聽
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 通道:

# 從你的本機電腦(透過 Tailscale)
ssh -L 18789:127.0.0.1:18789 ubuntu@openclaw

然後開啟 http://localhost:18789


疑難排解

建立執行個體失敗(「Out of capacity」)

免費方案的 ARM 執行個體很搶手,試試:

  • 不同的可用性網域
  • 離峰時段重試(清晨)
  • 選擇 shape 時使用「Always Free」篩選條件

Tailscale 無法連線

# 檢查狀態
sudo tailscale status

# 重新驗證
sudo tailscale up --ssh --hostname=openclaw --reset

Gateway 無法啟動

openclaw gateway status
openclaw doctor --non-interactive
journalctl --user -u openclaw-gateway -n 50

無法連上 Control UI

# 驗證 Tailscale Serve 正在運行
tailscale serve status

# 檢查 Gateway 是否在監聽
curl http://localhost:18789

# 需要時重新啟動
systemctl --user restart openclaw-gateway

ARM 執行檔問題

部分工具可能沒有 ARM 版本。確認方式:

uname -m  # 應顯示 aarch64

多數 npm 套件可正常運作。若為執行檔,請尋找 linux-arm64aarch64 版本。


資料持久化

所有狀態存放於:

  • ~/.openclaw/ — 設定、憑證、工作階段資料
  • ~/.openclaw/workspace/ — 工作區(SOUL.md、記憶、產出物)

建議定期備份:

tar -czvf openclaw-backup.tar.gz ~/.openclaw ~/.openclaw/workspace

另請參閱