先選擇正確的瀏覽器模式
選項 1:從 WSL2 到 Windows 的原始遠端 CDP
使用遠端瀏覽器設定檔,從 WSL2 指向 Windows Chrome CDP 端點。當閘道留在 WSL2 內、Chrome 在 Windows 上執行,且瀏覽器控制需要跨越 WSL2/Windows 邊界時,請選擇此模式。選項 2:主機本機 Chrome MCP
僅當閘道與 Chrome 在同一部主機上執行、你想使用本機已登入的瀏覽器狀態、 不需要跨主機瀏覽器傳輸,而且不需要responsebody、
PDF 匯出、下載攔截或批次動作時,才使用 existing-session 驅動程式
(user 設定檔)(Chrome MCP 設定檔不支援這些功能)。
若是 WSL2 閘道 + Windows Chrome,請使用原始遠端 CDP。Chrome MCP
是主機本機功能,並非 WSL2 到 Windows 的橋接器。
運作架構
- WSL2 在
127.0.0.1:18789上執行閘道 - Windows 在一般瀏覽器中透過
http://127.0.0.1:18789/開啟控制介面 - Windows Chrome 在連接埠
9222公開 CDP 端點 - WSL2 可以連線至該 Windows CDP 端點
- OpenClaw 將瀏覽器設定檔指向可從 WSL2 連線的位址
控制介面的關鍵規則
從 Windows 開啟介面時,除非你有刻意設定 HTTPS,否則請使用 Windows localhost:分層驗證
請由上而下處理,不要跳過前面的步驟。修正其中一層後, 更下層的其他錯誤仍可能顯示。第 1 層:確認 Chrome 正在 Windows 上提供 CDP
變更 portproxy 前,先診斷 IPv4 與 IPv6
Chromium 會先嘗試將遠端偵錯繫結至127.0.0.1,只有在 IPv4
繫結失敗時才改用 [::1]。在 127.0.0.1:9222 上接聽的持續性
v4tov4 規則,可能會在 Chrome 啟動前占用該端點。Chrome 接著會
改用 [::1]:9222,而舊規則會將 IPv4 流量轉送回
自己的接聽程式,並傳回空白回覆。
請從 Windows 檢查實際的接聽程式與 Proxy 規則,而不要根據 Chrome 版本推斷:
netstat 中的每個 PID 使用 tasklist /fi "PID eq <PID>"。
-
如果
chrome.exe在127.0.0.1上有回應,請移除任何同時 在127.0.0.1:9222上接聽的 portproxy 規則。只將 WSL2 可連線的 Windows 網路介面卡位址轉送至127.0.0.1。 -
如果
chrome.exe僅在[::1]上有回應,請使用v4tov6將 WSL2 可連線的接聽程式指向::1, 而不要轉送至未使用的 IPv4 位址:
0.0.0.0、LAN 位址或 tailnet 位址上公開 CDP
連接埠:CDP 會授予瀏覽器工作階段的控制權。
第 2 層:確認 WSL2 可以連線至該 Windows 端點
從 WSL2 測試你計畫在cdpUrl 中使用的確切位址:
/json/version傳回包含 Browser / Protocol-Version 中繼資料的 JSON/json/list傳回 JSON(若未開啟任何頁面,空陣列也沒問題)
第 3 層:設定正確的瀏覽器設定檔
將 OpenClaw 指向可從 WSL2 連線的位址:- 使用 WSL2 可連線的位址,而不是僅能在 Windows 上使用的位址
- 對於由外部管理的瀏覽器,請保留
attachOnly: true cdpUrl可以是http://、https://、ws://或wss://- 若要讓 OpenClaw 探索
/json/version,請使用 HTTP(S) - 只有當瀏覽器供應商提供直接的 DevTools 通訊端 URL 時,才使用 WS(S)
- 在預期 OpenClaw 成功前,先使用
curl測試相同的 URL
第 4 層:單獨驗證控制介面層
從 Windows 開啟http://127.0.0.1:18789/,然後確認:
- 頁面來源符合
gateway.controlUi.allowedOrigins的預期 - 權杖驗證或配對已正確設定
- 你沒有將控制介面驗證問題誤當成瀏覽器問題進行偵錯
第 5 層:驗證端對端瀏覽器控制
從 WSL2 執行:- 分頁會在 Windows Chrome 中開啟
browser tabs傳回目標- 後續動作(
snapshot、screenshot、navigate)可透過相同的 設定檔運作
常見的誤導性錯誤
快速分類檢查清單
- Windows:
127.0.0.1或[::1]中,哪一個在/json/version上有回應, 而且該接聽程式是否屬於chrome.exe? - WSL2:
curl http://WINDOWS_HOST_OR_IP:9222/json/version是否可用? - OpenClaw 設定:
browser.profiles.<name>.cdpUrl是否使用該確切的 WSL2 可連線位址? - 控制介面:你是否開啟
http://127.0.0.1:18789/,而不是 LAN IP? - 你是否嘗試跨 WSL2 和 Windows 使用
existing-session, 而不是原始遠端 CDP?