跳到內容

在 Oracle Cloud (OCI) 上部署 OpenClaw

想找個地方讓你的 OpenClaw Gateway 24 小時不間斷運行,但又不想為了這點小事每個月付錢給雲端供應商?或者是好不容易架好了伺服器,卻整天擔心公網 IP 被掃描、暴力破解?這大概是每個開發者都會遇到的煩惱。

Oracle Cloud 的 Always Free 方案提供非常慷慨的資源,雖然它的申請過程有時候會讓你抓狂,但只要成功拿到了帳號,它就是目前最推薦的免費託管方案。

  • Oracle Cloud 帳號(註冊)— 如果遇到問題可以參考 社群註冊指南
  • Tailscale 帳號(在 tailscale.com 免費註冊)
  • 基本的 Linux 命令行操作能力
  • 大約 30 分鐘的時間

在開始之前,我們先看看為什麼選 Oracle Cloud。比起其他付費方案,它的免費額度非常驚人:

ProviderPlanSpecsPrice/moNotes
Oracle CloudAlways Free ARMup to 4 OCPU, 24GB RAM$0ARM, limited capacity
HetznerCX222 vCPU, 4GB RAM~ $4最便宜的付費選項
DigitalOceanBasic1 vCPU, 1GB RAM$6UI 簡單,文件豐富
VultrCloud Compute1 vCPU, 1GB RAM$6機房位置多
LinodeNanode1 vCPU, 1GB RAM$5現在是 Akamai 的一部分
  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”,請嘗試換一個 Availability Domain 或晚點再試。免費層級的容量有限,有時候需要碰運氣。

Terminal window
# 使用公網 IP 連線
ssh ubuntu@YOUR_PUBLIC_IP
# 更新系統
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential

注意: build-essential 是必須的,因為 ARM 架構在編譯某些依賴時會用到。

Terminal window
# 設定 hostname
sudo hostnamectl set-hostname openclaw
# 為 ubuntu 使用者設定密碼
sudo passwd ubuntu
# 啟用 lingering(確保登出後服務繼續執行)
sudo loginctl enable-linger ubuntu
Terminal window
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh --hostname=openclaw

這會啟用 Tailscale SSH,之後你就可以從 tailnet 上的任何裝置直接透過 ssh openclaw 連線,不再需要公網 IP。

檢查狀態:

Terminal window
tailscale status

從現在起,建議改用 Tailscale 連線: ssh ubuntu@openclaw。

Terminal window
curl -fsSL https://openclaw.ai/install.sh | bash
source ~/.bashrc

當系統詢問 “How do you want to hatch your bot?” 時,請選擇 “Do this later”。

我們將使用 token auth 作為預設驗證方式,這比調整 Control UI 的 flag 更安全且可預測。

Terminal window
# 讓 Gateway 只監聽在 VM 內部
openclaw config set gateway.bind loopback
# 為 Gateway 和 Control UI 要求 token 驗證
openclaw config set gateway.auth.mode token
openclaw doctor --generate-gateway-token
# 透過 Tailscale Serve 暴露服務(自動處理 HTTPS)
openclaw config set gateway.tailscale.mode serve
openclaw config set gateway.trustedProxies '["127.0.0.1"]'
systemctl --user restart openclaw-gateway
Terminal window
# 檢查版本
openclaw --version
# 檢查守護進程狀態
systemctl --user status openclaw-gateway
# 檢查 Tailscale Serve 狀態
tailscale serve status
# 測試本地回應
curl http://localhost:18789

既然一切都正常運作了,現在去鎖定 VCN,阻擋除了 Tailscale 以外的所有流量。OCI 的 Virtual Cloud Network 就像是網路邊緣的防火牆,會在流量到達你的 Instance 之前就攔截它。

  1. 在 OCI Console 進入 Networking → Virtual Cloud Networks
  2. 點擊你的 VCN → Security Lists → Default Security List
  3. 刪除所有 Ingress Rules,只保留:
    • 0.0.0.0/0 UDP 41641 (Tailscale 使用)
  4. 保留預設的 Egress Rules(允許所有流出流量)

這樣會從網路邊緣阻擋 22 端口 (SSH)、HTTP、HTTPS 等所有存取。以後你只能透過 Tailscale 連線。


在你的 Tailscale 網路中的任何裝置上打開瀏覽器:

https://openclaw.<tailnet-name>.ts.net/

將 <tailnet-name> 替換成你的 tailnet 名稱(可以在 tailscale status 中看到)。你不需要設定 SSH tunnel,Tailscale 已經幫你搞定了 HTTPS 加密和身份驗證。


當你把 VCN 鎖定(只開 UDP 41641)並將 Gateway 綁定到 loopback 時,你獲得了極強的深度防禦。公網流量在網路邊緣就被擋掉,只有你的 tailnet 成員可以進行管理。

在這種架構下,你通常不再需要為了防範 SSH 暴力破解而做額外設定:

傳統步驟是否需要?原因
UFW 防火牆不需要VCN 在流量到達前就攔截了
fail2ban不需要VCN 擋住了 22 端口,根本沒有暴力破解的機會
sshd 硬化不需要Tailscale SSH 不使用系統的 sshd
禁用 root 登入不需要Tailscale 使用你的 Tailscale 身份,而非系統帳號
  • 權限控管: chmod 700 ~/.openclaw
  • 安全審計: 執行 openclaw security audit
  • 系統更新: 定期跑 sudo apt update && sudo apt upgrade
  • 監控 Tailscale: 在 Tailscale 管理後台 檢查裝置

Instance 建立失敗 (“Out of capacity”)

Section titled “Instance 建立失敗 (“Out of capacity”)”

Free tier 的 ARM 資源非常搶手。你可以試試:

  • 更換 Availability Domain
  • 在離峰時段(例如清晨)重試
  • 確保在選擇 Shape 時勾選了 “Always Free” 過濾器
Terminal window
# 檢查狀態
sudo tailscale status
# 重新驗證
sudo tailscale up --ssh --hostname=openclaw --reset
Terminal window
openclaw gateway status
openclaw doctor --non-interactive
journalctl --user -u openclaw-gateway -n 50

雖然大部分 npm 套件都能正常運作,但如果遇到二進制文件報錯,請確認你的架構:

Terminal window
uname -m # 應該顯示 aarch64

請尋找標註為 linux-arm64 或 aarch64 的版本。


所有的資料都儲存在以下路徑,請記得定期備份:

  • ~/.openclaw/ — 配置、憑證、Session 資料
  • ~/.openclaw/workspace/ — 工作區 (SOUL.md, 記憶, 產出物)

備份指令:

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

有任何設定上的問題嗎?可以直接詢問 AI Setup Assistant。

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。