# WebRTC 泄漏

如果配置为通过代理传输网页流量的浏览器仍通过实时通信 API WebRTC 泄露设备真实的公网或本地 IP 地址，就会发生 WebRTC 泄漏。这是因为 WebRTC 会直接收集连接候选地址，而不经过代理。任何页面都能用 JavaScript 触发这一过程，因此，通过代理的浏览器会话能否保护隐私，取决于其 WebRTC 设置。


## 如何防止泄漏

| 浏览器 | 设置 |
| --- | --- |
| Firefox | 在 about:config 中设置 `media.peerconnection.enabled = false`，或通过 network.proxy 策略强制只使用代理候选地址 |
| Chrome / Chromium | 将 WebRTC IP 处理策略设为 "disable non-proxied UDP"（使用扩展程序或企业策略）；反检测浏览器通常将其提供为开关选项 |
| 无头自动化 | 使用禁用 WebRTC 的启动参数，或在网络层阻止 STUN 服务器 |


## 测试

通过代理加载 WebRTC 泄漏测试页面：页面列出的唯一地址必须是出口地址。脚本和非浏览器客户端不受影响，因为这种泄漏源于浏览器功能。


## 在 ProxShift 中的工作方式

ProxShift 仅支持 TCP，且绝不干预浏览器，因此 WebRTC 候选地址不会经过 ProxShift；修复需要在浏览器端完成，指南中列出了各浏览器的对应设置。

来源：https://proxshift.com/zh/glossary/webrtc-leak
