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.
Requisitos previos
Sección titulada «Requisitos previos»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.
Inicio rápido
Sección titulada «Inicio rápido»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:
# Instancia principalopenclaw --profile main setupopenclaw --profile main gateway --port 18789
# Instancia de rescateopenclaw --profile rescue setupopenclaw --profile rescue gateway --port 190012. Instalar como servicios
Sección titulada «2. Instalar como servicios»Si quieres que se ejecuten de forma persistente:
openclaw --profile main gateway installopenclaw --profile rescue gateway install3. Verificar el estado
Sección titulada «3. Verificar el estado»Puedes comprobar que cada perfil funciona correctamente de forma independiente:
openclaw --profile main statusopenclaw --profile rescue statusopenclaw --profile rescue browser statusSolución de problemas
Sección titulada «Solución de problemas»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:
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 19001Conflictos de puertos derivados
Sección titulada «Conflictos de puertos derivados»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.portusará el puerto base + 4. - Los puertos CDP se asignan en el rango de
controlPort + 9hasta+ 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.
Errores en Browser/CDP
Sección titulada «Errores en Browser/CDP»- No fijes
browser.cdpUrlal mismo valor en múltiples instancias. - Si necesitas puertos CDP específicos, configúralos mediante
browser.profiles.<name>.cdpPorten cada instancia. - Para Chrome remoto, utiliza
browser.profiles.<name>.cdpUrlde forma individual.
¿Necesitas ayuda con tu configuración específica? Prueba nuestro AI Setup Assistant.
Próximos pasos
Sección titulada «Próximos pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.