通过开源程序同时解决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,所以现在整 ...
随机推荐
- ios 定位 航向检测
// ViewController.m // CoreLocation框架的基本使用—定位 // 注意 点: 1.设置地位可用 2. 设置允许本程序定位(对弹出的框,允许即可) 3. 为模拟器 设置位 ...
- 缓存算法之belady现象
前言 在使用FIFO算法作为缺页置换算法时,分配的缺页增多,但缺页率反而提高,这样的异常现象称为belady Anomaly. 虽然这种现象说明的场景是缺页置换,但在运用FIFO算法作为缓存算法时,同 ...
- html:关于表单功能的学习
比如我在某jsp页面中写了如下表单: <form action="/MavenWeb/TestFormPost" method="get"> & ...
- java系列: 在eclipse中调试时,输入的jsp或者servlet页面的地址要区分大小写
比如在当前web工程中有一个jsp页面的名字是: Welcome.jsp 在eclipse中调试时,如果在浏览器中输入: http://localhost:8080/MavenWeb/welcome. ...
- java个人总结
20145230<Java程序设计>课程总结 每周读书笔记链接汇总 20145230<java程序设计>第0周学习总结:http://www.cnblogs.com/kobe2 ...
- asp.net mvc 中的部分视图
使用方法:@Html.Action(action, controller)加载局部页面.例如在模板页中使用:@Html.Action("Contact", "Compan ...
- GCD 深入理解:第二部分
在本系列的第一部分中,你已经学到超过你想像的关于并发.线程以及GCD 如何工作的知识.通过在初始化时利用 dispatch_once,你创建了一个线程安全的 PhotoManager 单例,而且你通过 ...
- iOS边练边学--iOS中的(ARC下)单粒模式(GCD实现)
一.ARC中实现单粒模式 在.m 保留一个全局的static的实例 static id _名称; 重写allocWithZone:方法,在这里创建唯一的实例 提供一个类方法让外界访问唯一的实例 实现c ...
- .net架构设计读书笔记--第二章 设计体系结构
第五节 探索领域架构 一.领域驱动设计的价值与意义 最初在java中使用,.net要晚些才引入.领域驱动设计出现之初的争议.一个向导,少走弯路 1. 我们真的需要DDD吗? DDD并不适用于每个软 ...
- PowerDesigner-导出表到word
1. 在工具栏中选择[Report -->Reports],如下图 2. 点击第二个图标创建一个Report,如下图 该wizard中有三个信息 Report name Report : Rep ...