zoukankan      html  css  js  c++  java
  • 通过开源程序同时解决DNS劫持和DNS污染的问题

    我们知道,某些网络运营商为了某些目的,对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

  • 相关阅读:
    toj 2975 Encription
    poj 1797 Heavy Transportation
    toj 2971 Rotating Numbers
    zoj 2281 Way to Freedom
    toj 2483 Nasty Hacks
    toj 2972 MOVING DHAKA
    toj 2696 Collecting Beepers
    toj 2970 Hackle Number
    toj 2485 Card Tric
    js页面定位,相关几个属性
  • 原文地址:https://www.cnblogs.com/langtianya/p/4384696.html
Copyright © 2011-2022 走看看