这个话题,也是一直想写,现在有点时间了,就顺便写下吧,备忘和科普用吧。PS:使用此技能必须有个可用的VPN。没有的话,污染无解。还有我是针对Linux的,windows用户拜拜!
什么是DNS污染
回答这个问题之前,如果你不知道DNS的作用是什么,我可以简单的说,DNS的中文是域名系统,英文是Domain Name System,简称DNS,是因特网的一项业务服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(抄自域名系统)
然后,DNS污染简单来说就是让找不到正确的IP,然后就没有然后,上不了网了,开着VPN也没用。
下面举个例子吧,下面同样域名得到差异很大的结果。如果我们使用国内的DNS服务器或者ISP提供的DNS服务器,就算开着VPN,我们也不能正常的DNS解析的。
[23:13:07] roowe@roowe-gentoo /tmp$ nslookup twitter.com 8.8.8.8 Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: twitter.com Address: 199.59.148.82 Name: twitter.com Address: 199.59.149.230 Name: twitter.com Address: 199.59.150.39 [23:14:37] roowe@roowe-gentoo /tmp$ nslookup twitter.com 114.114.114.114 Server: 114.114.114.114 Address: 114.114.114.114#53 Non-authoritative answer: Name: twitter.com Address: 46.82.174.68
How To Break
使用dnsmasq和resolvconf,每个Linux的发行版的源应该都有这两个工具,安装方法就不说了。
具体选项自己去看man吧。dnsmasq的配置大概如下,就是让国内的域名交给国内的114去解析。
no-resolv no-poll server=8.8.8.8 server=8.8.4.4 no-dhcp-interface=eth0 expand-hosts server=/115.com/114.114.114.114 server=/126.com/114.114.114.114 server=/163.com/114.114.114.114 server=/17cdn.com/114.114.114.114 server=/51.la/114.114.114.114 server=/6rooms.com/114.114.114.114 server=/acfun.tv/114.114.114.114 server=/alimama.com/114.114.114.114 server=/alipay.com/114.114.114.114 server=/atpanel.com/114.114.114.114 server=/baidu.com/114.114.114.114 server=/bdimg.com/114.114.114.114 server=/bilibili.tv/114.114.114.114 server=/cn/114.114.114.114 server=/douban.com/114.114.114.114 server=/douban.fm/114.114.114.114 server=/gfan.com/114.114.114.114 server=/hoopchina.com/114.114.114.114 server=/iask.com/114.114.114.114 server=/ifeng.com/218.104.111.114 server=/ifengimg.com/218.104.111.114 server=/ku6.com/114.114.114.114 server=/ku6cdn.com/114.114.114.114 server=/lxdns.com/114.114.114.114 server=/microsoft.com/114.114.114.114 server=/mydrivers.com/114.114.114.114 server=/qq.com/114.114.114.114 server=/qstatic.com/114.114.114.114 server=/renren.com/114.114.114.114 server=/sogou.com/114.114.114.114 server=/sohu.com/114.114.114.114 server=/soso.com/114.114.114.114 server=/tanx.com/114.114.114.114 server=/taobao.com/114.114.114.114 server=/taobaocdn.com/114.114.114.114 server=/tbcache.com/114.114.114.114 server=/tdimg.com/114.114.114.114 server=/tencent.com/114.114.114.114 server=/thawte.com/114.114.114.114 server=/tmall.com/114.114.114.114 server=/tudou.com/114.114.114.114 server=/tudouui.com/114.114.114.114 server=/weibo.com/114.114.114.114 server=/wrating.com/114.114.114.114 server=/xiami.com/114.114.114.114 server=/xiami.net/114.114.114.114 server=/xunlei.com/114.114.114.114 server=/ykimg.com/114.114.114.114 server=/youku.com/114.114.114.114
resolvconf的作用就是 managing multiple DNS configurations,要不然resolv.conf配置全乱了,第一个都不是我们想要的127.0.0.1。
resolvconf配置如下。
resolv_conf=/etc/resolv.conf name_servers=127.0.0.1
用了resolvconf之后,我们自动生成的resolv.conf配置大概如下:
[23:46:30] roowe@roowe-gentoo /tmp$ cat /etc/resolv.conf # Generated by resolvconf nameserver 127.0.0.1 nameserver 8.8.8.8 nameserver 8.8.4.4
最后/etc/init.d/dnsmasq start下,就可以用了。也可以作为服务项加入自启动里面。
后话
科学上网,为国争光。
现在我们nslookup的结果大概如下。
[23:52:46] roowe@roowe-gentoo /tmp$ nslookup twitter.com Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: twitter.com Address: 199.59.150.39 Name: twitter.com Address: 199.59.150.7 Name: twitter.com Address: 199.59.148.10
Update:
2012-07-05 Thu
由于换工作室了,我又舍不得将自己的电脑搬过来,因为周六日回去华师宿舍的时候,没有电脑玩是很蛋疼的事情,这个时候就突然想拥有台笔记本咯。在这边的工作室,我就用着我们之前作为服务器的机子,机子虽破,少开几个google-chrome的TAB和不打开eclipse,应该还是能用的。
说回正题,这边服务器是之前安装的fedora16,用了gentoo之后,发现fedora很多包都更新得很慢,我虽然不是很热衷于新版本,但是现在有些新版本的feture是我需要呀,比如Xfce按住Alt+Tab之后的左右方向键在xfce-4.9是有效,但是在4.8版本是没有用的,�!还有Emacs还没有升级到24呀。想到这里,我就想马上搬我的电脑过来用gentoo。除了更新慢之外,还有些包没有,比如resolvconf这个包竟然没有。所以就没法管理resolv.conf了,但是为了使用dnsmasq,还是有办法的,在 /etc/sysconfig/network-scripts/ifcfg-p33p1(这个文件是我的,找你相应的)这个文件后面添加DNS1=127.0.0.1,然后/etc/init.d/network restart下就好了。PS:我没用NetworkManager,这货坑爹的,直接用network来管理。
没有评论:
发表评论