技术里的故事里的技术

来源:互联网 发布:淘宝双十一销量排名 编辑:程序博客网 时间:2024/03/29 00:04

(转一篇2010年9月写的破文章)

 

 

我有好几个舅舅,职业不同,按照西方的说法,一个是银行家,一个是机械师(兼电工和水管工),一个是药剂师(现在从事安保职业),他们在晚年的共同爱好就是上网,通过这个窗口他们几乎可以接触到太阳系之外的世界。
 
我为他们解决过很多电脑和网络问题,但有一个问题从来也没能让他们真正明白过:为什么有些网站别人上得了我们却上不了?

 

 

=========

 

 

最近我们在工作中花了好几天,定位了一个“不能上网”的问题。于是我觉得应该好好写个技术贴,能够让我这几个舅舅从本质上明白这个问题。他们之中只有银行家会打字,所以我得尽量一次把话说明白,免得他们心存疑惑又不能回帖提问以致抓狂。
 
简单的说,我们工作中的问题是为什么上不了facebook和twitter(可怜舅舅们可能现在就开始抓狂了:这是啥玩意儿啊...)。对一些人来说这不是问题,因为他们知道有VPN这种东西。我的银行家舅舅也知道这个。我们的问题具体一点说就是,使用相同的VPN,在电脑上可以看见twitter小鸟,可是在手机上不行——在手机通过VPN上是可以访问picasa,playboy这类网站的。
 
我们在手机上使用了诸多手段来定位问题:抓IP包,ping,curl,wget...舅舅们不用抓狂,这些只是一些简单基本的网络技术,就好比机械师使用各种螺丝刀/电钻/车床来解决你们的问题一样。我们还得到了这两个网站的IP地址,还请身在美国的朋友帮忙访问刺探,结果很诡异:要么是一个保留地址,要么服务器就是在意大利一类不靠谱的地方。也就是说,闹了半天我们真正访问的其实不是这两个网站的真身。

 

 

=========

 

 

现在先解释一下上网的流程。简单的说我们上网时输入的网址一般是一串好记的英文字母(以后还会有中文),这好比人的名字;每个网址都会对应一个唯一的IP地址,好比人的电话号码。上网的过程就好比打电话。也就是说,你光知道一个人的名字是不能给他打电话的,得知道他的电话才行。世界上有很多看不见的服务器叫DNS,专门提供网址到IP地址的查询,就好比邮局里的黄页(银行家舅舅也知道这个),或是114,一按我帮您,或者号码百事通...什么的。所以你敲了一个网址,例如facebook之后,电脑会通过DNS查到它对应的IP地址,然后才能连到真正的服务器那里。
 
很自然的想法就是,如果我不想让你找到这个人,那就让你 1) 查不到他的电话号码,或者 2) 查到一个错误的电话号码。对应的技术就是DNS劫持,或DNS感染。前者是我偷偷在黄页里把号码改了,比如改成派出所或是某夜店的号码...后者有点像这种场景:你给114打了查询电话,服务员刚说“稍等”就有另外一个声音把恶意的结果告诉你了,然后你就把电话挂了,然后真正的服务员会说“艹怎么挂了...”,然后你按照那个号码打过去发现不是派出所就是夜店...

 

 

=========

 

 

再回到我们的问题:为什么只在手机上不能访问。不好意思那是我们的错,因为我们在手机操作系统的协议栈里列了好几个DNS地址,有无线wifi提供的,还有VPN提供的,甚至还有移动网关协商的。而DNS查询是一件很简单的活儿,它会按顺序查询并使用返回的第一个结果,很不幸在我们里案例中VPN提供的DNS排在了后边。

 

 

或者说得更明白一点:排在前边的DNS查到的twitter小鸟的IP地址是错误的,或者是恶意的指向意大利黑手党报名网站的。技术上叫“被劫持的”。这年头已经不能简单的让你查不到IP地址了,那样太低级;给你一个错误的无法访问的地址,至少可以让大多数人骂街时不太有把握该骂谁。

 

=========

 

 

舅舅们肯定会问,什么坏人这么NB,连黄页和114都动的了?在技术领域里其实很难界定“好人”和“坏人”,就好比我的药剂师舅舅有时会偷偷浏览一些几乎不穿衣服的美女图片,但我不能跟舅妈说你是坏人一样。据我所知,经常在DNS服务器上动手脚的人包括运营商,还有“上边”,你能简单的说他们是坏人吗?
 
我的机械师舅舅以前总觉得每个网站都有一根管子连着,把管子掐住你就访问不了,现在你明白不是这么回事了。还是我的银行家舅舅比较靠谱,他认为是“上边”不想让你访问,所以你不能访问。我的药剂师舅舅虽然现在当了保安,但是脑子依然灵光,我知道他会说那太简单了,你把蓝色小鸟的IP记住了,以后直接打电话不就能看见小鸟了...这个问题其实没那么简单,不然要VPN干什么...我今天还没想好怎么说明白,下次吧...
 
=========
另外一件有意思的事情是,我们发现VPN提供的DNS地址十分NB:8.8.4.4。开始以为是一个私有地址,后来才知道是Google提供的两个开放DNS之一,另外一个更加NB的8.8.8.8。前段时间谷歌跟我们干架闹了一阵去香港了,按说不是什么好东西,但是它在09年底为各国网民提供了两个相当NB的免费DNS服务器,并宣传让网民上网更加迅速和安全。再次验证了技术领域里不要说好人还是坏人。
 
世界上最抓狂的事情之一就是,有些事情明明简单得如同穿衣吃饭,偏偏就不能让你轻易做到。好在我懂点技术,知道点皮毛,可以少抓点狂。
 
有点晚了,舅舅们要想知道怎么换DNS,下次再说吧。搞不好过一段时间就不好使了...

 

原创粉丝点击