通过开源程序同时解决DNS劫持和DNS污染的问题

标签: 编程开发 | 发表时间:2010-05-20 20:28 | 作者:williamlong (williamlong) jin
出处:http://www.williamlong.info/

  我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址。常用的手段有:DNS劫持和DNS污染。关于DNS劫持和DNS污染的区别,请查找相关文章。

  对付DNS劫持的方法很简单,只需要把系统的DNS设置改为为国外的DNS服务器的IP地址即可解决。但是对于DNS污染,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法。但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理服务器或VPN的情况下访问原本访问不了的一些网站。当然这无法解决所有问题,当一些无法访问的网站本身并不是由DNS污染问题导致的时候,还是需要使用代理服务器或VPN才能访问的。

  我们知道,DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。而某些国家的DNS污染在一段时期内的污染IP却是固定不变的,从而可以忽略返回结果是这些IP地址的数据包,直接解决DNS污染的问题。

  在这里我用Java做了一个简单的小程序并提供源代码,在本机运行后,就能在没有代理服务器和VPN的情况下,直接就能解决DNS污染的问题了。如果没有安装Java,可以去http://www.java.com/上安装一个。解开AntiDnsPollution.zip之后,运行filter.bat(Linux用户请运行filter.sh),等待启动成功。然后设置系统的DNS服务器的IP地址为127.0.0.1即可。然后打开一个命令行窗口,执行nslookup一些被DNS污染的域名,是不是解析正确了?

  下面说一下这个小程序的具体工作流程:首先程序启动后,会从文本文件dnsfilter.properties中读取配制,然后去一个不存在的DNS服务器——但这个IP地址却是国外的——中进行DNS查询被劫持的域名,然后返回的IP地址就是被劫持的IP,被记录下来,之后正常的DNS查询中,就自动把这些IP地址过滤了。这个程序以后会不定期更新,或许也会出。NET版本,请在我的Google Reader上关注更新。

  对于高级用户,可以手动用文本编辑器修改配置文件dnsfilter.properties:

  BindToIP:小程序启动后作为DNS服务期绑定53端口,这里指定绑定的IP地址

  DnsServer:国外的DNS服务器,可以设置为OpenDNS或Google DNS服务器的IP地址

  ResponseTimeout:DNS查询返回超时的时间(毫秒)

  TestDnsServer:测试DNS服务器,请指定一个不存在的DNS服务期,但要求IP是国外的

  TestRespTimeout:测试DNS服务器的查询返回超时时间(毫秒),也就是DNS劫持的旁路回复超时时间

  TestCount:测试DNS服务器的次数,为了得到所有被劫持的IP地址,需要一定的测试次数

  小程序的执行文件和源代码在同一个压缩包内,请点下面的链接下载(含源代码)。

  下载:不依赖于Java环境的可执行程序(含源码)

  下载:依赖于Java环境的程序(含源码)

  投稿人Email: lehui99(at)gmail.com ,投稿人Google Reader:https://www.google.com/reader/shared/lehui99

评论《通过开源程序同时解决DNS劫持和DNS污染的问题》的内容...

相关文章:

统计
关于我们: 地址 - www.williamlong.info 我的Google Reader - 我的Twitter - 我的Facebook - 月光博客Twitter
月光博客投稿信箱:williamlong.info(at)gmail.com

相关 [开源 程序 dns] 推荐:

通过开源程序同时解决DNS劫持和DNS污染的问题

- jin - 月光博客
  我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址. 常用的手段有:DNS劫持和DNS污染. 关于DNS劫持和DNS污染的区别,请查找相关文章.   对付DNS劫持的方法很简单,只需要把系统的DNS设置改为为国外的DNS服务器的IP地址即可解决.

备用的dns

- - 互联网 - ITeye博客
下载软件 百度找出来了 居然被解析到了本地. cr173 被指向到了 127.0.0.1. 找遍了hosts 和路由器 最后才发现是万恶的联通. 阿里dns 速度和质量都不错. 百度dns 评测说较慢 备胎. 114DNS安全版 (114.114.114.119, 114.114.115.119).

Public DNS Tool-DNS切换工具

- - 无名小卒
Public DNS Tool v9.1下载: dbank| kuaipan| 官方. 无名小卒(Digital Fingerprint: b98c67913fef00419d415179421ab42f) Related Posts. Webluker-免费CDN、DNS解析和网站监控服务.

DNS解析过程及DNS TTL值

- - IT技术博客大学习
标签:   DNS   TTL.    经常说DNS劫持,也常常说域名解析不正确. 在阅读《HTTP权威指南》缓存一章时,提到缓存文档过期采用“生存时间技术”与DNS类似. 所以抽空学习了解了一下DNS的解析过程,以及DNS TTL值的概念. 根域名服务器(root-servers.org)是互联网域名解析系统(DNS)中最高级别的域名服务器,全球仅有13台根服务器.

新网DNS故障

- - 月光微博客
  新网的DNS服务今天出现长时间故障,包括新网自身在内的大量域名都无法解析,导致网站无法打开,例如使用新网服务的jiathis等网站域名都无法解析.   做为一个域名服务商,DNS发生如此长时间的故障,并且导致客户的域名无法解析,实在太不应该了.   建议新网的客户对新网进行集体诉讼,或者干脆把域名转走算了.

DNS服务-详解

- - 操作系统 - ITeye博客
DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务. <1> 客户机提交域名解析请求,并将该请求发送给本地的域名服务器. <2> 当本地的域名服务器收到请求后,就先查询本地的缓存. 如果有查询的DNS信息记录,则直接返回查询的结果.

域名遭遇DNS污染

- - 望月的博客
费劲九牛二虎之力,终于将在 万网注册的wangyueblog.com这个域名转移到godaddy,然而舒心的日子没有几天,麻烦又来了,由于日益严重的 DNS污染,域名常常出现解析错误,真是屋漏偏逢连夜雨,不过,blogging还得继续,所以还是得想办法,在这里将想法和办法分享,仅供参考. 某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.

公共DNS服务器更换工具Public DNS Server Tool

- - 软矿
不知道大家有没有偶尔会遇到过QQ能上但网络却死活上不去或者打开速度慢得非常不正常的情况,出现这种情况的其中一个可能因素就是你所用的服务商DNS出现了障碍. 这种情况下,你可以尝试通过更换可用的DNS服务器来碰下运气. 但手动更改DNS似乎有点麻烦,且一时半刻你也找不到可用的DNS服务器,此时 Public DNS Server Tool将会为你解决这个麻烦.

Google DNS每天请求700亿次,成最大DNS服务商

- - 脚本爱好者
  为了提高整体网页打开速度,Google 在 2009 年 12 月份推出自己的 DNS 服务,今天 Google 对外 宣布他们已经是世界上最大的 DNS 服务商,每天处理 700 亿次请求,这个数字还在增加.   DNS 就像是互联网的电话本一样,如果你每天要查找无数的电话号码,你可能希望这个电话本可以让你既快有安全的查询,并且它还不要出错.

Pingdom DNS Health 檢查網域名稱 DNS 設定健康狀況

- - 免費資源網路社群
為什麼要檢查網站的 DNS 呢. 因為正確的 DNS 設定能讓網站運作更正常,DNS Health 協助找出錯誤的設定值,以及確認網域名稱有正確的設定. 網站名稱: Pingdom DNS Health. 網站鏈結: http://dnscheck.pingdom.com/. 進入 Pingdom DNS Health 測試工具後,輸入要檢測的網域名稱,例如 " freegroup.org" ,然後按下 Test Now 開始檢測.