OpenClaw en Oracle Cloud (OCI)

Objetivo

Ejecutar un Gateway persistente de OpenClaw en el nivel Always Free ARM de Oracle Cloud.

El nivel gratuito de Oracle puede ser una gran opción para OpenClaw (especialmente si ya tienes una cuenta OCI), pero viene con compromisos:

  • Arquitectura ARM (la mayoría de cosas funcionan, pero algunos binarios pueden ser solo x86)
  • La capacidad y el registro pueden ser caprichosos

Comparación de costos (2026)

ProveedorPlanEspecificacionesPrecio/mesNotas
Oracle CloudAlways Free ARMhasta 4 OCPU, 24GB RAM$0ARM, capacidad limitada
HetznerCX222 vCPU, 4GB RAM~ $4Opción de pago más barata
DigitalOceanBasic1 vCPU, 1GB RAM$6UI fácil, buena documentación
VultrCloud Compute1 vCPU, 1GB RAM$6Muchas ubicaciones
LinodeNanode1 vCPU, 1GB RAM$5Ahora parte de Akamai

Requisitos previos

1) Crear una instancia OCI

  1. Inicia sesión en la Consola de Oracle Cloud
  2. Navega a Compute → Instances → Create Instance
  3. Configura:
    • Name: openclaw
    • Image: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex (Ampere ARM)
    • OCPUs: 2 (o hasta 4)
    • Memory: 12 GB (o hasta 24 GB)
    • Boot volume: 50 GB (hasta 200 GB gratis)
    • SSH key: Añade tu clave pública
  4. Haz clic en Create
  5. Anota la dirección IP pública

Consejo: Si la creación de la instancia falla con “Out of capacity”, prueba otro dominio de disponibilidad o reintenta más tarde. La capacidad del nivel gratuito es limitada.

2) Conectar y actualizar

# Conectar vía IP pública
ssh ubuntu@YOUR_PUBLIC_IP

# Actualizar el sistema
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential

Nota: build-essential es necesario para la compilación ARM de algunas dependencias.

3) Configurar usuario y hostname

# Establecer hostname
sudo hostnamectl set-hostname openclaw

# Establecer contraseña para el usuario ubuntu
sudo passwd ubuntu

# Habilitar lingering (mantiene los servicios de usuario ejecutándose después del logout)
sudo loginctl enable-linger ubuntu

4) Instalar Tailscale

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

Esto habilita Tailscale SSH, así que puedes conectarte vía ssh openclaw desde cualquier dispositivo en tu tailnet — sin necesidad de IP pública.

Verifica:

tailscale status

A partir de ahora, conecta vía Tailscale: ssh ubuntu@openclaw (o usa la IP de Tailscale).

5) Instalar OpenClaw

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

Cuando te pregunte “How do you want to hatch your bot?”, selecciona “Do this later”.

Nota: Si tienes problemas de compilación nativa ARM, comienza con paquetes del sistema (p. ej. sudo apt install -y build-essential) antes de recurrir a Homebrew.

6) Configurar Gateway (loopback + auth por token) y habilitar Tailscale Serve

Usa la autenticación por token como predeterminada. Es predecible y evita la necesidad de flags de “auth insegura” en la UI de control.

# Mantener el Gateway privado en la VM
openclaw config set gateway.bind loopback

# Requerir autenticación para el Gateway + UI de control
openclaw config set gateway.auth.mode token
openclaw doctor --generate-gateway-token

# Exponer vía Tailscale Serve (HTTPS + acceso por tailnet)
openclaw config set gateway.tailscale.mode serve
openclaw config set gateway.trustedProxies '["127.0.0.1"]'

systemctl --user restart openclaw-gateway

7) Verificar

# Comprobar versión
openclaw --version

# Comprobar estado del daemon
systemctl --user status openclaw-gateway

# Comprobar Tailscale Serve
tailscale serve status

# Probar respuesta local
curl http://localhost:18789

8) Blindar la seguridad de la VCN

Ahora que todo funciona, blinda la VCN para bloquear todo el tráfico excepto Tailscale. La Virtual Cloud Network de OCI actúa como un firewall en el borde de la red — el tráfico se bloquea antes de llegar a tu instancia.

  1. Ve a Networking → Virtual Cloud Networks en la Consola de OCI
  2. Haz clic en tu VCN → Security Lists → Default Security List
  3. Elimina todas las reglas de entrada excepto:
    • 0.0.0.0/0 UDP 41641 (Tailscale)
  4. Mantén las reglas de salida predeterminadas (permitir todo el tráfico saliente)

Esto bloquea SSH en el puerto 22, HTTP, HTTPS y todo lo demás en el borde de la red. A partir de ahora, solo puedes conectarte vía Tailscale.


Acceder a la UI de control

Desde cualquier dispositivo en tu red Tailscale:

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

Reemplaza <tailnet-name> con el nombre de tu tailnet (visible en tailscale status).

No se necesita túnel SSH. Tailscale proporciona:

  • Cifrado HTTPS (certificados automáticos)
  • Autenticación vía identidad de Tailscale
  • Acceso desde cualquier dispositivo en tu tailnet (laptop, teléfono, etc.)

Seguridad: VCN + Tailscale (línea base recomendada)

Con la VCN blindada (solo UDP 41641 abierto) y el Gateway vinculado a loopback, obtienes una fuerte defensa en profundidad: el tráfico público se bloquea en el borde de la red, y el acceso administrativo ocurre sobre tu tailnet.

Esta configuración a menudo elimina la necesidad de reglas adicionales de firewall del host puramente para detener la fuerza bruta SSH desde Internet — pero igualmente deberías mantener el sistema operativo actualizado, ejecutar openclaw security audit y verificar que no estás escuchando accidentalmente en interfaces públicas.

Lo que ya está protegido

Paso tradicional¿Necesario?Por qué
Firewall UFWNoLa VCN bloquea antes de que el tráfico llegue a la instancia
fail2banNoSin fuerza bruta si el puerto 22 está bloqueado en la VCN
Endurecimiento de sshdNoTailscale SSH no usa sshd
Deshabilitar login rootNoTailscale usa identidad de Tailscale, no usuarios del sistema
Auth solo por clave SSHNoTailscale autentica vía tu tailnet
Endurecimiento IPv6Generalmente noDepende de la configuración de tu VCN/subnet; verifica qué está realmente asignado/expuesto

Aún recomendado

  • Permisos de credenciales: chmod 700 ~/.openclaw
  • Auditoría de seguridad: openclaw security audit
  • Actualizaciones del sistema: sudo apt update && sudo apt upgrade regularmente
  • Monitorear Tailscale: Revisa dispositivos en la consola de administración de Tailscale

Verificar la postura de seguridad

# Confirmar que no hay puertos públicos escuchando
sudo ss -tlnp | grep -v '127.0.0.1\|::1'

# Verificar que Tailscale SSH está activo
tailscale status | grep -q 'offers: ssh' && echo "Tailscale SSH active"

# Opcional: deshabilitar sshd por completo
sudo systemctl disable --now ssh

Alternativa: túnel SSH

Si Tailscale Serve no funciona, usa un túnel SSH:

# Desde tu máquina local (vía Tailscale)
ssh -L 18789:127.0.0.1:18789 ubuntu@openclaw

Luego abre http://localhost:18789.


Solución de problemas

La creación de la instancia falla (“Out of capacity”)

Las instancias ARM del nivel gratuito son populares. Prueba:

  • Otro dominio de disponibilidad
  • Reintentar en horas de baja demanda (temprano en la mañana)
  • Usar el filtro “Always Free” al seleccionar el shape

Tailscale no conecta

# Comprobar estado
sudo tailscale status

# Re-autenticar
sudo tailscale up --ssh --hostname=openclaw --reset

El Gateway no arranca

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

No se puede acceder a la UI de control

# Verificar que Tailscale Serve está ejecutándose
tailscale serve status

# Comprobar que el Gateway está escuchando
curl http://localhost:18789

# Reiniciar si es necesario
systemctl --user restart openclaw-gateway

Problemas con binarios ARM

Algunas herramientas pueden no tener builds ARM. Verifica:

uname -m  # Debería mostrar aarch64

La mayoría de paquetes npm funcionan bien. Para binarios, busca releases linux-arm64 o aarch64.


Persistencia

Todo el estado se almacena en:

  • ~/.openclaw/ — configuración, credenciales, datos de sesión
  • ~/.openclaw/workspace/ — workspace (SOUL.md, memoria, artefactos)

Haz respaldo periódicamente:

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

Ver también