通过开源程序同时解决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地址,需要一定的测试次数
小程序的执行文件和源代码在同一个压缩包内,请点下面的链接下载(含源代码)。
投稿人Email: lehui99(at)gmail.com ,投稿人Google Reader:https://www.google.com/reader/shared/lehui99
通过开源程序同时解决DNS劫持和DNS污染的问题的更多相关文章
- DNS劫持和DNS污染解决办法
编号:1013时间:2016年5月26日09:35:27功能:DNS劫持和DNS污染解决办法URL : http://www.itechzero.com/dns-hijacking-dns-pollu ...
- DNS劫持和DNS污染的区别
我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染. 什么是DNS劫持 DNS劫持就是通过劫 ...
- 【转】DNS劫持和DNS污染的区别
什么是DNS服务器? 简单来说,DNS服务器就是域名管理系统. DNS(Domain Name System)是域名解析服务器的意思. DNS服务器是干什么的? DNS服务器在互联网的作用是:把域名转 ...
- 什么是DNS劫持和DNS污染?
什么是DNS劫持和DNS污染? http://blogread.cn/it/article/7758?f=weekly 说明 我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ...
- DNS劫持和DNS污染
DNS劫持和DNS污染1.DNS劫持通过劫持DNS服务器,修改解析记录,导致对域名的访问转入虚假IP,结果是网站访问失败,窃取资料. 2.DNS污染使用虚假的DNS服务器,伪装成目标域名的解析服务器, ...
- DNS 劫持 和 DNS 污染
1,用户需要访问www.liusuping.com这个网站,向DNS服务器提出解析请求. 2,DNS服务器通过检查发现www.liusuping.com域名的IP地址是127.0.0.1,将结果返回给 ...
- [计算机网络] DNS劫持和DNS污染
DNS劫持,指用户访问一个被标记的地址时,DNS服务器故意将此地址指向一个错误的IP地址的行为.范例就是收到各种推送广告等网站. DNS污染,指的是用户访问一个地址,国内的服务器(非DNS)监控到用户 ...
- 一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
目录 XSS 攻击 SQL 注入 CSRF 攻击 DDOS 攻击 DNS 劫持 XSS 攻击 全称跨站脚本攻击 Cross Site Scripting 为了与重叠样式表 CSS 进行区分,所以换了另 ...
- openwrt-智能路由器hack技术(1)---"DNS劫持"
openwrt-智能路由器hack技术(1)---"DNS劫持" 1 导读 PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整 ...
随机推荐
- 实践GDB
调试工具简介:GDB Unix程序员最常用的调试工具是GDB,这是由Richard Stallman(开源软件运动的领路人) 开发的GNU项目调试器,该工具在Linux开发中扮演了关键的角色. CG ...
- 20135328信息安全系统设计基础第一周学习总结(Linux应用)
学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/ ...
- UIStepper步进器 ——事件驱动型控件,(一个+和-按钮的)
- (void)viewDidLoad { [super viewDidLoad]; //步进器 固定的size (94*27), 事件驱动型控件 UIStepper *st ...
- 20145208 《Java程序设计》第5周学习总结
20145208 <Java程序设计>第5周学习总结 教材学习内容总结 语法和继承架构 异常处理关键字 第八章内容主要是对Java的异常处理,所以我先了解了一下关键字 Java的异常处理是 ...
- 发布HTML5 RTS游戏-古代战争
古代战争 游戏介绍 "古代战争"是一个2.5D即时战略游戏,使用了帝国时代2的素材,并参考了它的游戏设计和玩法. 游戏基于YEngine2D引擎开发,具备生产.建造.资源采集.战斗 ...
- try-catch和throw,throws的区别和联系
转载:http://blog.sina.com.cn/s/blog_62148d1e0100hkqc.html 区别一:throw 是语句抛出一个异常:throws 是方法抛出一个异常: throw语 ...
- express 笔记 app.helpers 和 app.locals
app.helpers 和app.dynamicHelpers 是express2.X使用的 分别为静态/动态 视图助手通过其注册函数, 例如 app.helpers({ <span style ...
- [工具]推荐一款查看dll依赖工具
引言 很久没写一篇像样的博客了,最近一个月一直忙于项目,也没时间去总结了,回到家,也就是看看书,没怎么总结.不过还是挺兴奋的,每天过得还算充实.这里也算是对五月份的一个总结吧. 为什么要查看dll 因 ...
- Java泛型中E、T、K、V等的含义
Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Numbe ...
- hdu2923 最短路floyd
建图还是有点烦人的. #include<map> #include<string> #include<stdio.h> #include<iostream&g ...