Choisir d’abord le bon mode de navigateur
Option 1 : CDP distant brut de WSL2 vers Windows
Utilisez un profil de navigateur distant pointant depuis WSL2 vers un point de terminaison CDP de Chrome sous Windows. Choisissez cette option lorsque le Gateway reste dans WSL2, que Chrome s’exécute sous Windows et que le contrôle du navigateur doit franchir la frontière WSL2/Windows.Option 2 : MCP Chrome local à l’hôte
Utilisez le piloteexisting-session (profil user) uniquement lorsque le Gateway s’exécute
sur le même hôte que Chrome, que vous souhaitez utiliser l’état local du navigateur connecté, que vous
n’avez pas besoin d’un transport du navigateur entre plusieurs hôtes et que vous n’avez pas besoin de responsebody,
de l’exportation PDF, de l’interception des téléchargements ni d’actions par lots (les profils MCP Chrome ne
les prennent pas en charge).
Pour un Gateway sous WSL2 avec Chrome sous Windows, utilisez le CDP distant brut. MCP Chrome est
local à l’hôte et ne constitue pas un pont entre WSL2 et Windows.
Architecture opérationnelle
- WSL2 exécute le Gateway sur
127.0.0.1:18789 - Windows ouvre la Control UI dans un navigateur normal à l’adresse
http://127.0.0.1:18789/ - Chrome sous Windows expose un point de terminaison CDP sur le port
9222 - WSL2 peut atteindre ce point de terminaison CDP sous Windows
- OpenClaw fait pointer un profil de navigateur vers l’adresse accessible depuis WSL2
Règle essentielle pour la Control UI
Lorsque l’interface est ouverte depuis Windows, utilisez l’hôte local Windows, sauf si vous disposez d’une configuration HTTPS intentionnelle :Valider couche par couche
Procédez de haut en bas ; ne sautez aucune étape. Corriger une couche peut tout de même laisser visible une autre erreur provenant d’une couche inférieure.Couche 1 : vérifier que Chrome fournit CDP sous Windows
Diagnostiquer IPv4 et IPv6 avant de modifier portproxy
Chromium tente d’abord de lier le débogage distant à127.0.0.1 et ne se rabat sur
[::1] que si la liaison IPv4 échoue. Une règle v4tov4 persistante qui écoute sur
127.0.0.1:9222 peut occuper ce point de terminaison avant le démarrage de Chrome. Chrome se
rabat alors sur [::1]:9222, tandis que l’ancienne règle redirige le trafic IPv4 vers
son propre écouteur et renvoie une réponse vide.
Vérifiez les écouteurs et les règles de proxy réels depuis Windows au lieu de les déduire
de la version de Chrome :
tasklist /fi "PID eq <PID>" pour chaque PID indiqué par netstat.
-
Si
chrome.exerépond sur127.0.0.1, supprimez toute règle portproxy qui écoute également sur127.0.0.1:9222. Redirigez uniquement l’adresse de l’adaptateur Windows accessible depuis WSL2 vers127.0.0.1. -
Si
chrome.exerépond uniquement sur[::1], faites pointer l’écouteur accessible depuis WSL2 vers::1avecv4tov6au lieu de rediriger vers une adresse IPv4 inutilisée :
0.0.0.0, une adresse du réseau local ou une adresse de tailnet : CDP accorde le contrôle de
la session du navigateur.
Couche 2 : vérifier que WSL2 peut atteindre ce point de terminaison Windows
Depuis WSL2, testez l’adresse exacte que vous prévoyez d’utiliser danscdpUrl :
/json/versionrenvoie du JSON avec les métadonnées Browser / Protocol-Version/json/listrenvoie du JSON (un tableau vide convient si aucune page n’est ouverte)
Couche 3 : configurer le bon profil de navigateur
Faites pointer OpenClaw vers l’adresse accessible depuis WSL2 :- utilisez l’adresse accessible depuis WSL2, et non celle qui fonctionne uniquement sous Windows
- conservez
attachOnly: truepour les navigateurs gérés de manière externe cdpUrlpeut utiliserhttp://,https://,ws://ouwss://- utilisez HTTP(S) lorsque vous souhaitez qu’OpenClaw découvre
/json/version - utilisez WS(S) uniquement lorsque le fournisseur du navigateur vous donne une URL directe de socket DevTools
- testez la même URL avec
curlavant d’attendre qu’OpenClaw réussisse
Couche 4 : vérifier séparément la couche de la Control UI
Ouvrezhttp://127.0.0.1:18789/ depuis Windows, puis vérifiez :
- que l’origine de la page correspond à ce qu’attend
gateway.controlUi.allowedOrigins - que l’authentification par jeton ou l’appairage est correctement configuré
- que vous ne diagnostiquez pas un problème d’authentification de la Control UI comme s’il s’agissait d’un problème de navigateur
Couche 5 : vérifier le contrôle du navigateur de bout en bout
Depuis WSL2 :- l’onglet s’ouvre dans Chrome sous Windows
browser tabsrenvoie la cible- les actions ultérieures (
snapshot,screenshot,navigate) fonctionnent depuis le même profil
Erreurs courantes susceptibles d’induire en erreur
Liste de contrôle pour un diagnostic rapide
- Windows : laquelle des adresses
127.0.0.1ou[::1]répond sur/json/version, et cet écouteur appartient-il àchrome.exe? - WSL2 :
curl http://WINDOWS_HOST_OR_IP:9222/json/versionfonctionne-t-il ? - Configuration d’OpenClaw :
browser.profiles.<name>.cdpUrlutilise-t-il exactement cette adresse accessible depuis WSL2 ? - Control UI : ouvrez-vous
http://127.0.0.1:18789/plutôt qu’une adresse IP du réseau local ? - Essayez-vous d’utiliser
existing-sessionentre WSL2 et Windows au lieu du CDP distant brut ?