Aug 28

Unbound 是一款免费的相当轻量的 DNS 本地服务器软件,以前曾经做过介绍 Config Unbound On Windows

经过测试,原来只要改一下 Unbound 的配置文件,也可以把它当 PWX-DNS-Proxy 用!

方法很简单,安装完 Unbound 后,打开安装目录下的 service.conf 文件,修改(添加)以下两行内容:(注意,此方法只适用于 Unbound 1.4.12 及其以下版本,新版的官方给出了直接参数支持的方法,详见文末

# Enable UDP, "yes" or "no".
do-udp: no

# Enable TCP, "yes" or "no".
do-tcp: yes

这样就强制 Unbound 只监听 TCP 的 53 端口了。

优点: Unbound 是一款专业的 DNS 服务器软件,标准功能和稳定性比 PWX-DNS-Proxy 强,查询速度较快,内存占用也比 PWX-DNS-Proxy 少;

缺点: 没有 PWX-DNS-Proxy 那样可以自定义某些网站使用特定的 DNS 服务器功能,而且由于关闭了 UDP 端口监听,nslookup 命令使用默认格式不能查询域名了,必须加 -vc 参数。

更新:在 forward-zone 中可以设置怎样的域名用哪个服务器查询,类似:

# forward-zone:
# name: "."
# forward-addr: 8.8.4.4
# forward-addr: 192.168.2.1@5355 # forward to port 5355.
# forward-zone:
# name: "cn"
# forward-host: 202.96.134.133

顺便说下,路由器是 Tomato,DD-WRT 那样使用 DNSMasq 的,可以把 Unbound 或者 PWX-DNS-Proxy 的查询服务器设置为路由器 IP,利用 DNSMasq 来进行更加灵活的配置。

2011-09-19 更新,新版的 Unbound 1.4.13 应该如此配置 DNS-Over-TCP:

# if yes, perform prefetching of almost expired message cache entries.
prefetch: yes

# Enable IPv4, "yes" or "no".
do-ip4: yes

# Enable IPv6, "yes" or "no".
do-ip6: no

# Enable UDP, "yes" or "no".
do-udp: yes

# Enable TCP, "yes" or "no".
do-tcp: yes

# upstream connections use TCP only (and no UDP), "yes" or "no"
# useful for tunneling scenarios, default no.
tcp-upstream: yes

注意 do-udp 一定要是 yes,但是实际上游查询会使用 tcp;还有一个切记先用 -vc 的 nslookup 确定你的上游 DNS 服务器支持 TCP 查询,国内的貌似全关了 :mrgreen:

Unbound 1.4.13 下载


Aug 17

项目地址:

https://code.google.com/p/pwx-dns-proxy/

简介:

这个 DNS 代理服务器是基于 Python 以及 Twisted 框架写成的,并且它支持几乎所有的 DNS 请求类型,包括 A 地址以及 AAAA 地址(IPv6)。

远程服务器的 DNS 应答根据它们的 TTL 值将会被缓存在本地。

另外,这个服务器能够链接多个上游服务器,并且根据查询域名的不同,使用特定的服务器查询。

在查询上游服务器的时候,可以(强制)使用 TCP 协议,而不是 UDP 协议。这样,就可以避免大部分 DNS 污染了。

提供了本地 HOSTS 表的功能,支持 IPv4 和 IPv6 的地址。

这个项目的初衷是为中国大陆的用户提供一个完整的 DNS 代理解决方案——因为它能够透过 GFW,获得被屏蔽的网站的真实 IP 地址。另外,当中国大陆的用户使用 VPN 翻墙的时候,他们既能够使用更安全的、国外的 DNS 服务器,也能够享受更快的上网速度——DNS 查询结果会被缓存,而且大陆拥有 CDN 的门户网站也能够通过 ISP 的 DNS 服务器查询地址,不至于翻山越岭到美国的服务器上访问这些门户网站的内容。
终于无需再去频繁的更新那些被 DNS 劫持的站点地址 HOSTS 文件了!而且针对仅仅遭受 DNS 劫持的 Dropbox,Xmarks 以及那些境外文件服务网站,使用这个工具比使用 VPN 以及 SSH 都要来得方便(当然前提是站点本身没有被墙,只是 DNS 被污染)

DNS 服务器效率测试:

在服务器配置文件中我使用了 202.14.67.14 这个香港 ISP 的 DNS 服务器来查询,由截图看出, PWX 的确有缓存功能。

配置文件 dnsproxy.conf 中有详细的参数解析,个人建议 TCP 查询并不一定要用 8.8.8.8 这个 Google 的服务器地址,北方可以找韩国的,南方可以用香港的 ISP DNS 服务器。

在Windows下,使用 nslookup 命令时加上 -vc 参数可以强制使用 TCP 协议而不是 UDP 协议进行 DNS 查询。例如 :

nslookup -vc encrypted.google.com 8.8.8.8

进行DNS查询就可以得到正确的查询结果,其中 encrypted.google.com 是要解析的地址,8.8.8.8 是解析用到的 DNS 服务器地址,用此命令可以预先测试 DNS 服务器是否支持 TCP 方式的查询。

安装调试方法:

直接解压,运行 dnsproxy.exe 会有个黑窗口停留在任务栏,如果黑窗口一闪而过请查看配置文件是否有错。设置系统 DNS 服务器地址为 127.0.0.1 ,启动浏览器,应该能正常打开网页,同时黑窗口会有一些查询调试信息出现。正常后,可以运行 install.bat 来把这个软件安装成系统服务,开机自动运行而且不会有黑窗口出现。

DNS 服务器为保证安全性会随机打开一些高位端口(1024+,我机器都是20000+的端口号)来执行查询通讯,确保你的防火墙允许这个程序访问这些端口,如果系统有限制可以通过 TCPOptimizer 来改。

max_open_port

Tags: , ,

Apr 24

我的 QQ 能聊天,但是什么网页都打不开了,怎么办?!。。。。。。噢 No,我重新登录 QQ 居然都上不去了!

出现这种情况,一般都是 DNS 出问题,今天介绍几款 DNS 测试软件,可以方便的解决这个问题,当然,不限于此。

Fast DNS

首先出场的是 彗星 DNS 优化器。这个软件内置了大量的 DNS 服务器地址,几乎囊括了国内各省市的主要 DNS 服务器地址和国外一些著名的 DNS 服务器地址例如 Google,OpenDNS 等。软件的使用非常简单,启动后使用测试一键优化,软件会测试所有的 DNS 服务器地址速度以及解析质量,最后把软件认为最好的 DNS 服务器自动设置给你的网卡。之后你只需要在运行框中输入 ipconfig /release ,然后再输入 ipconfig /renew 即可让新的 DNS 服务器生效。强烈建议新手用户和走南闯北的售后服务人员,使用这个软件来解决 DNS 相关故障。

DNS Jumper

第二个是 DNS Jumper 。这个软件也内置了一些 DNS 服务器地址,但是大多是国外的,好在可以通过编辑 ini 文件来添加国内的 DNS 服务器地址。它可以通过点击 Fastest DNS 按钮来批量测试 DNS 服务器,也可以在下拉菜单选中一组 DNS 服务器后点击下面的 check response time 来测试,之后只需点击 Apple DNS 然后 Flush DNS 即可让新的 DNS 服务器生效。

DNS Benchmark

第三个是本站曾经多次提及的 GRC's DNS Benchmark 。这款软件可以全面测试 DNS 服务器的解析速度,安全程度,专业程度较高,并不建议初级用户使用。

NameBench

最后一个是 NameBench 。这款软件是比较纯粹的一款 DNS 服务器测速软件,DNS 服务器手动填写,但是软件可以根据自动侦测出来的用户区域来添加区域内最佳 DNS 服务器。内置 Alexa Top2000 为待测试网站地址,生成的报表非常详细,包括速度和劫持情况。测试完成后也会提醒用户哪几个 DNS 服务器最适合当前的测试机器。

你也可以去 dnsentropy 在线测试你当前使用的 DNS 服务器状态。

附件包括了本文介绍的所有软件,均为免安装版本。


Apr 10

Tomato 内置的 DNS 服务器 DNSMASQ 默认缓存条目是 150 条,默认设置不能抵挡 127.0.0.1 段的 DNS-rebind attacks 。

Tomato_DNSMASQ_Setting

如上图设置 Tomato 的 DNS,并且添加如下自定义参数:


## Some Tweak
cache-size=8192
stop-dns-rebind
log-async=5
## Additional DNS servers
# Hong Kong BroadBand Network DNS servers
server=203.80.96.10
server=203.80.96.9
# Huchison Whampoa DNS servers
server=202.45.84.58
server=202.45.84.59

这样设置后用 DNS Benchmark 测试可以得到一个完全安全的本地 DNS 服务器,并且增加 DNS 缓存数量到 8192 条;添加的 DNS 服务器位于香港,适用于广州深圳用户,其他地方的用户可以修改这些服务器地址。

DNS Benchmark

在 Telnet 控制台输入 killall -USR1 dnsmasq ,然后去 Tomato 的日志目录可以查看全部 DNS 服务器查询命中情况。

以上适用于 TomatoUSB 或者原版,如果要用在 Tomato Duelwan 上面,要去掉 cache-size=8192 这条,因为 TD 已经内置了 cache-size=512 ,另行设置会出错导致 DNSMASQ 不能启动。

Tomato Duelwan 修改 cache-size 的方法,telnet 登录路由器:


nvram set dnsmasq_cachesize=1024
nvram commit
reboot


Mar 26

About Deadwood

Deadwood is the code that will eventually become MaraDNS’ next recursive resolver; right now it is a stable and functioning non-recursive cache. Deadwood, unlike MaraDNS, does not need threads to resolve queries, and has features MaraDNS’ recursive cache doesn’t have, such as “resurrections” and the ability to read and write the cache to disk.

Only 34.3k ,it can write DNS items to the file and load on next start.Easy to config.(Default config can work well like a charm.)

http://maradns.org/deadwood/stable/Deadwood-3-0-02-win32.zip

My config example:



# Forward Servers we connect to

upstream_servers[“.”]=”202.14.67.4, 202.14.67.14”

#In order to enable DNS-over-TCP, this variable must be set and have a value of 1.

tcp_listen = 1

# The IP this program has

bind_address = “127.0.0.1”

# The IPs allowed to connect and use the cache

recursive_acl = “127.0.0.1/16”

# The file containing a hard-to-guess secret

random_seed_file = “secret.txt”

# This is the file Deadwood uses to read the cache to and from disk

cache_file = “dw_cache”


[4/5]  < 1 2 3 4 5 >