Skip to content

Discovery

🔭 `pkg/runner/discovery.go` — 自动发现可用的 Chrome。

discovery 探测本地或指定主机上已运行的 Chrome 远程调试端口,无需手动指定 --wss,实现 AutoConnect

📁 源码:pkg/runner/discovery.go

核心类型

符号源码说明
ChromeInstanceL13发现的实例信息
DiscoverChrome(host, ports)L23探测
DiscoverChromeWithTimeout(host, ports, timeout)L43带超时探测
probeChromePort(host, port)L65探测单端口
probeChromePortWithClient(host, port, client)L71用指定 HTTP client 探测
AutoConnect(opts, maxConcurrent)L106发现+建池一步到位

发现原理

Chrome 远程调试暴露 HTTP 端点 /json/version 返回 JSON:

AutoConnect

AutoConnect:发现可用 Chrome 后直接构造 DriverPool,供共享池/SDK 使用。

ChromeInstance 字段

字段说明
Host主机
Port端口
WSEndpointWebSocket 调试 URL
VersionChrome 版本

安全

远程调试端口绝不暴露公网

Chrome 的 --remote-debugging-port 一旦可达,任何人都能通过 /json/version 拿到 WebSocket 端点,完全控制该 Chrome 实例(可任意导航、执行 JS、读页面数据)。

  • ✅ 仅探测授权范围内的主机
  • ✅ 远程调试端口只在内网/容器网络开放,前置鉴权或 SSH 隧道
  • ❌ 切勿把 :9222 直接映射到公网

下一步

基于 MIT 许可发布