朋友前几天办了个500M的宽带,那个美啊,逢人就显摆显摆。
大有几年前手机跑分的感觉,不服跑个分,不服测个速!
这没高兴几天,问题就来了,跑分挺爽,怎么看个视频这么卡?
换路由、换网线、升级系统,一顿折腾,一筹莫展之下,只好找我求助。
一检查,我发现事情还真不简单,满满的套路。
测速的瑞士军刀——SPEEDTEST
SPEEDTEST是一家叫Ookla的公司开发的测速工具,稍有经验的朋友想必对它都不会陌生。
Ookla在全世界各地维护了大量测速节点,SPEEDTEST测量的就是与这些测速节点间的网速,由于这些测速节点的带宽都很大,基本上能保证跑满用户的带宽,也就可以测试出用户的最大带宽了。

服务器的带宽是很贵的,SPEEDTEST盈利模式实在有限,基本上就是广告。打开它的首页,众星捧月式的广告也实属无奈。

即使是这样,Ookla也没有足够的钱租用那么多服务器。不过Ookla想到了个办法,开发了个软件OoklaServer,让大家贡献出自己的服务器给别人测速。
想自己搭建测速服务器的小伙伴看这里:
http://support.ookla.com/hc/en-us/articles/234578528-OoklaServer-Installation-Linux-Unix
来到朋友家,连上Wi-Fi,打开SPEEDTEST测试一番,速度不错,能有400多Mbps呢,虽说不到500Mbps的理论值,爽爽地看个高清视频还是没问题的。

打开爱奇艺,随便下载个视频。

咦?怎么这么慢,500多KB/s,才4Mbps多。
不止爱奇艺,所有需要下载的地方,速度都是4Mbps。
难道SPEEDTEST被做了手脚?
我用的SPEEDTEST是从APP Store下载的,应该不是山寨APP,测速服务器也是SPEEDTEST自动识别的,似乎没有什么能做手脚的地方。
无奈,只好抓个包看看。这一抓不要紧,发现问题了。

原来SPEEDTEST是在和一个内网的服务器通讯,别说300Mbps,就是1Gbps都都不稀奇,内网嘛。
为什么SPEEDTEST会和这个内网服务器通讯呢?继续找。

原来如此,当SPEEDTEST尝试解析一个测速服务器的域名speedtest.bmcc.com.cn时,DNS服务器返回了一个内网地址192.168.21.102。
看来本地配置的DNS服务器有问题,我又尝试了几个其他测速服务器的域名,发现统统被解析到192.168.21.102。
在浏览器里打开192.168.21.102:8080,熟悉的画面映入眼帘:

真相大白!
运营商在内网中搭建了个测速服务器OoklaServer,然后又在DNS服务器上做了手脚,把所有测速服务器的域名都解析到这个内网中的OoklaServer(192.168.21.102)。
因为是内网,速度自然很快,实际上的外网出口,只有4Mbps。
将DNS服务器切换成阿里DNS(223.5.5.5)后,再次测速,SPEEDTEST就会连接真正的测速服务器了,这次就可以看到真实的速度了。

嗯,很可怜的下行4Mbps,上行0.2Mbps。
你说IP地址紧张,不给公网IP,我忍了。
你上下行不对称,我又忍了。
你给我4Mbps带宽,我也忍了。
你拿老子当傻子,测速作弊算什么?
后记
帮朋友检查完网络,回家的路上,突然有了淫邪的念头。
于是自制了个DNS欺骗工具,自己搭建了个OoklaServer,跑个分。
Nice,3Gbps的网速,哈哈哈哈哈哈。

暂无评论
发表评论