OpenClaw trên Oracle Cloud (OCI)

Mục tiêu

Chạy OpenClaw Gateway liên tục trên gói Always Free ARM của Oracle Cloud.

Gói miễn phí của Oracle khá phù hợp với OpenClaw (đặc biệt nếu các bạn đã có tài khoản OCI), nhưng có một số điểm cần lưu ý:

  • Kiến trúc ARM (hầu hết đều chạy được, nhưng một số binary có thể chỉ hỗ trợ x86)
  • Dung lượng và đăng ký có thể hơi khó khăn

So sánh chi phí (2026)

Nhà cung cấpGóiCấu hìnhGiá/thángGhi chú
Oracle CloudAlways Free ARMtối đa 4 OCPU, 24GB RAM$0ARM, dung lượng giới hạn
HetznerCX222 vCPU, 4GB RAM~ $4Gói trả phí rẻ nhất
DigitalOceanBasic1 vCPU, 1GB RAM$6Giao diện dễ dùng, docs tốt
VultrCloud Compute1 vCPU, 1GB RAM$6Nhiều vị trí
LinodeNanode1 vCPU, 1GB RAM$5Giờ thuộc Akamai

Yêu cầu trước khi bắt đầu

1) Tạo OCI Instance

  1. Đăng nhập vào Oracle Cloud Console
  2. Vào Compute → Instances → Create Instance
  3. Cấu hình:
    • Name: openclaw
    • Image: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex (Ampere ARM)
    • OCPUs: 2 (hoặc tối đa 4)
    • Memory: 12 GB (hoặc tối đa 24 GB)
    • Boot volume: 50 GB (tối đa 200 GB miễn phí)
    • SSH key: Thêm public key của các bạn
  4. Click Create
  5. Ghi lại địa chỉ IP public

Mẹo: Nếu tạo instance bị lỗi “Out of capacity”, thử đổi availability domain khác hoặc thử lại sau. Dung lượng gói miễn phí có giới hạn.

2) Kết nối và cập nhật

# Kết nối qua IP public
ssh ubuntu@YOUR_PUBLIC_IP

# Cập nhật hệ thống
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential

Lưu ý: build-essential cần thiết để compile một số dependency trên ARM.

3) Cấu hình User và Hostname

# Đặt hostname
sudo hostnamectl set-hostname openclaw

# Đặt password cho user ubuntu
sudo passwd ubuntu

# Enable lingering (giữ user services chạy sau khi logout)
sudo loginctl enable-linger ubuntu

4) Cài đặt Tailscale

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

Lệnh này sẽ bật Tailscale SSH, giúp các bạn kết nối qua ssh openclaw từ bất kỳ thiết bị nào trong tailnet — không cần IP public.

Kiểm tra:

tailscale status

Từ giờ, kết nối qua Tailscale: ssh ubuntu@openclaw (hoặc dùng Tailscale IP).

5) Cài đặt OpenClaw

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

Khi được hỏi “How do you want to hatch your bot?”, chọn “Do this later”.

Lưu ý: Nếu gặp vấn đề build trên ARM, hãy bắt đầu với system packages (ví dụ sudo apt install -y build-essential) trước khi dùng Homebrew.

6) Cấu hình Gateway (loopback + token auth) và bật Tailscale Serve

Dùng token auth làm mặc định. Cách này dễ dự đoán và tránh phải dùng flag “insecure auth” trong Control UI.

# Giữ Gateway private trên VM
openclaw config set gateway.bind loopback

# Yêu cầu auth cho Gateway + Control UI
openclaw config set gateway.auth.mode token
openclaw doctor --generate-gateway-token

# Expose qua Tailscale Serve (HTTPS + truy cập tailnet)
openclaw config set gateway.tailscale.mode serve
openclaw config set gateway.trustedProxies '["127.0.0.1"]'

systemctl --user restart openclaw-gateway

7) Kiểm tra

# Check version
openclaw --version

# Check daemon status
systemctl --user status openclaw-gateway

# Check Tailscale Serve
tailscale serve status

# Test local response
curl http://localhost:18789

8) Khóa bảo mật VCN

Giờ mọi thứ đã hoạt động, hãy khóa VCN để chặn tất cả traffic trừ Tailscale. Virtual Cloud Network của OCI hoạt động như firewall ở tầng mạng — traffic bị chặn trước khi đến instance.

  1. Vào Networking → Virtual Cloud Networks trong OCI Console
  2. Click vào VCN của bạn → Security Lists → Default Security List
  3. Xóa tất cả ingress rules trừ:
    • 0.0.0.0/0 UDP 41641 (Tailscale)
  4. Giữ nguyên egress rules mặc định (cho phép tất cả outbound)

Cách này sẽ chặn SSH trên port 22, HTTP, HTTPS và mọi thứ khác ở tầng mạng. Từ giờ, các bạn chỉ có thể kết nối qua Tailscale.


Truy cập Control UI

Từ bất kỳ thiết bị nào trong mạng Tailscale:

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

Thay <tailnet-name> bằng tên tailnet của bạn (xem trong tailscale status).

Không cần SSH tunnel. Tailscale cung cấp:

  • Mã hóa HTTPS (tự động cấp cert)
  • Xác thực qua Tailscale identity
  • Truy cập từ mọi thiết bị trong tailnet (laptop, điện thoại, v.v.)

Bảo mật: VCN + Tailscale (baseline khuyên dùng)

Với VCN đã khóa (chỉ mở UDP 41641) và Gateway bind vào loopback, các bạn có lớp bảo vệ sâu: traffic public bị chặn ở tầng mạng, và truy cập admin diễn ra qua tailnet.

Cách setup này thường loại bỏ nhu cầu dùng thêm firewall rules trên host chỉ để chặn SSH brute force từ Internet — nhưng các bạn vẫn nên giữ OS được cập nhật, chạy openclaw security audit, và kiểm tra không vô tình lắng nghe trên public interfaces.

Những gì đã được bảo vệ

Bước truyền thốngCần thiết?Tại sao
UFW firewallKhôngVCN chặn trước khi traffic đến instance
fail2banKhôngKhông có brute force nếu port 22 bị chặn ở VCN
sshd hardeningKhôngTailscale SSH không dùng sshd
Disable root loginKhôngTailscale dùng Tailscale identity, không phải system users
SSH key-only authKhôngTailscale xác thực qua tailnet của bạn
IPv6 hardeningThường khôngTùy vào cài đặt VCN/subnet; kiểm tra xem thực sự được assign/expose gì

Vẫn nên làm

  • Quyền credential: chmod 700 ~/.openclaw
  • Security audit: openclaw security audit
  • Cập nhật hệ thống: sudo apt update && sudo apt upgrade thường xuyên
  • Theo dõi Tailscale: Xem lại devices trong Tailscale admin console

Kiểm tra tình trạng bảo mật

# Xác nhận không có public ports đang lắng nghe
sudo ss -tlnp | grep -v '127.0.0.1\|::1'

# Kiểm tra Tailscale SSH đang hoạt động
tailscale status | grep -q 'offers: ssh' && echo "Tailscale SSH active"

# Tùy chọn: tắt hẳn sshd
sudo systemctl disable --now ssh

Phương án dự phòng: SSH Tunnel

Nếu Tailscale Serve không hoạt động, dùng SSH tunnel:

# Từ máy local (qua Tailscale)
ssh -L 18789:127.0.0.1:18789 ubuntu@openclaw

Sau đó mở http://localhost:18789.


Troubleshooting

Tạo instance bị lỗi (“Out of capacity”)

Instance ARM gói miễn phí rất phổ biến. Thử:

  • Đổi availability domain khác
  • Thử lại vào giờ thấp điểm (sáng sớm)
  • Dùng filter “Always Free” khi chọn shape

Tailscale không kết nối được

# Check status
sudo tailscale status

# Xác thực lại
sudo tailscale up --ssh --hostname=openclaw --reset

Gateway không khởi động

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

Không truy cập được Control UI

# Kiểm tra Tailscale Serve đang chạy
tailscale serve status

# Check gateway đang lắng nghe
curl http://localhost:18789

# Restart nếu cần
systemctl --user restart openclaw-gateway

Vấn đề với ARM binary

Một số tool có thể không có bản build ARM. Kiểm tra:

uname -m  # Phải hiện aarch64

Hầu hết npm packages đều chạy tốt. Với binaries, tìm bản linux-arm64 hoặc aarch64.


Lưu trữ dữ liệu

Tất cả state được lưu trong:

  • ~/.openclaw/ — config, credentials, session data
  • ~/.openclaw/workspace/ — workspace (SOUL.md, memory, artifacts)

Backup định kỳ:

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

Xem thêm