Устранение проблем с браузером (Linux)

Проблема: "Failed to start Chrome CDP on port 18800"

Сервер управления браузером OpenClaw не может запустить Chrome/Brave/Edge/Chromium с ошибкой:

{"error":"Error: Failed to start Chrome CDP on port 18800 for profile \"openclaw\"."}

Причина

На Ubuntu (и многих дистрибутивах Linux) установка Chromium по умолчанию является snap-пакетом. Изоляция AppArmor в snap мешает тому, как OpenClaw запускает и контролирует процесс браузера.

Команда apt install chromium устанавливает заглушку пакета, которая перенаправляет на snap:

Note, selecting 'chromium-browser' instead of 'chromium'
chromium-browser is already the newest version (2:1snap1-0ubuntu2).

Это НЕ настоящий браузер — это просто обертка.

Решение 1: Установите Google Chrome (Рекомендуется)

Установите официальный пакет Google Chrome .deb, который не изолирован 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  # если есть ошибки зависимостей

Затем обновите ваш конфиг OpenClaw (~/.openclaw/openclaw.json):

{
  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/google-chrome-stable",
    "headless": true,
    "noSandbox": true
  }
}

Решение 2: Используйте Snap Chromium с режимом только подключения

Если вы должны использовать snap Chromium, настройте OpenClaw на подключение к вручную запущенному браузеру:

  1. Обновите конфиг:
{
  "browser": {
    "enabled": true,
    "attachOnly": true,
    "headless": true,
    "noSandbox": true
  }
}
  1. Запустите Chromium вручную:
chromium-browser --headless --no-sandbox --disable-gpu \
  --remote-debugging-port=18800 \
  --user-data-dir=$HOME/.openclaw/browser/openclaw/user-data \
  about:blank &
  1. Опционально создайте пользовательский сервис systemd для автоматического запуска 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

Включите с помощью: systemctl --user enable --now openclaw-browser.service

Проверка работы браузера

Проверьте статус:

curl -s http://127.0.0.1:18791/ | jq '{running, pid, chosenBrowser}'

Тестирование просмотра:

curl -s -X POST http://127.0.0.1:18791/start
curl -s http://127.0.0.1:18791/tabs

Справочник по конфигурации

ОпцияОписаниеПо умолчанию
browser.enabledВключить управление браузеромtrue
browser.executablePathПуть к бинарному файлу браузера на основе Chromium (Chrome/Brave/Edge/Chromium)автоопределение (предпочитает браузер по умолчанию, если основан на Chromium)
browser.headlessЗапуск без графического интерфейсаfalse
browser.noSandboxДобавить флаг --no-sandbox (необходимо для некоторых настроек Linux)false
browser.attachOnlyНе запускать браузер, только подключаться к существующемуfalse
browser.cdpPortПорт Chrome DevTools Protocol18800

Проблема: "Chrome extension relay is running, but no tab is connected"

Вы используете профиль chrome (релей расширения). Он ожидает, что расширение OpenClaw для браузера будет подключено к живой вкладке.

Варианты исправления:

  1. Используйте управляемый браузер: openclaw browser start --browser-profile openclaw (или установите browser.defaultProfile: "openclaw").
  2. Используйте релей расширения: установите расширение, откройте вкладку и нажмите на иконку расширения OpenClaw для подключения.

Примечания:

  • Профиль chrome использует ваш системный браузер Chromium по умолчанию, когда это возможно.
  • Локальные профили openclaw автоматически назначают cdpPort/cdpUrl; устанавливайте их только для удаленного CDP.