远程 Chrome
🌐 用远程 CDP 端点,免本地浏览器。
无本地 Chrome 或需多进程复用时,连接远程 Chrome DevTools Protocol 端点。
连接
bash
snir scan example.com --wss ws://host:9222/devtools/browser/<id>--wss 指向远程 Chrome 的 WebSocket 调试 URL。
部署远程 Chrome
在服务器上启动 headless Chrome:
bash
chromium --headless --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0 \
--no-sandbox --disable-gpu获取 webSocketDebuggerUrl:
bash
curl http://host:9222/json/version共享 Provider
snir provider 启动常驻 Chrome 供多进程复用:
bash
# 服务端
snir provider --port 9223 --max-concurrent 20
# 各 worker
snir scan example.com --wss ws://provider-host:9222/devtools/browser/<id>见 provider 命令。
SDK
go
client, _ := sdk.NewRemoteClient("ws://host:9222/devtools/browser/xxx", 10)
defer client.Close()或自动连接:
go
client, mode, _ := sdk.AutoConnectClient(opts) // opts.WSSURL 指定远程见 自动连接。
决策
客户端经 --wss 连接远程 Chrome 完成一次截图的时序:
安全
远程调试端口暴露=完全控制
Chrome 远程调试端口等价于"能在该 Chrome 里执行任意操作"。切勿暴露公网:
- 限内网访问,或加网络层鉴权
--remote-debugging-address默认127.0.0.1,开放0.0.0.0需极度谨慎- Provider/远程 Chrome 应部署在受控网络