如何解决国内某视频网站利用 WebRTC 占满上行带宽的问题
@48vows 同学在大半个月之前问了一个问题:EDGE如何控制webRTC禁止斗鱼这类HTML5的p2p?这事吧,其实挺尴尬的。
什么是 WebRTC
WebRTC(网页即时通信,英语:Web Real-Time Communication) 是一个被主流浏览器广泛支持的可以在网页上进行实时语音或视频对话的 API,包括 Chrome、Firefox、Opera、Safari(开发者预览阶段)均支持,并且在移动端也有支持。
延展阅读:
- 如何解决 WebRTC 的历史遗留安全隐患?Chrome、Firefox、Safari 全中招
为什么尴尬呢
因为免费的视频观看用户的确占用了带宽,但并没有付费。于是贡献一点自己的带宽出来也不是什么大问题,毕竟不存在速度又快又免费的服务啊。但是呢,把用户上传占满这种事情,如果不是故意的,那就是技术不行了啊。
有个很重要的原因是,占满了用户的上行带宽,用户的下行网速也将受到很大的影响。
@48vows 同学对这个问题也特别说明了:
Chrome 倒是找到不少办法,也有用 abp 的,但是 abp 兼容性真的没 uBlock Origin 好,已经回不去了。Edge 貌似就是个特例,把开源内核改的。。。
现在最烦人的就是斗鱼,我能接受你p2p,你凭什么把上行占满?
Chrome 商店下载的诸如 WebRTC Network Limiter,没用;abp 脚本安装在 uBlock Origin 无效;写静态规则直接视频无法加载。
真服气,全网就没有一个 Edge 能屏蔽或者限制 webRTC 的 p2p 的方法?
不过就是 22 天后的今天,@48vows 自己标记了问题解决,使用的是 WebRTC Control 扩展。
WebRTC Control
WebRTC Control 是一款用来防止因为 WebRTC 而泄漏 IP 地址的 Chrome 扩展,默认会阻挡 RTCPeerConnection 和 RTCDataChannel 两个接口的连接。
- RTCPeerConnection 接口代表一个由本地计算机到远端的WebRTC连接。该接口提供了创建,保持,监控,关闭连接的方法的实现。
- RTCDataChannel 接口代表在两者之间建立了一个双向数据通道的连接。
于是就可以用来阻挡这些视频网站使用 WebRTC 占满用户的上行带宽了。
使用简单
WebRTC Control 的使用非常简单,通过应用商店安装之后,只需要点一下浏览器的扩展栏按钮即可,当呈现如下图蓝色边框时,就是禁用状态。
再点击一下会变成灰色,恢复正常。
下载地址
- Edge 商店
- Firefox 商店
- Opera 商店
- Chrome 商店
最后,你可以在这个网站测试是否通过 WebRTC 泄漏了自己的 IP