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

    我们知道某些网络运营商为了某些目对DNS进行了某些操作导致使用ISP正常上网设置无法通过域名取得正确IP地址常用手段有:DNS劫持和DNS污染有关DNS劫持和DNS污染区别请查找相关文章对付DNS劫持思路方法很简单只需要把系统DNS设置改为为国外DNS服务器IP地址即可解决但是对于DNS污染般除了使用代理服务器和VPN的类软件Software的外并没有什么其它办法但是利用我们对DNS污染了解还是可以做到不用代理服务器和VPN的类软件Software就能解决DNS污染问题从而在不使用代理服务器或VPN情况下访问原本访问不了些网站WebSite当然这无法解决所有问题些无法访问网站WebSite本身并不是由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地址需要测试次数

    小执行文件和源代码在同个压缩包内

=Apple-style-span>=Apple-style-span> 请点这里下载(含源代码)

备用下载地址:备用地址1=Apple-converted-space>  备用地址2

文章来源:http://www.williamlong.info/archives/2184.html
Tags: 

延伸阅读

最新评论

发表评论