Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

Ejecutar OpenClaw.app con un Gateway remoto

OpenClaw.app utiliza túneles SSH para conectarse a un Gateway remoto. Esta guía le muestra cómo configurarlo.

Descripción general

%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#ffffff',
    'primaryTextColor': '#000000',
    'primaryBorderColor': '#000000',
    'lineColor': '#000000',
    'secondaryColor': '#f9f9fb',
    'tertiaryColor': '#ffffff',
    'clusterBkg': '#f9f9fb',
    'clusterBorder': '#000000',
    'nodeBorder': '#000000',
    'mainBkg': '#ffffff',
    'edgeLabelBackground': '#ffffff'
  }
}}%%
flowchart TB
    subgraph Client["Client Machine"]
        direction TB
        A["OpenClaw.app"]
        B["ws://127.0.0.1:18789\n(local port)"]
        T["SSH Tunnel"]

        A --> B
        B --> T
    end
    subgraph Remote["Remote Machine"]
        direction TB
        C["Gateway WebSocket"]
        D["ws://127.0.0.1:18789"]

        C --> D
    end
    T --> C

Configuración rápida

Paso 1: Agregar configuración de SSH

Edite ~/.ssh/config y agregue:

Host remote-gateway
    HostName <REMOTE_IP>          # e.g., 172.27.187.184
    User <REMOTE_USER>            # e.g., jefferson
    LocalForward 18789 127.0.0.1:18789
    IdentityFile ~/.ssh/id_rsa

Reemplace <REMOTE_IP> y <REMOTE_USER> con sus valores.

Paso 2: Copiar la clave SSH

Copie su clave pública a la máquina remota (ingrese la contraseña una sola vez):

ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>

Paso 3: Establecer el token del Gateway

launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"

Paso 4: Iniciar el túnel SSH

ssh -N remote-gateway &

Paso 5: Reiniciar OpenClaw.app

# Quit OpenClaw.app (⌘Q), then reopen:
open /path/to/OpenClaw.app

La app ahora se conectará al Gateway remoto a través del túnel SSH.


Inicio automático del túnel al iniciar sesión

Para que el túnel SSH se inicie automáticamente cuando usted inicie sesión, cree un Launch Agent.

Crear el archivo PLIST

Guarde esto como ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>bot.molt.ssh-tunnel</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/ssh</string>
        <string>-N</string>
        <string>remote-gateway</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Cargar el Launch Agent

launchctl bootstrap gui/$UID ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist

El túnel ahora:

  • Se iniciará automáticamente cuando usted inicie sesión
  • Se reiniciará si falla
  • Sigue corriendo en segundo plano

Nota heredada: elimine cualquier LaunchAgent com.openclaw.ssh-tunnel restante si existe.


Solución de problemas

Verificar si el túnel está en ejecución:

ps aux | grep "ssh -N remote-gateway" | grep -v grep
lsof -i :18789

Reiniciar el túnel:

launchctl kickstart -k gui/$UID/bot.molt.ssh-tunnel

Detener el túnel:

launchctl bootout gui/$UID/bot.molt.ssh-tunnel

Cómo funciona

Componente Qué hace
LocalForward 18789 127.0.0.1:18789 Reenvía el puerto local 18789 al puerto remoto 18789
ssh -N SSH sin ejecutar comandos remotos (solo reenvío de puertos)
KeepAlive Reinicia automáticamente el túnel si falla
RunAtLoad Inicia el túnel cuando se carga el agente

OpenClaw.app se conecta a ws://127.0.0.1:18789 en su máquina cliente. El túnel SSH reenvía esa conexión al puerto 18789 en la máquina remota donde se está ejecutando el Gateway.