一分钟快速搭建Windows防污染DNS服务器——Pcap_DNSProxy
最近在G+上无意发现一个一个好东西——Pcap_DNSProxy,这是一个运行在Windows上的DNS服务程序,主要功能是防止DNS污染。以前我都是在linux系统上使用Pdnsd搭建防污染的DNS服务器,现在家用的Windows电脑单也可以轻松实现了,而且比Pdnsd搭建更为方便(Pdnsd搭建的方式可以看我的上一篇博客《Ubuntu16.04用Pdnsd替换dnsmasq防止DNS污染》)更酷炫的是,该程序还可以设置HTTP代理或者Socks5代理,使用代理服务器解析DNS请求,更进一步的提高了解析结果的可靠性,通过代理,即使ISP将所有境外服务器都拦截,也可以通过加密代理进行解析,十分适合在天朝境内使用。
Pcap_DNSProxy 是国人写的项目,并在github上开源,其说明文档和下载页面均为中文。安装和部署方式非常简单,配置文件的说明也全是中文(以前看dnsmasq的wiki看的我头大)。实在是居家旅行科学上网必备工具。
官方介绍这是一个基于WinPcap的DNS服务程序,使用DNS加密和TCP协议防止DNS污染,并且支持DNS缓存,可以自定义缓存时间和缓存队列长度等参数,使用起来很像pdnsd,可以设置多个DNS服务器链,并且可以实现国内域名国内解析,国外域名国外解析的效果,加速国内外网站的访问。
该软件的下载地址:https://github.com/chengr28/Pcap_DNSProxy/releases
不知道是不是官方文档的一个说明文档,介绍的非常详细:http://www.lichanglin.cn/%E9%98%B2DNS%E6%B1%A1%E6%9F%93%E5%B7%A5%E5%85%B7Pcap_DNSProxy/
下面简单的介绍一下最快速的部署过程,如果你成功部署过一次之后,第二次去别的计算机部署仅需1分钟不到就可以搞定
1、先下载安装WinPcap:http://www.winpcap.org/install/default.htm
2、然后从上面我写的github地址上下载最新的Pcap_DNSProxy压缩包,下载完成之后解压到本地磁盘上
3、找到\Pcap_DNSProxy-0.4.7.6-bin\Windows文件夹,右击ServiceControl.bat,选择“以管理员身份运行”
4、在弹出的命令行中输入1,回车
注:在这个过程中,可能会弹出360提示你程序试图修改xxx,或者windows防火墙的弹出窗口,一律选择允许就可以了
检查DNS服务是否启动成功,可以进入命令行使用netstat -an查看是否有程序监听127.0.0.1:53端口
5、将系统默认的DNS服务器换成127.0.0.1,如下图,首先打开“网络和共享中心”,找到当前连接的有线或者无线连接
点击相应的连接,修改DNS服务器设置
这样就搭建了一个本地的DNS服务器(自带防污染和DNS缓存功能)并且将系统全部的DNS请求均交由该服务器进行解析
上面只介绍了最简单的一种部署方法,这种配置有时候还是会解析不到向www.facebook.com,www.twitter.com这样的地址,需要我们修改配置文件中的解析策略
我个人总结配置文件一共改三四行就够行了
1、修改解析协议从UDP协议转为TCP协议
2、修改DNS缓存时间为1天以上
3、将53端口开放让局域网用户可以把你的机器当成DNS服务器
修改后的Config.ini文件如下,注意#后面为注释,实际使用时请删掉所有注释内容
[Base]
Version = 0.4
File Refresh Time = 15
Additional Path =
Hosts File Name = Hosts.ini|Hosts.conf|Hosts|Hosts.txt|Hosts.csv|WhiteList.txt|White_List.txt
IPFilter File Name = IPFilter.ini|IPFilter.conf|IPFilter.dat|IPFilter.csv|IPFilter|Guarding.p2p|Guarding|Routing.txt|chnrouting.txt|chnroute.txt[Log]
Print Log Level = 3
Log Maximum Size = 8MB[Listen]
Pcap Capture = 1
Pcap Devices Blacklist = AnyConnect|Host|Hyper|ISATAP|IKE|L2TP|Only|Oracle|PPTP|Pseudo|Teredo|Tunnel|Virtual|VMNet|VMware|VPN|any|lo
Pcap Reading Timeout = 250
Listen Protocol = IPv6 + IPv4 + TCP + UDP
Listen Port = 53
Operation Mode = Server # 这里要从Private改成server,这样局域网的其他设备才能把你的电脑当成DNS服务器
IPFilter Type = Deny
IPFilter Level < 0
Accept Type = [DNS]
Protocol = IPv4 + TCP # 注意这里要把UDP改成TCP,否则有可能解析不了某些网站
Direct Request = 0
Cache Type = Timer # 推荐按照时间缓存,Timer是时间缓存,还有一种是按照数量缓存
Cache Parameter = 86400 # 这个是DNS结果缓存的时间,推荐一天以上,单位为秒
Default TTL = 86400[Addresses]
IPv4 Listen Address =
IPv4 EDNS Client Subnet Address =
IPv4 Main DNS Address = 8.8.4.4:53
IPv4 Alternate DNS Address = 1.0.0.1:53|9.9.9.9:53|208.67.220.220:5353
IPv4 Local Main DNS Address = 114.114.115.115:53
IPv4 Local Alternate DNS Address = 223.6.6.6:53
IPv6 Listen Address =
IPv6 EDNS Client Subnet Address =
IPv6 Main DNS Address = [2001:4860:4860::8844]:53
IPv6 Alternate DNS Address = [2606:4700:4700::1001]:53|[2620:FE::FE]:53|[2620:0:CCD::2]:5353
IPv6 Local Main DNS Address = [240C::6644]:53
IPv6 Local Alternate DNS Address = [240C::6666]:53
省略官方配置文件Demo中剩下的内容,基本都不需要改
其中IPv4 Main DNS Address是主要上游DNS服务器的地址,关系到你本地DNS的速度。还有几个参数如下
IPv4 Alternate DNS Address
- IPv4 备用 DNS 服务器地址:需要输入一个带端口格式的地址,默认为8.8.8.8:53|208.67.220.220:53|208.67.222.222:53
- 本参数支持同时请求多服务器的功能,开启后将同时向列表中的服务器请求解析域名,并采用最快回应的服务器的结果
- 使用同时请求多服务器格式为 “地址 A:端口|地址 B:端口|地址 C:端口”(不含引号),同时请求多服务器启用后将自动启用
Alternate Multi Request
参数(参见下文)- 指定端口时可使用服务名称代替,参见上表
IPv4 Local DNS Address
- IPv4 主要境内 DNS 服务器地址,用于境内域名解析:需要输入一个带端口格式的地址,默认为114.114.115.115:53
- 指定端口时可使用服务名称代替,参见上表
IPv4 Local Alternate DNS Address
- IPv4 备用境内 DNS 服务器地址,用于境内域名解析:需要输入一个带端口格式的地址,默认为114.114.114.114:53
- 指定端口时可使用服务名称代替,参见上表
IPv6 Listen Address
- IPv6 本地监听地址:默认为空
远程代理解析DNS:
如果上面的方法不好用,或者你的地区封锁了全部的国外DNS服务器,那么就需要使用代理来远程解析DNS了,Pcap_DNSProxy支持HTTP代理和Socks5代理,也就是说支持像蓝灯,Shadowsocks,SSH这样的代理。下面以Shadowsocks为例修改配置文件Config.ini
[Proxy]
SOCKS Proxy = 1
SOCKS Version = 5
SOCKS Protocol = IPv4 + TCP
SOCKS Reliable Socket Timeout = 6000
SOCKS Unreliable Socket Timeout = 3000
SOCKS UDP No Handshake = 1
SOCKS Proxy Only = 0
SOCKS IPv4 Address = 127.0.0.1:1080
SOCKS IPv6 Address = [::1]:1080
SOCKS Target Server = 8.8.4.4:53
SOCKS Username =
SOCKS Password =
HTTP Proxy = 0
HTTP Protocol = IPv4
HTTP Socket Timeout = 3000
HTTP Proxy Only = 0
HTTP IPv4 Address = 127.0.0.1:1080
HTTP IPv6 Address = [::1]:1080
HTTP Target Server = 8.8.4.4:53
HTTP Version = 1.1
HTTP Header Field = Content-Length: 0
HTTP Header Field = User-Agent: Pcap_DNSProxy/0.4
HTTP Header Field = Accept: */*
HTTP Header Field = Cache-Control: no-cache
HTTP Header Field = Pragma: no-cache
HTTP Proxy Authorization =
这样就实现了使用Shadowsocks客户端将IP解析请求通过代理发送到8.8.4.4服务器,防止本地8.8.4.4被墙,同理可以修改上面的127.0.0.1:1080为你本地的Shadowsocks或者SSH监听地址,灵活配置
IPv6 DNS免流:
对于某些教育网IPv4+IPv6用户,使用IPv4流量是收费的,而IPv6流量是免费的,但是浏览器会默认使用IPv4流量,强迫浏览器走IPv6的方法就是设置IPv6的DNS,让浏览器只会访问IPv6的站点。根据这个原理,我们可以让pcap_DNSproxy只返回IPv6的解析结果,屏蔽IPv4的解析结果,实现非常容易,修改“Config.ini”
[Listen]
Pcap Capture = 1
Pcap Devices Blacklist = AnyConnect|Host|Hyper|ISATAP|IKE|L2TP|Only|Oracle|PPTP|Pseudo|Teredo|Tunnel|Virtual|VMNet|VMware|VPN|any|lo
Pcap Reading Timeout = 250
Listen Protocol = IPv6 + IPv4 + TCP + UDP
Listen Port = 53
Operation Mode = Server
IPFilter Type = Deny
IPFilter Level < 0
Accept Type = Permit:AAAA
重点是修改最后一行Accept Type,Permit:AAAA意味着仅允许返回IPv6的解析结果,这样就可以过滤掉IPv4的地址,强制浏览器走IPv6流量
想要了解更多的使用方法可以参考我上面贴出的文档地址,全中文很详细。
后记:如果你想单纯的一键搭建一个防污染的Windows DNS服务器,那么还有一个很好的选择就是dnsforwarder,并且不需要WinPcap,只需要一个exe,一个配置文件即可完成,同时支持win/linux平台,抗污染能力非常强,美中不足的是不能像本文的Pcap_DNSProxy那样支持socks或者http代理。我有一篇文章专门介绍《pdnsd的优秀替代方案——dnsforwarder》
一分钟快速搭建Windows防污染DNS服务器——Pcap_DNSProxy相关推荐
- dns设置快速连接微软服务器,快速搭建Windows防污染DNS服务器——Pcap_DNSProxy(一)...
最近了解到一款不错的小工具Pcap_DNSProxy,这是一个可以在Windows上搭建的DNS服务程序,用来防止DNS污染.(同时支持MAC,LINUX) 什么是DNS污染 DNS污染是一种让用户得 ...
- 使用自定义的dns服务器,快速搭建自己的DNS服务器
最近百度推出了自己的DNS服务器,DNS服务器搭建是很高大上的东西,今天看到一篇文章,如果快速拥有自己的DNS服务器! 一.什么是DNS 这个网上就有详细的概念介绍,DNS 是域名系统(Domain ...
- 30分钟快速搭建移动应用直传OSS服务
30分钟快速搭建移动应用直传服务 背景 这是一个移动互联的时代.手机APP上传的数据会越来越多.把数据存储的问题交给OSS, 让开发者能更加专注于自己的应用逻辑. 那么怎么样基于OSS构建一个APP存 ...
- 转载文章-【工具】10分钟快速搭建属于自己的文档网站-来自掘金
掘金 首页 探索掘金 搜索 lvhanghmm的头像 Gopal lv-4 2021年03月09日 阅读 9930 关注 [工具]10分钟快速搭建属于自己的文档网站 前言 很多同学都希望能够拥有自己的 ...
- Linux一键部署duckchat,DuckChat 1.0.7发布,十分钟快速搭建聊天系统
DuckChat 1.0.7发布,十分钟快速搭建聊天系统 2018年09月28日 11:55作者:黄页编辑:黄页 分享 DuckChat是一款安全的私有聊天软件,基于PHP环境,可运行在Docker. ...
- ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
文章目录 1.前言 2. SDK概述 2.1 SDK使用流程 2.2 ESP8266 HDK -- 硬件开发工具 2.3 ESP8266 SDK -- 软件开发工具包 2.3.1 Non-OS SDK ...
- windows AD/DNS服务器搭建
windows AD-DS服务器搭建 1 什么是域 2 域的原理及作用 3 使用域的优势 4 Active Directory(活动目录) 5 安装AD条件 6 安装AD步骤 7 DNS服务器 8 D ...
- Windows server DNS服务器搭建
2008硬件:内存2GB 处理器2 硬盘100GB IP: 192.168.1.56 255.255.255.0 192.168.1.254 127.0.0.0 2012硬 ...
- 10分钟快速搭建自己的服务器
快速搭建服务器 1.创建虚拟机 2.CentOS 7的安装 3.CentOS 7 配置 4. Xshell连接 5.Docker的安装 前言:买了个阿里云的服务器,但是由于内存小docker运行几个容 ...
最新文章
- 报告 | 2018中国区块链行业分析报告
- SmartPointer
- C/C++笔试题目大全
- CentOS7: How to resolve curl#56 - Recv failure: Connection reset by peer
- eclipse maven访问maven私有库
- 关于英特尔® 以太网服务器适配器中 SR-IOV 的常见问题解答
- SAP License:SAP PI(流程集成)
- C++ 设计模式之Static Factory模式(简单工厂模式)
- C++的ORM 开源框架
- redis主从、哨兵、集群的区别
- SOEM控制伺服电机
- TiDB 在 Cisco Webex 架构中的部署和应用
- confluence 制作流程图_Sketch制作交互流程图,哪种工具最高效?
- python去除图片复杂背景_用Python去除图像的黑色或白色背景实例
- oracle lms进程 内存,lms进程耗用大量内存
- CENTOS5.5下使用Roundcube搭建 Webmail
- Lynis介绍与使用
- 【爬虫】Selenium爬取动态网页的base64图片
- win7下制作ubuntu安装u盘
- java 拼音转汉字_Java通过pinyin4j实现汉字转拼音