2015年5月26日星期二

DNS 转发器 解决 DNS 污染

DNS 转发器

在本地开启 DNS 端口,以接收 DNS 请求,并以 UDP 或者 TCP 协议转发至指定的 DNS 服务器,然后将结果重新转发至请求端。使用时需要将本机 DNS 服务器设置为 127.0.0.1 或者另外指定的地址。

https://github.com/holmium/dnsforwarder

如果您要部署服务器,建议您使用 5.x 版本:https://github.com/holmium/dnsforwarder/wiki/%E9%A6%96%E6%AC%A1%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

编译配置选项:https://github.com/holmium/dnsforwarder/wiki/%E7%BC%96%E8%AF%91

最新的二进制文件:https://github.com/holmium/dnsforwarder/tree/5/codeblocks_win/bin
最新的配置文件:https://github.com/holmium/dnsforwarder/blob/5/default.config

2.7 版本下载(2014-03-02):
https://drive.google.com/file/d/0B_yf3JQ0zx6jNGVCZmFfblI5REU/edit?usp=sharing
源码:https://github.com/holmium/dnsforwarder/tree/575e4e4394e3b3c8e4e27d7f6cb3be3ee83d64f4 
一些 BUG 修复。


2.6 Beta 1 版本下载(2014-01-29):
https://drive.google.com/file/d/0B_yf3JQ0zx6jNFFpRVFGaEdHVFE/edit?usp=sharing
此版本增加了 UDP 并发查询和 UDP 防污染的功能,暂时不需要通过 TCP + GFW List 的方式来避免污染。
此版本的 UDP 防污染有一个BUG,开启 UDP 防污染需要把 UDP 服务器全部设为国外的

2.5 Beta 2 版本下载(2013-12-08):
https://drive.google.com/file/d/0B_yf3JQ0zx6jM3RsUDVDV1VKTGM/edit?usp=sharing
一些小的优化。

2.5 Beta 1 版本下载(2013-10-27):
https://drive.google.com/file/d/0B_yf3JQ0zx6jcy1TdXIxWnRLVEU/edit?usp=sharing
添加了可以对域名指定专门的服务器。

2.3.1版本下载(2013-08-26):
https://docs.google.com/file/d/0B_yf3JQ0zx6jVm56dEdaRTRFczQ/edit?usp=sharing
减少内存占用和一些小的优化。

2.3版本下载(2013-02-09):
https://docs.google.com/file/d/0B_yf3JQ0zx6jVjd0NTJDTFJjeDg/edit?usp=sharing
添加IPv6支持,多服务器支持。

关于错误信息 An error occured while receiving from xxx.xxx.xxx.xxx : 10054 : An existing connection was forcibly closed by the remote host.
此信息是在接收 DNS 请求时遇到的错误,多半是浏览器等在请求 DNS 后未等到回应就结束连接,如果不是非常频繁的出现,则不必要担心。

2.2.4版本(2013-01-23):
此版本修复上一版本的已知 BUG;添加定时刷新 GFW List 功能。

2.2.3版本下载(2013-01-20):
https://docs.google.com/file/d/0B_yf3JQ0zx6jdUNhMldQVzZZZDg/edit
此版本修复上一版本的已知 BUG;添加 GFW List 载入功能;缓存重载功能。
已知 BUG:
`ExcludedDomain' 在未载入 GFW List 时无效。

2.2.2版本下载(2013-01-01):
https://docs.google.com/open?id=0B_yf3JQ0zx6jb1hNT181UER5ODA 
此版本主要添加了排除列表的通配符支持,还有一些BUG修复以及细微的修改
已知 BUG:
IPv6 Hosts 无效

2.2.1版本下载(2012-09-16):
https://docs.google.com/open?id=0B_yf3JQ0zx6jWXpVakNvQnJUdnM
使用配置文件,增加 Hosts 载入等功能(支持通配符)。

2.1版本下载(2012-02-24):
http://115.com/file/e7fjqoil#
https://docs.google.com/open?id=0B_yf3JQ0zx6jRUlWbDd6emQzcVE
此版本增加规则设置,缓存等功能。

有一个办法就是将首选 DNS 设为 127.0.0.1,将候选 DNS 设为其他,这样当 DNS 转发器没有启动时也不会影响正常使用。

这是直接通过 8.8.8.8 进行的查询(存在 DNS 伪造):
 C:\Users\Admin>nslookup twitter.com 8.8.8.8
服务器:  google-public-dns-a.google.com
Address:  8.8.8.8

非权威应答:
名称:    twitter.com
Addresses:  37.61.54.158
          159.106.121.75

这是通过转发器进行的查询:
C:\Users\Admin>nslookup twitter.com 127.0.0.1
服务器:  localhost
Address:  127.0.0.1

非权威应答:
名称:    twitter.com
Addresses:  199.59.148.82
          199.59.148.10
          199.59.149.198

这是使用 http://www.kloth.net/services/nslookup.php 进行的查询:
DNS server handling your query: 8.8.8.8
 DNS server's address: 8.8.8.8#53
 
 Non-authoritative answer:
 Name: twitter.com
 Address: 199.59.148.10
 Name: twitter.com
 Address: 199.59.149.230
 Name: twitter.com
 Address: 199.59.148.82

没有评论:

发表评论