Solución de problemas del navegador (Linux)
Problema: “Failed to start Chrome CDP on port 18800”
El servidor de control de navegador de OpenClaw falla al iniciar Chrome/Brave/Edge/Chromium con el error:
{"error":"Error: Failed to start Chrome CDP on port 18800 for profile \"openclaw\"."}
Causa raíz
En Ubuntu (y muchas distribuciones Linux), la instalación por defecto de Chromium es un paquete snap. El confinamiento AppArmor de Snap interfiere con la forma en que OpenClaw inicia y monitorea el proceso del navegador.
El comando apt install chromium instala un paquete stub que redirige a snap:
Note, selecting 'chromium-browser' instead of 'chromium'
chromium-browser is already the newest version (2:1snap1-0ubuntu2).
Esto NO es un navegador real — es solo un envoltorio.
Solución 1: Instalar Google Chrome (Recomendado)
Instala el paquete .deb oficial de Google Chrome, que no está aislado por snap:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt --fix-broken install -y # si hay errores de dependencias
Luego actualiza tu configuración de OpenClaw (~/.openclaw/openclaw.json):
{
"browser": {
"enabled": true,
"executablePath": "/usr/bin/google-chrome-stable",
"headless": true,
"noSandbox": true
}
}
Solución 2: Usar Chromium de Snap con modo solo-adjuntar
Si debes usar Chromium de snap, configura OpenClaw para adjuntarse a un navegador iniciado manualmente:
- Actualiza la configuración:
{
"browser": {
"enabled": true,
"attachOnly": true,
"headless": true,
"noSandbox": true
}
}
- Inicia Chromium manualmente:
chromium-browser --headless --no-sandbox --disable-gpu \
--remote-debugging-port=18800 \
--user-data-dir=$HOME/.openclaw/browser/openclaw/user-data \
about:blank &
- Opcionalmente crea un servicio de usuario systemd para auto-iniciar Chrome:
# ~/.config/systemd/user/openclaw-browser.service
[Unit]
Description=OpenClaw Browser (Chrome CDP)
After=network.target
[Service]
ExecStart=/snap/bin/chromium --headless --no-sandbox --disable-gpu --remote-debugging-port=18800 --user-data-dir=%h/.openclaw/browser/openclaw/user-data about:blank
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
Habilita con: systemctl --user enable --now openclaw-browser.service
Verificar que el navegador funciona
Comprueba el estado:
curl -s http://127.0.0.1:18791/ | jq '{running, pid, chosenBrowser}'
Prueba la navegación:
curl -s -X POST http://127.0.0.1:18791/start
curl -s http://127.0.0.1:18791/tabs
Referencia de configuración
| Opción | Descripción | Valor por defecto |
|---|---|---|
browser.enabled | Habilitar control del navegador | true |
browser.executablePath | Ruta a un binario de navegador basado en Chromium (Chrome/Brave/Edge/Chromium) | auto-detectado (prefiere el navegador por defecto cuando es basado en Chromium) |
browser.headless | Ejecutar sin interfaz gráfica | false |
browser.noSandbox | Agregar flag --no-sandbox (necesario para algunas configuraciones Linux) | false |
browser.attachOnly | No lanzar navegador, solo adjuntarse al existente | false |
browser.cdpPort | Puerto del Chrome DevTools Protocol | 18800 |
Problema: “Chrome extension relay is running, but no tab is connected”
Estás usando el perfil chrome (relay de extensión). Espera que la extensión de navegador
de OpenClaw esté adjuntada a una pestaña activa.
Opciones de solución:
- Usa el navegador gestionado:
openclaw browser start --browser-profile openclaw(o establecebrowser.defaultProfile: "openclaw"). - Usa el relay de extensión: instala la extensión, abre una pestaña y haz clic en el ícono de la extensión de OpenClaw para adjuntarla.
Notas:
- El perfil
chromeusa tu navegador basado en Chromium por defecto del sistema cuando es posible. - Los perfiles locales
openclawauto-asignancdpPort/cdpUrl; solo establece esos para CDP remoto.