OpenClaw 连接远程 Chrome 实现搜索与自动化
让你的 AI Agent 操控你电脑上的 Chrome 浏览器,完成搜索、截图、网页自动化等操作
![]() |
![]() |
背景
OpenClaw 自带浏览器控制能力,默认是启动一个隔离的 openclaw 浏览器实例。但很多时候我们需要用本机已登录的 Chrome——比如你有 Google 账号、已经登录了各种服务,或者想直接用你日常使用的浏览器环境。
通过 Chrome DevTools Protocol (CDP),OpenClaw 可以远程连接到你电脑上正在运行的 Chrome,就像调试工具一样控制它。
整体架构
┌─────────────────────┐ Tailscale / 局域网 ┌─────────────────────────┐│ OpenClaw 服务器 │ ──── CDP over HTTP ──────▶ │ Windows 本机 Chrome ││ (Linux, 无 GUI) │ │ (带调试端口 9222) ││ │ ◀─── JSON / WebSocket ──── │ ││ gateway → browser │ │ http://100.113.x.x:9222││ profile → remote │ │ │└─────────────────────┘ └─────────────────────────┘
OpenClaw 通过 cdpUrl 连接远程 Chrome,本质就是 Chrome DevTools Protocol 的标准用法。
第一步:Windows 端启动带调试端口的 Chrome
在你的 Windows 电脑上(以管理员身份打开 CMD 或 PowerShell),运行:
"C:\Program Files\Google\Chrome\Application\chrome.exe" ^ --remote-debugging-port=9222 ^ --remote-debugging-address=0.0.0.0 ^ --user-data-dir="C:\chrome-debug"
参数说明
|
|
|
|---|---|
--remote-debugging-port=9222 |
|
--remote-debugging-address=0.0.0.0 |
|
--user-data-dir="C:\chrome-debug" |
|
注意: Chrome 启动后会打开一个新窗口,这是正常的调试实例,可以关掉窗口但不要关进程。如果要后台运行,启动后最小化即可。
验证是否启动成功
在 Windows 本机验证:
curl http://127.0.0.1:9222/json/version
或者在 OpenClaw 服务器端验证(如果是局域网或 Tailscale 互通):
curl http://100.113.116.86:9222/json/version
成功会返回类似这样的 JSON:
{"Browser":"Chrome/...","Protocol-Version":"1.3","webSocketDebuggerUrl":"ws://100.113.116.86:9222/devtools/..."}
第二步:OpenClaw 配置远程 Chrome 连接
在 OpenClaw 配置文件 ~/.openclaw/openclaw.json 中添加一个远程 CDP 浏览器配置:
{ "browser": { "enabled": true, "ssrfPolicy": { "dangerouslyAllowPrivateNetwork": true // ← 关键:允许访问私有网络地址 }, "profiles": { // OpenClaw 自带的管理型浏览器(隔离环境) "openclaw": { "cdpPort": 18800, "color": "#FF4500" }, // 你的 Windows 远程 Chrome "win-chrome": { "cdpUrl": "http://100.113.116.86:9222", "color": "#4285F4" } }, "defaultProfile": "win-chrome" // 设为默认,方便 Agent 直接用 }}
为什么需要 dangerouslyAllowPrivateNetwork: true?
OpenClaw 默认有 SSRF 防护,禁止访问私有网络地址(如 192.168.x.x、10.x.x.x、100.x.x.x 等 Tailscale CGNAT 地址)。你的远程 Chrome 在内网 / Tailscale 上,所以需要显式放行。
如果你不想全局放行,也可以用 hostnameAllowlist 更精确地控制:
"ssrfPolicy": { "hostnameAllowlist": ["100.113.116.86"]}
配置生效
修改完配置文件后,重启 OpenClaw:
openclaw gateway restart
第三步:验证远程连接
# 查看所有可用浏览器配置openclaw browser profiles# 测试远程 Chrome 是否可达openclaw browser --browser-profile win-chrome tabs# 在远程 Chrome 中打开网页openclaw browser --browser-profile win-chrome open https://www.google.com# 查看页面快照(Agent 能读到的内容)openclaw browser --browser-profile win-chrome snapshot# 截图openclaw browser --browser-profile win-chrome screenshot
如果一切正常,你会看到远程 Chrome 的标签页信息以及页面内容。
第四步:让 Agent 用远程 Chrome 搜索
配置好之后,你的 Agent 就可以通过 browser tool 操控远程 Chrome 了。
方式一:在聊天中让 Agent 搜索
直接对 OpenClaw 说:
“用浏览器打开 Google 搜索 harries.blog”
Agent 会自动:
-
在远程 Chrome 打开新标签页 -
导航到 Google -
输入搜索关键词 -
读取搜索结果并返回给你
方式二:通过 CLI 快速搜索
openclaw browser --browser-profile win-chrome open https://www.google.com/search?q=harries.blogopenclaw browser --browser-profile win-chrome snapshot --urls
方式三:Agent 自动化脚本
在 OpenClaw 中可以给 Agent 这样的指令:
{"action":"open","url":"https://www.google.com","targetId":"search","profile":"win-chrome"}
进阶:在 OpenClaw 配置中固定 profile
如果你希望 Agent 默认就用远程 Chrome,把配置设为 defaultProfile:
{ "browser": { "defaultProfile": "win-chrome", "profiles": { "win-chrome": { "cdpUrl": "http://100.113.116.86:9222", "color": "#4285F4" } } }}
这样 Agent 在执行 browser() 工具调用时,默认就会使用远程 Chrome,无需每次指定 profile。
常见问题
Q: Connection reset by peer
端口能通但 Chrome 拒绝连接,最常见的原因是缺少 --remote-allow-origins=*。
新版 Chrome 默认只允许同源(127.0.0.1)的 CDP 连接,外部 IP 连接会被拒绝。
虽然你在命令中已经加了 --remote-debugging-address=0.0.0.0,建议再加一个:
chrome --remote-debugging-port=9222 ^ --remote-debugging-address=0.0.0.0 ^ --remote-allow-origins=* ^ --user-data-dir="C:\chrome-debug"
Q: Chrome 启动后没窗口
查看任务管理器确认 chrome.exe 进程是否在运行。如果没进程,说明启动失败了,检查路径是否正确。
Q: 关闭 Chrome 窗口后进程也退了
默认情况下关闭最后一个窗口会退出 Chrome。要在关闭窗口后保持后台运行,启动时加 --keep-alive-for-test:
chrome --remote-debugging-port=9222 ^ --remote-debugging-address=0.0.0.0 ^ --remote-allow-origins=* ^ --user-data-dir="C:\chrome-debug" ^ --keep-alive-for-test
Q: OpenClaw 报 SSRF 策略拒绝
Navigation blocked by SSRF policy
说明 ssrfPolicy 没有放行私有网络地址。按上文配置 dangerouslyAllowPrivateNetwork: true 或 hostnameAllowlist 即可。
Q: 多台机器怎么管理?
如果你有多台机器都启动了远程 Chrome,可以配置多个 profile:
"profiles": { "win-office": { "cdpUrl": "http://100.113.116.86:9222", "color": "#4285F4" }, "mac-home": { "cdpUrl": "http://100.90.80.70:9222", "color": "#34A853" }, "linux-vm": { "cdpUrl": "http://192.168.1.100:9222", "color": "#EA4335" }}
最后总结
通过 CDP 实现 OpenClaw 远程操控 Chrome 的关键三点:
|
|
|
|---|---|
| Windows 端 |
--remote-debugging-port=9222 和 --remote-allow-origins=* |
| OpenClaw 配置 |
profiles..cdpUrl 指向远程 Chrome,放行 SSRF 策略 |
| 使用 |
|
这套方案适合:
-
✅ 服务器无 GUI,但需要浏览器能力时 -
✅ 想用本机已登录账号的浏览器环境 -
✅ 需要在多台机器间共享浏览器控制 -
✅ 通过 Tailscale / 内网远程操控浏览器
有了这套配置,你在手机上跟 OpenClaw 说一句”帮我搜一下 XXX”,Agent 就能操控你电脑上的 Chrome 去搜索并把结果发回给你。
本节作业
-
在你的 Windows 电脑上启动带 --remote-debugging-port=9222的 Chrome,并验证本机curl http://127.0.0.1:9222/json/version能返回 JSON。 -
在 OpenClaw 配置中添加一个远程 CDP profile,指向你的 Windows 电脑地址,重启后运行 openclaw browser --browser-profile tabs确认连接成功。 -
通过 CLI 让远程 Chrome 导航到 https://www.google.com并截图。 -
尝试多配置一个 profile 指向不同的远程 Chrome(比如笔记本或另一台机器)。 -
如果你的 Chrome 关闭窗口后会退出进程,加上 --keep-alive-for-test参数再试一次。
参考资料
-
OpenClaw Browser CLI 文档 -
OpenClaw Browser 工具文档 -
OpenClaw 配置参考 – browser 配置段 -
OpenClaw 浏览器 Linux 排错 -
Chrome DevTools Protocol
夜雨聆风

