安装 Tampermonkey 和 WebRTC 调试脚本
在 Chrome 中安装 Tampermonkey 并添加自定义脚本
简介
Tampermonkey 可以在浏览器中运行用户脚本。本指南介绍如何使用该扩展判断网站是否执行 WebRTC 检查。
安装 Tampermonkey
前往 Chrome 网上应用店并安装扩展程序:
chromewebstore.google.comhttps://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo安装后,单击右上角的扩展图标并固定Tampermonkey。
仅需要该扩展程序才能在浏览器中运行脚本。它本身并不能修复 WebRTC 泄漏。
如何手动添加脚本
对于本指南,请使用 Gist 中的脚本:
检查脚本是否启用
确保新脚本出现在 Tampermonkey 列表中并且具有 已启用 状态。
如何检查脚本是否有效
- 确保脚本切换已启用。
- 刷新目标页面。
- 使用 F12 打开 DevTools。
- 转到控制台选项卡。
5、通过
\[TM]、\[WebRTC]、\[NET]标签可以方便的过滤输出。
应该出现什么日志
脚本启动后,通常会立即出现服务消息:
[TM] Network hooks installed
[TM] WebRTC hook installed如果页面创建了RTCPeerConnection,WebRTC日志将出现在控制台中:
[WebRTC] created
config: { iceServers: [...] }
ICE servers: [...]在候选人聚集期间,本地和远程候选人将可见:
[WebRTC] local candidate raw: candidate:...
[WebRTC] local candidate parsed: { ip: "192.168.1.10", port: "52344", type: "host" }
[WebRTC] remote candidate raw: candidate:...
[WebRTC] remote candidate parsed: { ip: "185.123.45.67", port: "3478", type: "srflx" }如果连接到达路由选择,脚本将显示最终路径:
[WebRTC] SELECTED PATH (connectionstatechange)
candidate-pair: { ... }
local-candidate: { ip: "10.0.0.2", port: 54012, protocol: "udp", candidateType: "host" }
remote-candidate: { ip: "185.123.45.67", port: 3478, protocol: "udp", candidateType: "srflx" }
[WebRTC] REAL REMOTE ENDPOINT: { ip: "185.123.45.67", port: 3478, protocol: "udp", candidateType: "srflx" }如果网站通过 fetch、xhr、WebSocket 或 sendBeacon 发送 WebRTC 数据,脚本也会显示:
[NET][fetch] https://site.example/api
[NET] SDP detected
v=0
o=- 46117317 2 IN IP4 127.0.0.1
...
[NET][ws] wss://site.example/socket
[NET] ICE detected
{"candidate":"candidate:...","sdpMid":"0","sdpMLineIndex":0}首先看什么
\[TM] WebRTC hook installed- 脚本加载成功。\[WebRTC] created- 该页面确实创建了 WebRTC 连接。\[WebRTC] local candidate parsed- 本地候选者可见。\[WebRTC] remote candidate parsed- 远程候选者可见。\[WebRTC] REAL REMOTE ENDPOINT- 最有用的日志。它显示了 WebRTC 选择的最终远程端点。
如果日志很少
该脚本添加了两个手动控制台命令:
__dumpAllWebRTCSelectedPaths()
__dumpAllWebRTCStats()第一个命令再次打印选定的路径。
第二个显示了 candidate-pair、local-candidate、remote-candidate 和 transport 的完整快照。
安装后有用的检查
启动脚本后,您可以使用如何检查WebRTC泄漏一文中的服务来检查WebRTC行为。
如果您想了解泄漏机制本身,请参阅WebRTC泄漏的工作原理。
最后更新