Scegli prima la modalità browser corretta
Opzione 1: CDP remoto diretto da WSL2 a Windows
Usa un profilo browser remoto che da WSL2 punti a un endpoint CDP di Chrome su Windows. Scegli questa opzione quando il Gateway rimane all’interno di WSL2, Chrome viene eseguito su Windows e il controllo del browser deve attraversare il confine tra WSL2 e Windows.Opzione 2: Chrome MCP locale all’host
Usa il driverexisting-session (profilo user) solo quando il Gateway viene eseguito
sullo stesso host di Chrome, vuoi utilizzare lo stato locale del browser con accesso effettuato, non
ti serve il trasporto del browser tra host e non ti servono responsebody,
l’esportazione in PDF, l’intercettazione dei download o le azioni in batch (i profili Chrome MCP non
supportano queste funzionalità).
Per Gateway WSL2 + Chrome su Windows, usa CDP remoto diretto. Chrome MCP è
locale all’host, non è un ponte tra WSL2 e Windows.
Architettura funzionante
- WSL2 esegue il Gateway su
127.0.0.1:18789 - Windows apre la UI di controllo in un browser normale all’indirizzo
http://127.0.0.1:18789/ - Chrome su Windows espone un endpoint CDP sulla porta
9222 - WSL2 può raggiungere tale endpoint CDP di Windows
- OpenClaw indirizza un profilo browser all’indirizzo raggiungibile da WSL2
Regola fondamentale per la UI di controllo
Quando la UI viene aperta da Windows, usa il localhost di Windows, a meno che tu non disponga di una configurazione HTTPS intenzionale:Convalida per livelli
Procedi dall’alto verso il basso; non saltare passaggi. La correzione di un livello può comunque lasciare visibile un errore diverso proveniente da un livello successivo.Livello 1: verifica che Chrome esponga CDP su Windows
Diagnostica IPv4 e IPv6 prima di modificare portproxy
Chromium tenta prima di associare il debug remoto a127.0.0.1 e passa a
[::1] solo se l’associazione IPv4 non riesce. Una regola v4tov4 persistente in ascolto su
127.0.0.1:9222 può occupare tale endpoint prima dell’avvio di Chrome. Chrome quindi
passa a [::1]:9222, mentre la vecchia regola inoltra il traffico IPv4 nuovamente al
proprio listener e restituisce una risposta vuota.
Controlla i listener e le regole proxy effettivi da Windows, anziché dedurli
dalla versione di Chrome:
tasklist /fi "PID eq <PID>" per ogni PID restituito da netstat.
-
Se
chrome.exerisponde su127.0.0.1, rimuovi qualsiasi regola portproxy che sia anch’essa in ascolto su127.0.0.1:9222. Inoltra soltanto l’indirizzo dell’adattatore Windows raggiungibile da WSL2 verso127.0.0.1. -
Se
chrome.exerisponde solo su[::1], indirizza il listener raggiungibile da WSL2 a::1conv4tov6, invece di inoltrarlo a un indirizzo IPv4 inutilizzato:
0.0.0.0, su un indirizzo LAN o su un indirizzo tailnet: CDP concede il controllo della
sessione del browser.
Livello 2: verifica che WSL2 possa raggiungere tale endpoint di Windows
Da WSL2, verifica l’indirizzo esatto che intendi usare incdpUrl:
/json/versionrestituisce JSON con i metadati Browser / Protocol-Version/json/listrestituisce JSON (un array vuoto va bene se non ci sono pagine aperte)
Livello 3: configura il profilo browser corretto
Indirizza OpenClaw all’indirizzo raggiungibile da WSL2:- usa l’indirizzo raggiungibile da WSL2, non quello che funziona soltanto su Windows
- mantieni
attachOnly: trueper i browser gestiti esternamente cdpUrlpuò esserehttp://,https://,ws://owss://- usa HTTP(S) quando vuoi che OpenClaw rilevi
/json/version - usa WS(S) solo quando il fornitore del browser ti fornisce un URL diretto per il socket DevTools
- verifica lo stesso URL con
curlprima di aspettarti che OpenClaw funzioni
Livello 4: verifica separatamente il livello della UI di controllo
Aprihttp://127.0.0.1:18789/ da Windows, quindi verifica:
- che l’origine della pagina corrisponda a quanto previsto da
gateway.controlUi.allowedOrigins - che l’autenticazione tramite token o l’associazione sia configurata correttamente
- che tu non stia diagnosticando un problema di autenticazione della UI di controllo come se fosse un problema del browser
Livello 5: verifica il controllo del browser end-to-end
Da WSL2:- la scheda si apre in Chrome su Windows
browser tabsrestituisce la destinazione- le azioni successive (
snapshot,screenshot,navigate) funzionano con lo stesso profilo
Errori fuorvianti comuni
Elenco di controllo per una diagnosi rapida
- Windows: quale tra
127.0.0.1e[::1]risponde su/json/versione tale listener appartiene achrome.exe? - WSL2:
curl http://WINDOWS_HOST_OR_IP:9222/json/versionfunziona? - Configurazione di OpenClaw:
browser.profiles.<name>.cdpUrlusa esattamente tale indirizzo raggiungibile da WSL2? - UI di controllo: stai aprendo
http://127.0.0.1:18789/anziché un indirizzo IP LAN? - Stai tentando di usare
existing-sessiontra WSL2 e Windows invece del CDP remoto diretto?