Chrome / Edge 远程调试对接 AI 代理:三步开启 CDP 调试端口

Chrome / Edge 远程调试对接 AI 代理:三步开启 CDP 调试端口

很多 AI 编码代理、浏览器自动化工具都需要「接管」你本地的 Chrome/Edge 来操作网页。底层统一走 Chrome DevTools Protocol(CDP)。本文讲清通用三步:开调试端口、验证、排错。至于具体代理工具里的私有配置项,各家用各家的,本文不绑定某一家。

一、核心原理

Chrome 和 Edge(都是 Chromium 内核)都内置了远程调试能力。启动浏览器时加上调试参数,它就会在本地起一个 HTTP/WebSocket 服务(默认 9222 端口),外部程序通过这套 CDP 协议就能:

  • 列出/新建标签页(/json/list/json/new);
  • 通过 webSocketDebuggerUrl 建立 WebSocket 控制页面(点击、输入、截图、跑 JS);
  • 复用你已登录的浏览器会话,免去重复登录。

只要「浏览器侧开了调试端口 + 代理侧指向该端口」,对接就完成了。Chrome 和 Edge 逻辑完全通用,只是启动命令和调试入口略有差异。

二、步骤 1:开启远程调试

方式 A:GUI 入口(最省事)

  • Chrome:地址栏打开 chrome://inspect/#remote-debugging,勾选允许远程调试;
  • Edge:地址栏打开 edge://inspect/#remote-debugging

页面显示 Server running at: 127.0.0.1:9222 即表示端口已开。

方式 B:命令行启动(更可控,推荐)

用独立用户数据目录启动,避免复用无调试参数的旧窗口:

# Chrome(macOS 示例)
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --remote-debugging-port=9222 \
  --user-data-dir=/tmp/chrome-debug &

# Edge(macOS 示例)
/Applications/Microsoft\ Edge.app/Contents/MacOS/Microsoft\ Edge \
  --remote-debugging-port=9222 \
  --user-data-dir=/tmp/edge-debug &

--user-data-dir 很关键:它让本次启动用全新会话,不会和已经打开的普通浏览器窗口冲突。

三、步骤 2:验证端口可用

curl http://127.0.0.1:9222/json/version

正常返回类似:

{
  "Browser": "Chrome/123.0.0.0",
  "Protocol-Version": "1.3",
  "webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/xxxxxx"
}

能拿到 webSocketDebuggerUrl,说明 CDP 已就绪,代理侧连这个地址即可。

想看当前标签页:

curl http://127.0.0.1:9222/json/list

四、步骤 3:在代理工具里指向端口

通用做法(各家工具字段名不同,但语义一致):

  • 启用浏览器/工具权限;
  • 把调试地址填为 http://127.0.0.1:9222(或 cdpUrl 之类字段);
  • 若工具支持「复用已有会话(attach)」模式,优先选它,这样你手动登录的状态能被复用;
  • 保存后重启该工具,再用它的状态检查命令确认 cdpReady: true

若切换端口(如 9223),浏览器启动参数和工具的地址要同步改,否则连不上。

五、常见问题排查

问题 原因 解决
DevToolsActivePort 报错 浏览器复用了无调试参数的旧会话 彻底关闭浏览器,用带 --user-data-dir 的命令重启
工具报 Profile not found 配置未生效或格式错 复查配置格式,重启工具
cdpReady: false 调试端口不可访问 lsof -i :9222 查占用;确认浏览器调试开关已开;关掉代理/防火墙重试 curl /json/version
端口被占 9222 已被别的实例占用 换端口(如 9223),同步改浏览器与工具配置

六、小结

对接的本质就三句话:浏览器侧开调试(9222 可达)→ 代理侧指向该端口 → 验证 cdpReady 为 true。Chrome 和 Edge 仅启动方式不同,其余完全通用。踩坑几乎都出在「复用旧会话」和「端口不通」两点上,按上面表格逐条核一遍就能解决。


参考资料

  • Chrome DevTools Protocol 官方文档(chromedevtools.github.io)
  • 个人远程调试实践整理
posted @ 2026-08-13 09:21  钱栈up  阅读(119)  评论(0)    收藏  举报