不解决DNS污染,还是会被墙

来源:http://www.fradser.info/if-dns-pollution-is-not-resolved-it-also-will-be-gfwed/

这几天一直在纠结、研究各种翻墙的方法,修改hosts上facebook、twitter以及YouTube的方法在一定程度上可以缓解被墙的尴尬。你可以先看看这篇文章了解FGQI Snake制作的自动修改hosts程序,但是这种办法也有它的弊端,在我这几天的使用中极其的不稳定。于是在网络上寻求解决的办法,总结一下,希望大家喜欢。

想翻墙,你得先了解GFW

防火长城(英语:Great Firewall,常用简称:GFW功夫网,中文也称中国国家防火墙长城防火墙万里防火墙)是对中华人民共和国政府在其管辖互联网内部创建的多套网络审查系统(包括相关行政审查系统)的称呼。

千万不要小瞧GFW,据说它可能由数百台曙光4000L服务器组成,后台强硬,还据说思科公司也有参与。单台曙光4000L服务器采用7U架构,CPU类型为AMD Opteron,使用644GB EEC DDRII内存,10TB硬盘,最大支持600TB,电源功率为160KW,操作系统为Linux(数据来自网络,不保证正确)。想想数百台曙光4000L服务器组成的机群是怎样的性能,所以我们这些屁民是永远斗不过“河蟹”的,无论你用那种方法翻墙,相信我GFW总有办法让你回到祖国的怀抱。

但是,也不要小看我们的力量。

也许,你和我一样有些时候用SSH的方式翻墙,也会被GFW解析到错误的地址,其中就涉及到GFW最主要的技术手段——域名劫持

防火长城对所有经过骨干出口路由的在UDP的53端口上的域名查询进行IDS入侵检测,一经发现与黑名单关键词相匹配的域名查询请求,防火长城会马上伪装成目标域名的解析服务器给查询者返回虚假结果。由于通常的域名查询没有任何认证机制,而且域名查询通常基于的UDP协议是无连接不可靠的协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。而用户直接查询境外域名查询服务器(比如 Google Public DNS )又可能会被防火长城污染,从而在没有任何防范机制的情况下仍然不能获得目标网站正确的IP地址。
从2002年左右开始,中国大陆的网络安全单位开始采用域名劫持(域名污染)技术,使用思科(Cisco)提供的路由器IDS监测系统来进行域名劫持,防止了一般民众访问被过滤的网站,2002年Google被封锁期间其域名就被劫持到百度,而中国部分ISP也会通过此技术插入广告。对于含有多个IP地址或经常变更IP地址逃避封锁的域名,防火长城通常会使用此方法进行封锁,具体方法是当用户向境内DNS服务器提交域名请求时,DNS服务器返回虚假(或不解析)的IP地址。
全球一共有13组根域名服务器(Root Server),先前中国大陆有F、I这2个根域DNS镜像[9],但现在均已因为多次DNS污染外国网络,威胁互联网安全和自由而被断开与国际互联网的连接。

点击跳转(需翻墙)到Wikipedia,看看GFW是怎样的无所不用其极 。

DNS劫持很容易解决

对于DNS劫持,你只需要手动设置DNS到国外的地址就行了,但是即使你这样做也很有可能上不了你想看的东西。最主要的原因要涉及到DNS污染的问题。

以下是关于DNS污染的简单实验:

DNS污染在我的理解里就是当你输入某个网站地址的时候,你需要经过DNS服务器解析才能的得到正确的网站IP,从而链接到你想链接的网站(不知道正确不?)。GFW就在最关键的一步做了手脚,这王八总是给你错误的IP地址,而且还是随机的。所以即使你使用的国外的DNS从而解决了DNS劫持的问题,还是看不了你想看的东西。

使用 8.8.8.8 的 Google Public DNS服务器(国外),但是这个DNS已经完完全全被GFW推倒了,解析twitter.com的时候返回的IP地址是带有神一样的随机性。

经过在本机使用DNS代理,虽说显示的是 127.0.0.1 的本地端,但是我设置的还是 8.8.8.8,这次总是解析到正确的IP地址,也就是已经初步解决了DNS污染的问题。

通过修改hosts也可以解决DNS污染的问题,但是不够稳定,尤为重要的是被墙的网站千万,不全面。所以我还是喜欢通过SSH的方式,也可以播放YouTube的视频。从我这里修改hosts的效果来看,GFW貌似已经可以越过hosts达到DNS污染的效果,表现在即使修改为正确的hosts,还有可能被墙。不解……

怎样解决DNS污染

我使用的是PyDNSProxy,通过DNS本地代理解决DNS污染,从而让GFW不能危害我上网的自由。

用Python写的一个小程序,用了个非常简单的方法来忽略GFW的DNS缓存污染(暂不公布方法)。使用方法如下:

使用方法

Windows

1. 下载pydnsproxy,安装在你喜欢的位置。(注:Windows Vista/7 的用户请使用管理员模式安装)

2. 将宽带连接(或者其他你喜爱的名字的连接)的dns服务器设置为127.0.0.1

3. Enjoy it!

备注

1. 本软件默认使用OpenDNS的DNS服务器,如果你喜爱其他的境外DNS服务器,请修改主目录下的dnsserver.conf文件。(不知道的话请用Google搜索,注意别设成境内的了,不然就又回到祖国妈妈的怀抱了)

2. 修改dnsserver.conf后,请在控制面板->管理工具->服务中重启DNSProxy服务。

3. exe只是简单的7zip打包,如杀毒软件报告病毒应属误报。提供两个在线扫描结果:VirusTotalVirScan

Linux、Mac

目前没有针对Linux和Mac的包,但可以到SVN里把py的源码checkout下来,除需要手动设置外,使用方法类似于Windows。

说明

什么是DNS缓存污染?参见维基百科的这篇条目

DNSProxy只提供绕过DNS缓存污染的功能,而不能为你解决连接被重置的问题,更不能为你提供代理服务器翻墙。其他业务,请查询GAppProxy

既然不能翻墙,为什么开发这个工具?要知道能解决DNS缓存污染也能对付掉一部分GFW的封锁。比如说你可以使用IPv6,如果能解决掉DNS缓存污染,那么GFW在IPv6唯一的封锁手段(现今)也失效了。

转自:pydnsproxy-DNS本地代理 官方主页(貌似又需要翻墙)

附:PyDNSProxy的Wikipedia

至于至于使用SSH翻墙,You can Google~

如果你有什么问题,回复此文章,我会尽力帮助。


—————————————————————————————————————————

需要翻墙利器? 请安装Wuala,查找和添加gfwblog为好友,就可高速下载翻墙软件,或访问http://tinyurl.com/gfwblog直接下载。

推特用户请点击这里免翻墙上推特

请点击这里下载翻墙软件

更多翻墙方法请发电邮(最好用Gmail)到:fanqiang70ma@gmail.com

请阅读和关注中国数字时代翻墙技术博客GFW BLOG(免翻墙)

请使用Google Reader订阅中国数字时代中文版http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息;以及GFW BLOG(功夫网与翻墙)http://feeds2.feedburner.com/chinagfwblog,获取最新翻墙工具和翻墙技巧信息。


发表评论