Усунення проблем WSL2 + Windows + віддаленого Chrome CDP
У цьому посібнику розглянуто типову конфігурацію з розділеними хостами, де:- OpenClaw Gateway працює всередині WSL2
- Chrome працює у Windows
- керування браузером має проходити через межу між WSL2 і Windows
Спочатку виберіть правильний режим браузера
У вас є два коректні варіанти:Варіант 1: Сирий віддалений CDP з WSL2 до Windows
Використовуйте профіль віддаленого браузера, який вказує з WSL2 на кінцеву точку Windows Chrome CDP. Обирайте це, коли:- Gateway залишається всередині WSL2
- Chrome працює у Windows
- вам потрібно, щоб керування браузером проходило через межу між WSL2 і Windows
Варіант 2: Host-local Chrome MCP
Використовуйтеexisting-session / user лише тоді, коли сам Gateway працює на тому самому хості, що й Chrome.
Обирайте це, коли:
- OpenClaw і Chrome працюють на одній машині
- ви хочете використовувати локальний браузерний стан із входом у систему
- вам не потрібен крос-хостовий транспорт браузера
- вам не потрібні розширені маршрути лише для managed/raw-CDP, такі як
responsebody, експорт PDF, перехоплення завантажень або пакетні дії
Робоча архітектура
Еталонна схема:- WSL2 запускає Gateway на
127.0.0.1:18789 - Windows відкриває Control UI у звичайному браузері за адресою
http://127.0.0.1:18789/ - Windows Chrome надає кінцеву точку CDP на порту
9222 - WSL2 може дістатися цієї кінцевої точки Windows CDP
- OpenClaw спрямовує профіль браузера на адресу, доступну з WSL2
Чому ця конфігурація збиває з пантелику
Кілька збоїв можуть накладатися:- WSL2 не може дістатися кінцевої точки Windows CDP
- Control UI відкрито з небезпечного джерела
gateway.controlUi.allowedOriginsне збігається з джерелом сторінки- відсутній token або pairing
- профіль браузера вказує на неправильну адресу
Критичне правило для Control UI
Коли UI відкривається з Windows, використовуйте Windows localhost, якщо тільки у вас немає навмисно налаштованого HTTPS. Використовуйте:http://127.0.0.1:18789/
Не використовуйте LAN IP за замовчуванням для Control UI. Звичайний HTTP на LAN- або tailnet-адресі може викликати поведінку insecure-origin/device-auth, яка не пов’язана безпосередньо з CDP. Див. Control UI.
Перевіряйте по шарах
Рухайтеся зверху вниз. Не перескакуйте вперед.Рівень 1: Переконайтеся, що Chrome надає CDP у Windows
Запустіть Chrome у Windows з увімкненим віддаленим налагодженням:Рівень 2: Переконайтеся, що WSL2 може дістатися цієї кінцевої точки Windows
У WSL2 перевірте точну адресу, яку плануєте використовувати вcdpUrl:
/json/versionповертає JSON з метаданими Browser / Protocol-Version/json/listповертає JSON (порожній масив — теж нормально, якщо немає відкритих сторінок)
- Windows ще не відкриває цей порт для WSL2
- адреса неправильна для боку WSL2
- ще бракує налаштування firewall / перенаправлення портів / локального проксі
Рівень 3: Налаштуйте правильний профіль браузера
Для сирого віддаленого CDP вкажіть в OpenClaw адресу, доступну з WSL2:- використовуйте адресу, доступну з WSL2, а не ту, що працює лише у Windows
- залишайте
attachOnly: trueдля браузерів, якими керує зовнішнє середовище cdpUrlможе бутиhttp://,https://,ws://абоwss://- використовуйте HTTP(S), якщо хочете, щоб OpenClaw виявляв
/json/version - використовуйте WS(S) лише тоді, коли провайдер браузера надає вам прямий URL сокета DevTools
- перевірте той самий URL через
curl, перш ніж очікувати успіху від OpenClaw
Рівень 4: Окремо перевірте шар Control UI
Відкрийте UI у Windows:http://127.0.0.1:18789/
Потім перевірте:
- джерело сторінки збігається з тим, що очікує
gateway.controlUi.allowedOrigins - автентифікацію за token або pairing налаштовано правильно
- ви не налагоджуєте проблему автентифікації Control UI так, ніби це проблема браузера
Рівень 5: Переконайтеся, що керування браузером працює наскрізно
З WSL2:- вкладка відкривається у Windows Chrome
openclaw browser tabsповертає ціль- подальші дії (
snapshot,screenshot,navigate) працюють із тим самим профілем
Поширені помилки, що вводять в оману
Сприймайте кожне повідомлення як підказку для конкретного шару:control-ui-insecure-auth- проблема джерела UI / secure-context, а не проблема транспорту CDP
token_missing- проблема конфігурації автентифікації
pairing required- проблема схвалення пристрою
Remote CDP for profile "remote" is not reachable- WSL2 не може дістатися налаштованого
cdpUrl
- WSL2 не може дістатися налаштованого
Browser attachOnly is enabled and CDP websocket for profile "remote" is not reachable- HTTP-кінцева точка відповіла, але WebSocket DevTools все одно не вдалося відкрити
- застарілі перевизначення viewport / dark-mode / locale / offline після віддаленої сесії
- виконайте
openclaw browser stop --browser-profile remote - це закриє активну сесію керування та звільнить стан емуляції Playwright/CDP без перезапуску gateway або зовнішнього браузера
- виконайте
gateway timeout after 1500ms- часто це все ще проблема досяжності CDP або повільної/недоступної віддаленої кінцевої точки
No Chrome tabs found for profile="user"- вибрано локальний профіль Chrome MCP, хоча локально на хості немає доступних вкладок
Короткий список для швидкої діагностики
- Windows: чи працює
curl http://127.0.0.1:9222/json/version? - WSL2: чи працює
curl http://WINDOWS_HOST_OR_IP:9222/json/version? - Конфігурація OpenClaw: чи використовує
browser.profiles.<name>.cdpUrlсаме цю адресу, доступну з WSL2? - Control UI: чи відкриваєте ви
http://127.0.0.1:18789/, а не LAN IP? - Чи не намагаєтеся ви використовувати
existing-sessionміж WSL2 і Windows замість сирого віддаленого CDP?
Практичний висновок
Така конфігурація зазвичай є працездатною. Найскладніше те, що транспорт браузера, безпека джерела Control UI і token/pairing можуть виходити з ладу незалежно один від одного, водночас виглядаючи для користувача схожими. Якщо сумніваєтеся:- спочатку перевірте кінцеву точку Windows Chrome локально
- потім перевірте ту саму кінцеву точку з WSL2
- лише після цього налагоджуйте конфігурацію OpenClaw або автентифікацію Control UI