木屐 发表于:14年12月30日 23:16 [原创] DOIT.com.cn
互联网的自由精神让世人憧憬,好奇的性格、倔强的行为习惯让笔者觉得必须时时刻刻与这个世界保持着连接状态,于是常年通过使用Python编写的小软件来利用谷歌GAE服务器让自己觉得自在点。从上周六开始,笔者的电脑不能正常访问youyube和Twitter等网站,时间点上的巧合再联系到身边的朋友说Gmail不能收邮件的事情隐隐觉得这其中有些联系,我们在这里假定这两件事有关系,Gmail邮箱的问题只是这次事件的一部分,从Gmail这件事以外来简单看看国内网友“触不可及”的那些事儿。
相关报道称“谷歌数据显示从12月27日开始来自中国服务器的Gmail的流量下跌到零”。好吧,这一定是发生了什么。我们都知道谷歌在北京服务器的地址203.208.46.145,简单测试了一下发现,能访问到,能正常响应,结果看到的页面却是个404。
服务器在北京
服务器能被tracert到
访问到的404页面
再来看从笔者使用的上网方式,简单说就是在我的电脑上的服务端与目标服务器之间多出个GAE代理,本地电脑服务端没有任何设置变更,目标服务器如youtube也好好的,问题显然就出在了中间人服务器,或者是数据包在路上误入歧途了。
利用GAE代理上网原理
附上知乎网友对图示的解读:“明显是通过http、https和谷歌服务器取得通信,然后获取服务器获取到的信息。http直接和北京服务器通信,不会通过qiang,https由于加密了,和境外服务器通信,中转站是谷歌服务器。
内置两套Hosts,一套是谷歌北京的IP(203打头),一套是香港的IP。
是cn模式的时候,直接走http和北京服务器联络,发送你的请求,然后谷歌北京服务器(这时候还在墙内),把你的请求通过类似于VPN的东西传送给位于美国谷歌总部的服务器(这就出去了),总部服务器再最后向目标服务器发送请求,目标服务器返回结果给谷歌服务器,再一路回来返回到你电脑。
走hk模式,直接https加密了出墙到hk(qiang无法解密,放行数据包),然后之后同上。
出去之后,浏览器去某测IP的网站,发现IP地址是位于美国山景城,那就对了。”
假定GAE没有自废武功,先来看看路径问题,看看是不是数据包误入歧途了,用Tracert命令查看一下。
Tracert youtube.com的时候提示网站地址是【37.61.54.158】
Tracert www.facebook.com 居然还是【37.61.54.158】,这是什么情况?
在wiki词条域名服务器缓存污染中发现37.61.54.158的DNS已遭污染,什么是域名污染呢?“是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址。”
部分被污染的DNS
正常方式访问不到是因为我们与服务器之间用来做交互的数据包误入歧途了。看来找到真正的地址也不能访问到了,为什么原来通过GAE能访问呢?
深入的技术问题还是交给技术人员来解释吧。现在我们知道本地与谷歌服务器之间是通的,所以只能猜测是GAE服务器出了问题(咳咳),或者是GAE在与目标服务器沟通的过程中出了问题。谷歌要是不出来说话的话,只有等网络高手出来给交代了。
笔者使用的上网方式在网上有很高的评价,在网上的反响也非常强烈,有关部门也表示不知情。这次事件不管是天灾还是人祸,总之访问一些外网变得越来越困难了,这是事实。一些网友保存了谷歌缓存服务器地址201.86.233.217、95.168.222.25、61.19.1.49,这些服务器也都在境外,也确实能访问到谷歌熟悉的搜索界面,但是只能看谷歌自己,点进去之后的实际静态网页还是不能正常访问(废话)。
虽然谷歌作为世界范围内的互联网大佬不用我们操心,但是目前这一状况显然带来了许多不便,比如安卓程序员在更新谷歌提供的开发包内容的时候就非常麻烦,必须用代理才能下载到。国内的一些程序员喜欢用新浪SAE、和百度BAE做开发,好在没听说身边的朋友哪个是使用GAE做开发的,有的话就阿弥陀佛了。对于确实需要访问这些网站的朋友来说,解决的方法还是求助于代理或者花钱买VPN吧。