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:验证端口可用
curlhttp://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 已就绪,代理侧连这个地址即可。
想看当前标签页:
curlhttp://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)
- 个人远程调试实践整理