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 标准要求实现的所有空格/换行格式

原文: https://github.com/chengr28/Pcap_DNSProxy

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

1.访问 https://www.winpcap.org 下载并以管理员权限安装 WinPcap

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

2.访问 https://github.com/chengr28/Pcap_DNSProxy/releases 将二进制可执行文件包下载到本地

  • Windows 版本的 Pcap_DNSProxy 在二进制可执行文件包的 Windows 目录内,可将整个目录单独抽出运行

3.打开下载回来的二进制可执行文件包,将 Windows 目录解压到磁盘的任意位置

  • 目录所在位置和程序文件名可以随意更改,建议将本项目放置在一个独立的目录内
  • 配置文件需要使用固定的文件名(更多详细情况参见下文 功能和技术 一节)

4.确定工具目录的名称和路径后进入目录内,右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat

  • 输入 1 并回车,即选择 "1: Install service" 安装服务
  • 批处理会将程序注册系统服务,并进行防火墙测试,每次开机服务都将自动启动
  • 此时 Windows 系统会询问是否同意程序访问网络,请将 "专用网络" 以及 "公用网络" 都勾上并确认
    enter description here
    enter description here

5.请按照下文 正常工作查看方法 一节,先对程序是否在正常工作进行测试再修改网络配置!

6.打开 "网络和共享中心" - "更改适配器设置" 选择 "本地连接" 或 "无线连接" 或 "宽带连接"

  • 右击 "属性" - "Internet协议(TCP/IP)"(XP/2003) 或 "Internet协议版本4(IPv4)"(Vista 以及更新版本) - "属性" - 勾选 "使用下面的 DNS 服务器地址"
  • 在 "首选DNS服务器" 内填入 "127.0.0.1"(不含引号) 确定保存并退出即可
  • 如果需要使用 IPv6 协议的本地服务器

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

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

1.右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat
2.输入 5 并回车,即选择 "5: Restart service" 立刻重启服务

小更新的方法(需要以管理员身份进行,如果配置文件的 Version 有更新需要进行大更新):

1.提前下载好新版本的 Pcap_DNSProxy(亦即 安装方法 中第 2 步),更新过程可能会造成域名解析短暂中断
2.右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat
3.输入 4 并回车,即选择 "4: Stop service" 停止服务
4.将目录内的所有可执行文件删除
5.将新版本的 Pcap_DNSProxy 的所有可执行文件解压到相同位置
6.右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat
7.输入 3 并回车,即选择 "3: Start service" 启动服务

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

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

安全模式下的使用方法(需要以管理员身份进行):

  • 程序具备在安全模式下运行的能力,在安全模式下右键以管理员身份直接运行程序
  • 直接运行模式有控制台窗口,关闭程序时直接关闭控制台窗口即可

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

1.按照 安装方法 中第 6 步还原 DNS 域名服务器地址配置
2.右键以管理员身份(Vista 以及更新版本)或直接以管理员登录双击(XP/2003)运行 ServiceControl.bat

  • 输入 2 并回车,即选择 "2: Uninstall service" 卸载服务
  • 注意:Windows 防火墙可能会留有允许程序访问网络的信息,故卸载后可能需要使用注册表清理工具清理
  • 转移工具目录路径需要重新安装服务,先卸载服务转移,转移完成后重新安装服务即可

正常工作查看方法:

1.打开命令提示符

  • 在开始菜单或直接 Win + R 调出 运行 ,输入 cmd 并回车
  • 开始菜单 - 程序/所有程序 - 附件 - 命令提示符
    2.输入 nslookup www.google.com 127.0.0.1 或者 nslookup www.google.com ::1 并回车

3.运行结果应类似:

   >nslookup www.google.com
    服务器:  pcap-dnsproxy.server(视配置文件设置的值而定,参见下文 配置文件详细参数说明 一节)
    Address:  127.0.0.1(视所在网络环境而定,本地监听协议为 IPv6 时为 ::1)

    非权威应答:
    名称:    www.google.com
    Addresses: ……(IP 地址或地址列表)

enter description here
enter description here

4.如非以上结果,请移步 FAQ 文档中 运行结果分析 一节