WSL2 + Windows + remote Chrome CDP openclaw 浏览器自动化

文章目录

资料:https://docs.openclaw.ai/tools/browser-wsl2-windows-remote-cdp-troubleshooting

在WSL2中通过OpenClaw操作Windows端的Chrome,核心是基于Chrome DevTools Protocol (CDP) 实现跨WSL2/Windows的远程控制,优先选择Raw remote CDP 模式,需完成Windows端Chrome开启远程调试、WSL2网络连通验证、OpenClaw配置、端到端验证四步核心操作,以下是详细步骤和实操方法:

一、前提准备:Windows端开启Chrome远程调试

  1. 关闭所有Chrome窗口,通过命令提示符/PowerShell启动Chrome并开启远程调试端口(默认端口9222),执行命令:
bash 复制代码
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\Users\wiljz\AppData\Local\OpenClaw\ChromeProfile"
  1. 本地验证Chrome CDP服务:在Windows端执行curl命令,确认端口正常提供服务,返回JSON即成功:
bash 复制代码
curl http://127.0.0.1:9222/json/version
curl http://127.0.0.1:9222/json/list

(若失败,无需调试OpenClaw,先排查Chrome启动参数或端口占用)

类似如下错误


2.1 排查过程

  • 排查9222端口哪个应用占用

    netstat -ano | findstr ":9222"

看 PID 4416 是什么程序:

复制代码
tasklist | findstr 4416

被sychost系统占用了9222端口

查看 4416里跑的是什么服务

复制代码
tasklist /svc | findstr 4416

既然端口9222被占用,那就换个端口9223,重复上述步骤。


二、网络连通:验证WSL2可访问Windows的CDP端点

  1. 获取Windows的主机IP(需是WSL2可访问的地址,如本地局域网IP, window系统用ipconfig查看);

  2. 在WSL2终端中,测试对Windows CDP端口的访问,命令与Windows端类似,替换为Windows IP:

bash 复制代码
curl http://172.22.144.1:9223/json/version
curl http://172.22.144.1:9223/json/list
  1. 成功标准/json/version返回浏览器/协议版本JSON,/json/list返回JSON(无打开页面时为空数组也可);

  2. 失败排查 :若访问失败,需检查Windows防火墙是否放行9223端口、是否配置端口转发(需管理员权限执行netsh interface portproxy)、WSL2与Windows的网络互通性。


  • 检查防火墙是否放行 9223 端口
    设置-》windows安全中心-》防火墙和网络保护-》高级设置-》入站规则

  • 或者命令:netsh advfirewall firewall show rule name=all dir=in | findstr "9223"

  • 没有则添加规则

    netsh advfirewall firewall add rule name="Allow Chrome CDP 9223 (WSL2)" dir=in action=allow protocol=TCP localport=9223 remoteip=localsubnet profile=any enable=yes

  • 查看端口是否转发

    netsh interface portproxy show all

正常如下:

没有则执行:

复制代码
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=9223 connectaddress=127.0.0.1 connectport=9223

三、核心配置:OpenClaw添加远程Chrome配置文件

OpenClaw的浏览器配置在~/.openclaw/openclaw.json中,需添加指向Windows CDP端点的远程配置文件,步骤如下:

  1. 编辑配置文件,写入以下内容,替换WINDOWS_HOST_OR_IP(ipconfig命令查看)为实际的Windows可访问IP
json 复制代码
{
    "browser": {
        "enabled": true,
        "defaultProfile": "remote",
        "profiles": {
            "remote": {
                "cdpUrl": "http://WINDOWS_HOST_OR_IP:9223",
                "attachOnly": true,
                "color": "#00AA00"
            }
        }
    }
}
  1. 关键配置说明
  • cdpUrl:必须是WSL2可访问 的Windows地址,不能用仅Windows本地的127.0.0.1

  • attachOnly: true:表示仅连接外部已启动的Chrome(Windows端手动启动的实例),不由OpenClaw管理启动;

  • defaultProfile: "remote":将远程配置设为默认,后续命令可省略--browser-profile参数。

四、端到端验证:WSL2中通过OpenClaw操作Windows Chrome

复制代码
配置完成后,在WSL2终端执行OpenClaw命令,验证对Windows Chrome的控制,核心操作如下:
  1. 打开指定网页:在Windows Chrome中新建标签页并打开目标网址:
bash 复制代码
openclaw browser --browser-profile remote open https://finance.sina.com.cn/nmetal/
  1. 查看Chrome标签页:验证OpenClaw可识别Windows Chrome的标签页,返回标签信息即成功:
bash 复制代码
openclaw browser tabs --browser-profile remote
  1. 其他常用操作:验证截图、页面导航等后续操作,均基于该远程配置:
bash 复制代码
# 页面截图
openclaw browser screenshot --browser-profile remote
# 导航到新网址
openclaw browser navigate https://github.com --browser-profile remote
  1. 成功标准 :所有命令执行后,Windows端Chrome会同步执行对应操作,WSL2终端返回无错误信息。

五、Control UI辅助验证(可选)

若需通过可视化界面操作,可在Windows端打开OpenClaw的Control UI,必须使用Windows本地localhost,避免安全策略拦截:

  1. 访问地址:http://127.0.0.1:18789/(WSL2中Gateway默认运行在该地址);

  2. 验证要点:确保页面源与gateway.controlUi.allowedOrigins配置匹配、token/pairing认证正常,避免将UI认证问题误判为CDP连接问题。

六、常见错误排查(关键)

若操作失败,根据错误提示定位层级问题,避免混淆排查方向:

  1. Remote CDP for profile "remote" is not reachable:WSL2无法访问配置的cdpUrl,重新检查Windows IP和端口连通性;

  2. gateway timeout after 1500ms:CDP端点访问缓慢或不可达,排查网络转发/防火墙;

  3. control-ui-insecure-auth:Control UI的源/安全上下文问题,与CDP无关,改用127.0.0.1访问UI;

  4. No Chrome tabs found for profile="user":错误使用了本地user配置,需切换为remote远程配置;

  5. token_missing/pairing required:认证/设备授权问题,检查OpenClaw的auth配置。

七、快速排障清单

每次操作失败后,按以下顺序快速验证,逐一排除问题:

  1. Windows端curl http://127.0.0.1:9222/json/version是否成功?

  2. WSL2端curl http://WINDOWS_HOST_OR_IP:9222/json/version是否成功?

  3. OpenClaw配置的cdpUrl是否与WSL2测试的地址完全一致?

  4. Control UI是否使用http://127.0.0.1:18789/而非LAN IP?

  5. 是否错误使用existing-session跨WSL2/Windows(应使用raw remote CDP)?

核心原则

WSL2中OpenClaw操作Windows Chrome的关键是分层验证:先确保Windows Chrome自身CDP服务正常,再验证WSL2与Windows的网络连通,最后调试OpenClaw配置和UI认证,避免多个独立问题叠加导致排查方向错误。

相关推荐
chaofan9802 小时前
深度实战:2026年大模型应用如何解决“接口抖动”?五大主流平台横向测评
人工智能·自动化·api·claude opus
桌面运维家3 小时前
解决Windows 10打印机脱机:端口、驱动、网络故障排除
windows·stm32·单片机
kyriewen113 小时前
为什么我的代码在测试环境跑得好好的,一到用户电脑就崩?原来凶手躲在地址栏旁边
开发语言·前端·javascript·chrome·ecmascript·html5
liwulin05063 小时前
【ROS2】【ESP32S3纯透传方案】ESP32S3+WINDOWS+VMware+ROS2+YDLIDA X导航完整落地方案
windows·stm32·单片机
AxureMost4 小时前
MTools 0.0.12-beta 全能工具箱
windows·开源软件
Java后端的Ai之路4 小时前
Playwright是微软开源的浏览器自动化库:从入门到精通的实战指南
运维·microsoft·自动化·浏览器自动化·playwright
牛奶咖啡134 小时前
DevOps自动化运维实践_搭建UEFI网络引导的自动安装Ubuntu20及其更高版本系统
运维·自动化·devops·cloud-init·cloud-init自动应答·ubuntu24系统自动化安装·uefi网络引导自动安装部署
夜阑卧听风吹雨,铁马冰河入梦来5 小时前
字节Midscene 与智谱 AutoGLM-Phone 工具对比
ai·自动化
喵手5 小时前
Python爬虫实战:手把手教你Python 自动化构建志愿服务岗位结构化数据库!
爬虫·python·自动化·数据采集·爬虫实战·零基础python爬虫教学·志愿服务岗位结构数据库打造