原创

OpenClaw 连接远程 Chrome 实现搜索与自动化

让你的 AI Agent 操控你电脑上的 Chrome 浏览器,完成搜索、截图、网页自动化等操作

paste-image-1782368130135.png

paste-image-1782368142498.png

背景

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 开启 CDP 调试端口
--remote-debugging-address=0.0.0.0 允许外部 IP 连接(默认只允许 127.0.0.1)
--user-data-dir="C:\chrome-debug" 指定独立用户数据目录,不影响日常 Chrome

注意: 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.x10.x.x.x100.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 会自动:

  1. 在远程 Chrome 打开新标签页
  2. 导航到 Google
  3. 输入搜索关键词
  4. 读取搜索结果并返回给你

方式二:通过 CLI 快速搜索

openclaw browser --browser-profile win-chrome open https://www.google.com/search?q=harries.blog
openclaw 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: truehostnameAllowlist 即可。

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 端 Chrome 启动带 --remote-debugging-port=9222--remote-allow-origins=*
OpenClaw 配置 添加 profiles..cdpUrl 指向远程 Chrome,放行 SSRF 策略
使用 通过 browser tool 或 CLI,指定 profile 即可操控远程浏览器

这套方案适合:

  • ✅ 服务器无 GUI,但需要浏览器能力时
  • ✅ 想用本机已登录账号的浏览器环境
  • ✅ 需要在多台机器间共享浏览器控制
  • ✅ 通过 Tailscale / 内网远程操控浏览器

有了这套配置,你在手机上跟 OpenClaw 说一句"帮我搜一下 XXX",Agent 就能操控你电脑上的 Chrome 去搜索并把结果发回给你。

本节作业

  1. 在你的 Windows 电脑上启动带 --remote-debugging-port=9222 的 Chrome,并验证本机 curl http://127.0.0.1:9222/json/version 能返回 JSON。
  2. 在 OpenClaw 配置中添加一个远程 CDP profile,指向你的 Windows 电脑地址,重启后运行 openclaw browser --browser-profile tabs 确认连接成功。
  3. 通过 CLI 让远程 Chrome 导航到 https://www.google.com 并截图。
  4. 尝试多配置一个 profile 指向不同的远程 Chrome(比如笔记本或另一台机器)。
  5. 如果你的 Chrome 关闭窗口后会退出进程,加上 --keep-alive-for-test 参数再试一次。

参考资料

正文到此结束
Loading...