Tools
Pemecahan masalah WSL2 + Windows + Chrome CDP jarak jauh
Dalam pengaturan split-host umum, OpenClaw Gateway berjalan di dalam WSL2, Chrome berjalan di Windows, dan kontrol peramban harus melintasi batas WSL2 dan Windows. Pola kegagalan berlapis dari issue #39369 berarti beberapa masalah independen dapat muncul sekaligus, sehingga lapisan yang salah tampak rusak terlebih dahulu.
Pilih mode peramban yang tepat terlebih dahulu
Ada dua pola valid:
Opsi 1: CDP remote mentah dari WSL2 ke Windows
Gunakan profil peramban remote yang mengarah dari WSL2 ke endpoint CDP Chrome Windows.
Pilih ini saat:
- Gateway tetap berada di dalam WSL2
- Chrome berjalan di Windows
- Anda perlu kontrol peramban melintasi batas WSL2/Windows
Opsi 2: Chrome MCP lokal-host
Gunakan existing-session / user hanya saat Gateway itu sendiri berjalan di host yang sama dengan Chrome.
Pilih ini saat:
- OpenClaw dan Chrome berada di mesin yang sama
- Anda menginginkan status peramban lokal yang sudah masuk
- Anda tidak memerlukan transport peramban lintas-host
- Anda tidak memerlukan rute lanjutan khusus managed/raw-CDP seperti
responsebody, ekspor PDF, intersepsi unduhan, atau tindakan batch
Untuk WSL2 Gateway + Windows Chrome, pilih CDP remote mentah. Chrome MCP bersifat lokal-host, bukan jembatan WSL2-ke-Windows.
Arsitektur yang berfungsi
Bentuk referensi:
- WSL2 menjalankan Gateway di
127.0.0.1:18789 - Windows membuka UI Kontrol di peramban normal pada
http://127.0.0.1:18789/ - Windows Chrome mengekspos endpoint CDP pada port
9222 - WSL2 dapat menjangkau endpoint CDP Windows tersebut
- OpenClaw mengarahkan profil peramban ke alamat yang dapat dijangkau dari WSL2
Mengapa pengaturan ini membingungkan
Beberapa kegagalan dapat tumpang tindih:
- WSL2 tidak dapat menjangkau endpoint CDP Windows
- UI Kontrol dibuka dari origin yang tidak aman
gateway.controlUi.allowedOriginstidak cocok dengan origin halaman- token atau pairing hilang
- profil peramban mengarah ke alamat yang salah
Karena itu, memperbaiki satu lapisan masih dapat menyisakan error berbeda yang terlihat.
Aturan penting untuk UI Kontrol
Saat UI dibuka dari Windows, gunakan localhost Windows kecuali Anda memiliki pengaturan HTTPS yang disengaja.
Gunakan:
http://127.0.0.1:18789/
Jangan default ke IP LAN untuk UI Kontrol. HTTP biasa pada alamat LAN atau tailnet dapat memicu perilaku insecure-origin/device-auth yang tidak terkait dengan CDP itu sendiri. Lihat UI Kontrol.
Validasi berlapis
Kerjakan dari atas ke bawah. Jangan melompat.
Lapisan 1: Verifikasi Chrome menyajikan CDP di Windows
Mulai Chrome di Windows dengan remote debugging diaktifkan:
chrome.exe --remote-debugging-port=9222
Dari Windows, verifikasi Chrome itu sendiri terlebih dahulu:
curl http://127.0.0.1:9222/json/version
curl http://127.0.0.1:9222/json/list
Jika ini gagal di Windows, OpenClaw belum menjadi masalahnya.
Lapisan 2: Verifikasi WSL2 dapat menjangkau endpoint Windows tersebut
Dari WSL2, uji alamat persis yang akan Anda gunakan di cdpUrl:
curl http://WINDOWS_HOST_OR_IP:9222/json/version
curl http://WINDOWS_HOST_OR_IP:9222/json/list
Hasil yang baik:
/json/versionmengembalikan JSON dengan metadata Browser / Protocol-Version/json/listmengembalikan JSON (array kosong tidak masalah jika tidak ada halaman yang terbuka)
Jika ini gagal:
- Windows belum mengekspos port ke WSL2
- alamatnya salah untuk sisi WSL2
- firewall / port forwarding / proxy lokal masih belum ada
Perbaiki itu sebelum menyentuh konfigurasi OpenClaw.
Lapisan 3: Konfigurasikan profil peramban yang benar
Untuk CDP remote mentah, arahkan OpenClaw ke alamat yang dapat dijangkau dari WSL2:
{
browser: {
enabled: true,
defaultProfile: "remote",
profiles: {
remote: {
cdpUrl: "http://WINDOWS_HOST_OR_IP:9222",
attachOnly: true,
color: "#00AA00",
},
},
},
}
Catatan:
- gunakan alamat yang dapat dijangkau WSL2, bukan yang hanya berfungsi di Windows
- pertahankan
attachOnly: trueuntuk peramban yang dikelola secara eksternal cdpUrldapat berupahttp://,https://,ws://, atauwss://- gunakan HTTP(S) saat Anda ingin OpenClaw menemukan
/json/version - gunakan WS(S) hanya saat penyedia peramban memberi Anda URL soket DevTools langsung
- uji URL yang sama dengan
curlsebelum mengharapkan OpenClaw berhasil
Lapisan 4: Verifikasi lapisan UI Kontrol secara terpisah
Buka UI dari Windows:
http://127.0.0.1:18789/
Lalu verifikasi:
- origin halaman cocok dengan yang diharapkan
gateway.controlUi.allowedOrigins - autentikasi token atau pairing dikonfigurasi dengan benar
- Anda tidak sedang men-debug masalah autentikasi UI Kontrol seolah-olah itu masalah peramban
Halaman berguna:
Lapisan 5: Verifikasi kontrol peramban end-to-end
Dari WSL2:
openclaw browser open https://example.com --browser-profile remote
openclaw browser tabs --browser-profile remote
Hasil yang baik:
- tab terbuka di Windows Chrome
openclaw browser tabsmengembalikan target- tindakan berikutnya (
snapshot,screenshot,navigate) berfungsi dari profil yang sama
Error umum yang menyesatkan
Perlakukan setiap pesan sebagai petunjuk khusus lapisan:
control-ui-insecure-auth- masalah origin UI / secure-context, bukan masalah transport CDP
token_missing- masalah konfigurasi autentikasi
pairing required- masalah persetujuan perangkat
Remote CDP for profile "remote" is not reachable- WSL2 tidak dapat menjangkau
cdpUrlyang dikonfigurasi
- WSL2 tidak dapat menjangkau
Browser attachOnly is enabled and CDP websocket for profile "remote" is not reachable- endpoint HTTP merespons, tetapi WebSocket DevTools masih tidak dapat dibuka
- override viewport / dark-mode / locale / offline yang usang setelah sesi remote
- jalankan
openclaw browser stop --browser-profile remote - ini menutup sesi kontrol aktif dan melepaskan status emulasi Playwright/CDP tanpa memulai ulang gateway atau peramban eksternal
- jalankan
gateway timeout after 1500ms- sering kali masih terkait keterjangkauan CDP atau endpoint remote yang lambat/tidak terjangkau
No Chrome tabs found for profile="user"- profil Chrome MCP lokal dipilih saat tidak ada tab lokal-host yang tersedia
Checklist triase cepat
- Windows: apakah
curl http://127.0.0.1:9222/json/versionberfungsi? - WSL2: apakah
curl http://WINDOWS_HOST_OR_IP:9222/json/versionberfungsi? - Konfigurasi OpenClaw: apakah
browser.profiles.<name>.cdpUrlmenggunakan alamat persis yang dapat dijangkau WSL2 itu? - UI Kontrol: apakah Anda membuka
http://127.0.0.1:18789/alih-alih IP LAN? - Apakah Anda mencoba menggunakan
existing-sessionmelintasi WSL2 dan Windows alih-alih CDP remote mentah?
Kesimpulan praktis
Pengaturan ini biasanya layak digunakan. Bagian sulitnya adalah transport peramban, keamanan origin UI Kontrol, dan token/pairing masing-masing dapat gagal secara independen sambil tampak serupa dari sisi pengguna.
Jika ragu:
- verifikasi endpoint Windows Chrome secara lokal terlebih dahulu
- verifikasi endpoint yang sama dari WSL2 berikutnya
- baru kemudian debug konfigurasi OpenClaw atau autentikasi UI Kontrol