域名污染知识

域名DNS污染

很久以前就想要写一篇防止DNS污染的文章,但是找了很多的工具,要么很复杂,要么没有智能分线路解析的功能。简单解释下,DNS污染就是指运营商对于你的DNS域名解析请求会进行修改,以插入广告,或者让你无法访问某些网站,网速也会变慢。

最常规的想法就是把DNS全部使用一台国外VPS进行解析,返回结果。但是这样又带来一个问题:很多套上CDN的网站会根据请求DNS服务器的不同而给你不同的IP地址,访问不同的线路。

如果全部在国外的DNS服务器上解析,可能会一直让你走国外的线路访问国内的网站。本次我发现了一个宝贝,叫做 Pcap_DNSProxy。

特点


国内域名自动使用114DNS解析,不在白名单中的域名都在国外DNS服务器解析,纯净无污染,提升网速,拒绝广告。

Summary 简介

Pcap_DNSProxy 是一个基于 WinPcap/LibPcap 用于过滤 DNS 投毒污染的工具,提供便捷和强大的包含正则表达式的修改 Hosts 的方法,以及   对 DNSCurve/DNSCrypt 协议、并行和 TCP 协议请求的支持。多服务器并行请求功能,更可提高在恶劣网络环境下域名解析的可靠性:

  • IPv4/IPv6 协议双栈支持,并可自定义多端口多地址监听和远程请求协议
  • 服务器模式为其它设备提供解析服务,可限制请求范围
  • 支持对 CNAME 记录和解析结果进行 Hosts 并同时支持 Local Hosts 境内 DNS 服务器解析,可提高对境内域名解析速度和服务器访问速度
  • 主要/备用双服务器模式,境外服务器支持并行多次请求,提高 DNS 解析可靠性
  • 独立 DNS 缓存、EDNS 标签、DNSSEC 请求功能以及完整的 DNSCurve/DNSCrypt 协议支持
  • 原生 SOCKS 版本 4/4a/5 和 HTTP CONNECT 隧道协议包括 TLS/SSL 加密连接的支持
  • 丰富的配置参数和选项以及错误报告功能
  • 支持 ASCII 和 UTF-8(/BOM) 和 UTF-16(LE/BE) 和 UTF-32(LE/BE) 编码以及 Unicode 标准要求实现的所有空格/换行格式

安装方法(需要以管理员身份进行)

自动获取纯净DNS设置方法


① 安装WinpCAP

打开网址:https://www.winpcap.org/install/default.htm 

下载安装 WinpCAP

  • WinPcap 只需要安装一次,以前安装过最新版本或以后更新本工具时请从第2步开始操作
  • 如果 WinPcap 提示已安装旧版本无法继续时,参见 FAQ 中 运行结果分析 一节
  • 安装时自启动选项对工具的运行没有影响,本工具直接调用 WinPcap API 不需要经过服务器程序

② 下载 Pcap_DNSProxy

下载地址:https://github.com/chengr28/Pcap_DNSProxy/releases

  • 打开下载回来的二进制可执行文件包,将 Windows 目录解压到磁盘的任意位置
  • 目录所在位置和程序文件名可以随意更改,建议将本项目放置在一个独立的目录内
  • 配置文件需要使用固定的文件名

③ 下载完成后,我们解压文件,进入里面的Windows文件夹。

以管理员身份 运行 ServiceControl.bat 文件。并输入’1‘, 回车

  • 确定工具目录的名称和路径后进入目录内,右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat 
  • 输入 1 并回车,即选择 “1: Install service” 安装服务
  • 批处理会将程序注册系统服务,并进行 Windows 防火墙测试,每次开机服务都将自动启动
  • 此时 Windows 系统会询问是否同意程序访问网络,请将 “专用网络” 以及 “公用网络” 都勾上并确认

至此,软件端配置就完成了。

设置本地DNS服务器


下面就是把我们电脑的DNS服务器改成本机 127.0.0.1,这个很简单。

打开 控制面板 \ 网络和 Internet \ 网络和共享中心 \ 更改适配器设置 

右击你的网卡,选择 属性 ,将 首选DNS服务器 改成 127.0.0.1

  • 如果需要使用 IPv6 协议的本地服务器
  • 右击 “属性” – “Internet协议版本6(IPv6)” – “属性” – 勾选 “使用下面的 DNS 服务器地址”
  • 在 “首选DNS服务器” 内填入 “::1“(不含引号) 确定保存并退出即可
  • 请务必确保只填入这两个地址,填入其它地址可能会导致系统选择其它 DNS 服务器绕过程序的代理
  • 注意:建议将 “本地连接” 和 “无线连接” 以及 “宽带连接” 全部修改!

最后确定,保存就行了~

小白以上内容足够使用   以下为高阶使用技巧


特别注意: 

* 如需让程序的流量通过系统路由级别的代理(例如 VPN 等)进行域名解析,请选择其中一种方案,配置完成后重启服务:

 * Direct Request = IPv4 

 * Direct Request = IPv6 

 * Direct Request = IPv4 + IPv6 

重启服务方法(需要以管理员身份进行): 

1.右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat

2.输入 5 并回车,即选择 “5: Restart service” 立刻重启服务

更新程序方法(需要以管理员身份进行,切勿直接覆盖,否则可能会造成不可预料的错误): 

  • 提前下载好新版本的 Pcap_DNSProxy(亦即 安装方法 中第2步),更新过程可能会造成域名解析短暂中断
  • 备份好所有配置文件 Hosts 文件 IPFilter 文件的自定义内容
  • 右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat
  •  输入2 并回车,即选择 “2: Uninstall service” 卸载服务
  •  将整个 Pcap_DNSProxy 程序的目录删除。注意 Windows 防火墙可能会留有允许程序访问网络的信息,卸载服务后又变更了程序的目录则可能需要使用注册表清理工具清理
  •  将新版本的 Pcap_DNSProxy 解压到任何位置(亦即 安装方法 中第3步)
  • 将配置文件的自定义内容加回新版本配置文件里相应的区域内
  •  按照 安装方法 中第4步重新部署 Pcap_DNSProxy 

卸载方法(需要以管理员身份进行): 

  • 按照 安装方法 中第6步还原 DNS 域名服务器地址配置
  • 右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat 
  •  * 输入2 并回车,即选择 “2: Uninstall service” 卸载服务
  •  * 注意:Windows 防火墙可能会留有允许程序访问网络的信息,故卸载后可能需要使用注册表清理工具清理
  •  * 转移工具目录路径需要重新安装服务,先卸载服务转移,转移完成后重新安装服务即可

正常工作查看方法: 

  • 打开命令提示符

* 在开始菜单或直接 Win + R 调出 运行 ,输入cmd 并回车

* 开始菜单 – 程序/所有程序 – 附件 – 命令提示符

  • 输入 nslookup www.google.com 并回车
  • 运行结果应类似:

   >nslookup www.google.com 

 服务器: pcap-dnsproxy.server(视配置文件设置的值而定,参见下文 配置文件详细参数说明 一节) 

 Address: 127.0.0.1(视所在网络环境而定,本地监听协议为 IPv6 时为 ::1) 

非权威应答: 

 名称: www.google.com 

 Addresses: ……(IP地址或地址列表)

       

浏览过本文章的用户还浏览过
  • 如何防止DNS污染?

    对于 DNS污染 ,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法。但是利用我们对 DNS污染 的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理服务器或VPN的情况下访问原本访问不了的一些网站。 当 [详细]

  • 域名DNS污染怎么解决 教你几招轻松恢复

    DNS污染指的是用户访问一个地址,国内的服务器(非DNS)监控到用户访问的已经被标记地址时,服务器伪装成DNS服务器向用户发回错误的地址的行为。范例,访问油管、脸书之类网站等出现的状况。 你使用一个不存在的 IP (肯定不是 DNS )作为 DNS 去解析某个域名 [详细]

  • 如何彻底修复DNS污染呢?

    平时使用的系统上,这里以 Windows 系统为例,系统通常会在内部有一个 DNS 的缓存 DNS 记录。缓存 DNS 记录有什么用呢? 可以帮助系统快速定位并访问 DNS 地址。 但有时候可能缓存的一些 DNS 记录会有问题,导致在打开网页时会出现打不开的情况。如果遇到这 [详细]

  • 如何知道域名是否遭遇了DNS污染

    如何知道是否遭遇了DNS污染是很多朋友们都想知道的,针对这些以下业内相关专家就来告诉大家。 DNS污染是什么 它是指一些网络运营商为了某些目的,而对DNS进行一些操作而导致使用ISP的正常上网设置无法能通过域名取得正确的IP地址;很多国家或者地区往往为了 [详细]