自从进入网络时代,大家的生活也愈加多姿多彩起来,但也多出了很多烦恼。例如,信息海洋中时不时出现的大群垃圾,以及深渊,就令人防不胜防。
这里说的正是上网过程中遇到莫名其妙的网页跳转,好端端的一个网页,突然就变成了满屏的广告;或者本来能正常访问的页面,突然就打不开了,但QQ之类的软件却可以正常登录。这到底是什么原因造成的呢?其实出现了这些令人困扰的异常现象,意味着你可能是DNS劫持、投毒的受害者。
虽然我们经常上网,但并不是每个人都对开启一个网页背后的机制了如指掌。轻点鼠标,网页即呈现在眼前,何其熟悉的操作,但这熟悉操作的背后,却蕴藏着一套环环相扣的流程。
从用户点击鼠标、敲下回车,到网页显示,信息首先会通过浏览器发送,然后经路由中转,接着DNS将域名解析成IP,找到服务器后服务器会发送内容给用户,接着再由路由转发数据,最后浏览器将内容呈现给用户。视实际情况,这个过程中还可能存在更多关卡,比如说防火墙、代理服务器等。
在这套流程中,无论浏览器、路由、DNS、服务器等任一环节中出了叛徒,都有可能导致网页无法访问。而被人篡改最多的,或许就是DNS了。
DNS全称是域名系统,它所起到的作用,在于把域名解析为IP地址。我们能访问到某个网站,靠的是连接到该网站服务器的IP地址,DNS在这里面起到的作用就是把“www.baidu.com”解析成“123.125.114.144”这样的IP地址,让你能够连接到这地址的服务器来访问网站。
把网址解析为IP地址,就是DNS所起到的作用了
在上网的流程中,有太多的因素可以影响到DNS,例如你的PC的设置、路由器的设置、运营商的设置等等,DNS一旦出现了差错,就会无法把域名解析成为正确的IP地址,我们自然也无法访问到正确的页面。因此,如果你发现开启不了网页,但QQ这样直连IP的网络软件却可以正常服务,那DNS就是一个非常值得怀疑的原因。
DNS这个环节可以被太多因素影响,所以不少利益相关者都会在这里面做手脚。例如,DNS劫持就是非常常见的广告投放手段。
一般情况下,如果你不特别设置DNS服务器,那么DNS服务器就会由运营商来提供。按理来说,运营商提供的DNS服务器应该用于正确地为你提供IP跳转,但偏偏很多运营商DNS服务器的人品都不堪入目。
你常常就能看到运营商会把你给跳转到什么开通上网套餐之类的页面,甚至会出现你输入A购物网但却被跳转到竞争对手B的情况,这就是所谓的DNS劫持。
开个百度,整个网页都被强制跳转到XX娱乐城去了,这就是典型的DNS劫持
要对付运营商的DNS劫持,设置一个可靠的DNS服务器往往就可以解决问题。然而,很多朋友在设置了可靠的DNS服务器后,仍然不能解析到正确的IP地址,例如某个网站的IP地址明明是可以Ping通的,但就是无法访问。这种情况,通常是DNS污染所导致的。
虽然DNS服务器能够正常工作,但我们向DNS服务器发送域名解析请求的时候,是通过UDP连接发送的。UDP并不是什么可靠的连接,所以域名解析请求能够在半路上就被人拦截,然后冒充DNS服务器给你发送错误的IP地址。IP地址是错的,我们自然也不能正常地访问网站,有可能会看到广告、钓鱼页面,也有可能什么也看不到。
DNS默认使用UDP连接,而且未经加密,很容易遭遇污染、投毒
无论是那种情况,DNS出错就意味着你没法正确地访问网站。在整个上网的流程中,DNS这环节无疑是脆弱而且不受用户控制的,如果一定要有人用DNS来害你没法正常上网,大多数人都对此无能为力。那么DNS频频出错到底还有没有救呢?
前面也提到过,要对付运营商的DNS劫持,我们可以设置一个可靠的DNS服务器来进行域名解析。目前很多安全厂商或者互联网企业乃至公益组织,都提供了DNS解析服务。
例如奇虎360、诺顿、Comodo、百度、阿里、Google等企业,都有提供DNS解析服务,你也可以选择Open DNS这样的老牌免费DNS服务。
这些DNS服务,都可以在网上轻易搜到具体的IP地址,这里就不一一罗列了。当然,并不是说用了这些DNS服务,就一定不会有DNS劫持,万一这些企业人品也不行呢?至于谁靠谱,就得靠你来自个儿筛选了。
另外,DNS如果不是运营商所提供的话,速度表现并不一定理想。这里推荐一款名为“DNS jumper”的软件,它能够比较全面得测试DNS的连接速度,并设置DNS。
利用DNS jumper,很容易就能够找到适合你网络状况的DNS。另外,如果运营商DNS劫持行为太过猖獗,也可以到工信部投诉运营商劫持网页,这的确是非常行之有效的方法,有效到了某些运营商竟然直接屏蔽了工信部的投诉网页的程度。那么该如何到工信部投诉运营商呢?
首先,遇到网页劫持的情况,不要直接向工信部投诉。按照流程,先向运营商投诉,无效后投诉到工信部,才会被受理。工信部张贴出来的申诉条件中也包括“已经向被申诉人投诉且对其处理结果不满意或者其未在15日内答复”这一条,所以先走一下流程也是有必要的,万一向运营商投诉就解决问题了呢?
然而事情往往不会这么美好,运营商的回答通常很敷衍,对技术不熟悉的客服人员甚至不明白网页劫持是什么意思。无效后,就可以向工信部投诉运营商了!如无意外,投诉后问题就会得以解决。
但即使如此,如果有人在DNS请求的UDP连接过程中做手脚,那还是防不胜防。一些公司就会利用这个原理,控制不让员工随便访问网络。如果要规避这个过程,思路就是避免DNS用UDP这样不靠谱的连接来查询。你可以利用一些手段,设置DNS为TCP连接查询,也可以通过加密来让其他服务器中转DNS请求。
IPV6强制部署IPSec,这也可以让DNS更安全
当然,这些方法实现起来都需要折腾,并不符合一般用户使用。或许在待到将来IPV6全面铺开时,DNS的安全性才会有进一步提升。
总体而言,现在DNS的机制显然在设计之初没有充分考虑到安全性,导致别有用心者频频利用这一环节影响用户的正常网络访问。DNS频频被劫持、投毒的现状如何才能改变?从技术上来说很难,希望以后能够有更完善的监管手段,让用户有更好的上网体验吧。
评论