Fehlerbehebung für WSL2 + Windows + remote Chrome CDP
Diese Anleitung behandelt das häufige Split-Host-Setup, bei dem:- OpenClaw Gateway innerhalb von WSL2 läuft
- Chrome unter Windows läuft
- Browser-Steuerung die Grenze zwischen WSL2 und Windows überqueren muss
Wählen Sie zuerst den richtigen Browser-Modus
Sie haben zwei gültige Muster:Option 1: Rohes remote CDP von WSL2 nach Windows
Verwenden Sie ein Remote-Browserprofil, das von WSL2 auf einen Windows-Chrome-CDP-Endpunkt zeigt. Wählen Sie dies, wenn:- das Gateway innerhalb von WSL2 bleibt
- Chrome unter Windows läuft
- die Browser-Steuerung die Grenze zwischen WSL2 und Windows überqueren muss
Option 2: Host-lokales Chrome MCP
Verwenden Sieexisting-session / user nur, wenn das Gateway selbst auf demselben Host wie Chrome läuft.
Wählen Sie dies, wenn:
- OpenClaw und Chrome auf derselben Maschine laufen
- Sie den lokal angemeldeten Browser-Zustand verwenden möchten
- Sie keinen hostübergreifenden Browser-Transport benötigen
- Sie keine erweiterten verwalteten/rohen-CDP-only-Routen wie
responsebody, PDF- Export, Download-Abfangung oder Batch-Aktionen benötigen
Funktionierende Architektur
Referenzform:- WSL2 führt das Gateway auf
127.0.0.1:18789aus - Windows öffnet die Control UI in einem normalen Browser unter
http://127.0.0.1:18789/ - Windows-Chrome stellt einen CDP-Endpunkt auf Port
9222bereit - WSL2 kann diesen Windows-CDP-Endpunkt erreichen
- OpenClaw verweist ein Browserprofil auf die Adresse, die von WSL2 aus erreichbar ist
Warum dieses Setup verwirrend ist
Mehrere Fehler können sich überlagern:- WSL2 kann den Windows-CDP-Endpunkt nicht erreichen
- die Control UI wird von einem unsicheren Ursprung aus geöffnet
gateway.controlUi.allowedOriginsstimmt nicht mit dem Seitenursprung überein- Token oder Pairing fehlt
- das Browserprofil zeigt auf die falsche Adresse
Kritische Regel für die Control UI
Wenn die UI von Windows aus geöffnet wird, verwenden Sie Windows-Localhost, es sei denn, Sie haben absichtlich ein HTTPS-Setup. Verwenden Sie:http://127.0.0.1:18789/
Verwenden Sie für die Control UI nicht standardmäßig eine LAN-IP. Reines HTTP über eine LAN- oder Tailnet-Adresse kann Verhalten mit unsicherem Ursprung/Geräteauthentifizierung auslösen, das nichts mit CDP selbst zu tun hat. Siehe Control UI.
In Schichten validieren
Arbeiten Sie von oben nach unten. Überspringen Sie nichts.Schicht 1: Prüfen, ob Chrome unter Windows CDP bereitstellt
Starten Sie Chrome unter Windows mit aktiviertem Remote-Debugging:Schicht 2: Prüfen, ob WSL2 diesen Windows-Endpunkt erreichen kann
Testen Sie von WSL2 aus genau die Adresse, die Sie incdpUrl verwenden möchten:
/json/versiongibt JSON mit Metadaten zu Browser / Protocol-Version zurück/json/listgibt JSON zurück (ein leeres Array ist in Ordnung, wenn keine Seiten geöffnet sind)
- Windows stellt den Port für WSL2 noch nicht bereit
- die Adresse ist auf der WSL2-Seite falsch
- Firewall / Portweiterleitung / lokales Proxying fehlt noch
Schicht 3: Das richtige Browserprofil konfigurieren
Für rohes remote CDP zeigen Sie OpenClaw auf die Adresse, die von WSL2 aus erreichbar ist:- verwenden Sie die von WSL2 aus erreichbare Adresse, nicht die, die nur unter Windows funktioniert
- belassen Sie
attachOnly: truefür extern verwaltete Browser cdpUrlkannhttp://,https://,ws://oderwss://sein- verwenden Sie HTTP(S), wenn OpenClaw
/json/versionerkennen soll - verwenden Sie WS(S) nur, wenn der Browser-Provider Ihnen eine direkte DevTools-Socket-URL gibt
- testen Sie dieselbe URL mit
curl, bevor Sie erwarten, dass OpenClaw erfolgreich ist
Schicht 4: Die Schicht der Control UI getrennt prüfen
Öffnen Sie die UI von Windows aus:http://127.0.0.1:18789/
Prüfen Sie dann:
- der Seitenursprung stimmt mit dem überein, was
gateway.controlUi.allowedOriginserwartet - Token-Authentifizierung oder Pairing ist korrekt konfiguriert
- Sie debuggen kein Authentifizierungsproblem der Control UI, als wäre es ein Browserproblem
Schicht 5: Ende-zu-Ende-Browser-Steuerung prüfen
Von WSL2 aus:- der Tab wird in Windows-Chrome geöffnet
openclaw browser tabsgibt das Ziel zurück- spätere Aktionen (
snapshot,screenshot,navigate) funktionieren mit demselben Profil
Häufige irreführende Fehler
Behandeln Sie jede Meldung als schichtspezifischen Hinweis:control-ui-insecure-auth- Problem mit UI-Ursprung / sicherem Kontext, kein CDP-Transportproblem
token_missing- Problem mit der Authentifizierungskonfiguration
pairing required- Problem mit der Gerätefreigabe
Remote CDP for profile "remote" is not reachable- WSL2 kann die konfigurierte
cdpUrlnicht erreichen
- WSL2 kann die konfigurierte
Browser attachOnly is enabled and CDP websocket for profile "remote" is not reachable- der HTTP-Endpunkt hat geantwortet, aber der DevTools-WebSocket konnte trotzdem nicht geöffnet werden
- veraltete Viewport-/Dark-Mode-/Locale-/Offline-Überschreibungen nach einer Remote-Sitzung
- führen Sie
openclaw browser stop --browser-profile remoteaus - dies schließt die aktive Steuerungssitzung und gibt den Emulationszustand von Playwright/CDP frei, ohne das Gateway oder den externen Browser neu zu starten
- führen Sie
gateway timeout after 1500ms- oft immer noch ein Problem mit CDP-Erreichbarkeit oder ein langsamer/nicht erreichbarer Remote-Endpunkt
No Chrome tabs found for profile="user"- lokales Chrome-MCP-Profil ausgewählt, obwohl keine host-lokalen Tabs verfügbar sind
Schnelle Checkliste zur Triage
- Windows: funktioniert
curl http://127.0.0.1:9222/json/version? - WSL2: funktioniert
curl http://WINDOWS_HOST_OR_IP:9222/json/version? - OpenClaw-Konfiguration: verwendet
browser.profiles.<name>.cdpUrlgenau diese von WSL2 aus erreichbare Adresse? - Control UI: öffnen Sie
http://127.0.0.1:18789/statt einer LAN-IP? - Versuchen Sie,
existing-sessionüber WSL2 und Windows hinweg zu verwenden statt rohem remote CDP?
Praktische Schlussfolgerung
Das Setup ist normalerweise praktikabel. Der schwierige Teil ist, dass Browser-Transport, Ursprungssicherheit der Control UI und Token/Pairing jeweils unabhängig voneinander fehlschlagen können, während sie aus Nutzersicht ähnlich aussehen. Im Zweifel:- prüfen Sie zuerst den Windows-Chrome-Endpunkt lokal
- prüfen Sie denselben Endpunkt danach von WSL2 aus
- debuggen Sie erst dann die OpenClaw-Konfiguration oder die Authentifizierung der Control UI