Ir al contenido

Configurar múltiples Gateways en el mismo host

¿Alguna vez has intentado ejecutar dos instancias de un mismo servicio y todo ha fallado por un conflicto de puertos o archivos de configuración compartidos? Es un problema común cuando necesitas un bot de rescate o simplemente separar entornos en la misma máquina sin que colisionen entre sí.

La mayoría de las configuraciones funcionan bien con un solo Gateway, ya que este puede gestionar múltiples conexiones de mensajería. Sin embargo, si buscas redundancia o un aislamiento total, necesitas ejecutar Gateways independientes con perfiles y puertos dedicados.

Para evitar colisiones de datos y errores de configuración, cada instancia debe tener valores únicos para:

  • OPENCLAW_CONFIG_PATH: El archivo de configuración por instancia.
  • OPENCLAW_STATE_DIR: Sesiones, credenciales y cachés independientes.
  • agents.defaults.workspace: El directorio raíz del workspace de la instancia.
  • gateway.port (o el flag --port): Un puerto único para cada Gateway.

La mejor forma de gestionar esto es usando perfiles con el flag --profile. Esto automatiza el alcance de OPENCLAW_STATE_DIR y OPENCLAW_CONFIG_PATH.

1. Configurar la instancia principal y la de rescate

Sección titulada «1. Configurar la instancia principal y la de rescate»

Ejecuta estos comandos para inicializar y arrancar dos Gateways en puertos distintos:

Ventana de terminal
# Instancia principal
openclaw --profile main setup
openclaw --profile main gateway --port 18789
# Instancia de rescate
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001

Si quieres que se ejecuten de forma persistente:

Ventana de terminal
openclaw --profile main gateway install
openclaw --profile rescue gateway install

Puedes comprobar que cada perfil funciona correctamente de forma independiente:

Ventana de terminal
openclaw --profile main status
openclaw --profile rescue status
openclaw --profile rescue browser status

Si decides configurar las variables de entorno manualmente sin usar perfiles, asegúrate de no compartir rutas. Aquí tienes un ejemplo de cómo hacerlo correctamente:

Ventana de terminal
OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
OPENCLAW_STATE_DIR=~/.openclaw-main \
openclaw gateway --port 18789
OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
OPENCLAW_STATE_DIR=~/.openclaw-rescue \
openclaw gateway --port 19001

El Gateway utiliza un puerto base, pero reserva otros automáticamente. Si el puerto base es 18789:

  • El servicio de control del browser usará el puerto base + 2.
  • El canvasHost.port usará el puerto base + 4.
  • Los puertos CDP se asignan en el rango de controlPort + 9 hasta + 108.

Solución: Deja al menos 20 puertos de diferencia entre cada puerto base para que los puertos derivados de browser, canvas y CDP nunca choquen.

  • No fijes browser.cdpUrl al mismo valor en múltiples instancias.
  • Si necesitas puertos CDP específicos, configúralos mediante browser.profiles.<name>.cdpPort en cada instancia.
  • Para Chrome remoto, utiliza browser.profiles.<name>.cdpUrl de forma individual.

¿Necesitas ayuda con tu configuración específica? Prueba nuestro AI Setup Assistant.

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.