WebRTC IP地址泄露日常防范初探

不知对于日常上网离不开代理的你是否好奇过:有些网站即使你挂了proxy, 网站依然能够检测出来你使用了代理,甚至还会把你的真实IP地址展示给你“羞辱”一番。检测的方法有很多,但是最普遍有效的目前来看依然是基于 WebRTC 的真实IP检测。

为什么 WebRTC 会泄露真实 IP

这个问题可以分为两部分:为什么是 WebRTC 以及 WebRTC 哪些部分会泄露真实IP.

为什么是 WebRTC? 由于 WebRTC 是 google 根正苗红孵化的亲儿子技术,从一开始就深入的植入在了Chrome浏览器中,默认是开启,并且相关请求直接走UDP,不会再浏览器的开发者工具中有所体现。更加不可思议的事当前为止,没有直接该功能的关闭方式。另外,由于部分VPN在早期对UDP协议设置的问题,即使使用VPN也会导致 IP Leak.

WebRTC 哪些部分会泄露真实IP? WebRTC 原理的介绍有很多,推荐 Introduction to WebRTC. 总结起来主要有两个环节可以利用来嗅探真实IP: 一个是 STUN 服务发现和交换直连信息;一个是音频和视频通过SRTP进行多媒体数据P2P传输。

如何防止 WebRTC 泄露真实 IP

从原理我们可以知道,要防止真实 IP 泄露,主要方式就是在 WebRTC 运转的整个过程中都不泄露和直接使用真实IP. 因此主要有两种方式:

  • 强制浏览器WebRTC走代理。如果你是Chrome浏览器用户,推荐使用WebRTC Leak Prevent插件,并设置为Disable non-proxied UDP (force proxy)。由于当前大部分的代理对UDP的支持都不算完善或存在兼容性问题,因此可以认为这种方法也是在网络层仅用了WebRTC功能,因此在某些合理使用 WebRTC 功能的网站会提示一个红色的角标。

  • 那么有没有一种能完美使用 WebRTC 功能,又能够不泄露真实IP的方案呢?答案就很明显了,又回到了了我们熟悉的VPN方案。不过你需要检查一下自己的VPN是否正对 WebRTC 的IP泄露 well configured. 这里推荐使用 Tailscale 的方案。

如果你配置好了,可以在WebRTC Leak Test进行检测。Good luck!

–EOF–

版权声明
转载请注明出处,本文原始链接