在Windows下部署Unbound本地DNS服务

2012年4月23日 | 分类: 翻墙相关 | 标签: , , , , , , , ,

这篇文章主要讲如何在Windows系统下利用Unbound部署本地DNS服务

部署本地的DNS的意义

一般情况下,我们使用的DNS是由ISP提供的,但是很多无良的ISP提供的DNS服务或多或少的都有hijacking行为(将无法解析的域名劫持到一个广告页面上),让人很是恼火。有人为了防止DNS hijacking,使用了一些第三方的DNS,比如OpenDNSGoogle Public DNS。但是这样又带来一个问题,那就是会导致一些部署了CDN的 网站速度变慢甚至无法访问。究其原因,是因为CDN是通过你查询的DNS的位置来判断你的位置的,大多数第三方DNS都是海外服务器,这样会导致CDN认 为你在海外,于是给你的DNS返回海外的IP。尤其是中国的电信和联通这两个世界上最远的网络,使用海外DNS服务使得CDN根本无法判断你是电信还是联 通用户,其速度可想而知。因此,部署本地DNS可以完美的解决这两个问题。

部署步骤

  1. 在这里下载一个Unbound的Windows安装包:http://unbound.net/download.html, 然后安装。这里需要注意的是,对于Vista/7用户,建议不要把Unbound安装在C:\Program Files下面,原因有二:1、这个路径里有空格,会使命令行处理起来很麻烦;2、由于UAC的权限,在这个路径里修改配置文件会变得十分麻烦。安装的时 候把所有的组件都选上。
  2. 这里假定安装路径为D:\Unbound,进入这个目录。对于Windows系统来讲,Unbound
    是以服务的方式运行,因此它的配置文件就是安装目录下的“service.conf”。你在“控制面板\所有控制面板项\管理工具”的“服务”里可以看到一个名叫“Unbound DNS validator”的服务,你可以在这里对进行关闭、打开、重启的操作。
  3. 在这里:ftp://ftp.internic.net/domain/named.cache 下载一个根域名服务器的缓存列表,文件名也是“named.cache”,将其拷贝到Unbound的安装目录下。
  4. 在原有的service.conf后面追加如下内容:(请根据你的实际安装路径修改第二行)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    server:
    directory: “d:\Unbound”
    # file to read root hints from.
    # get one from ftp://FTP.INTERNIC.NET/domain/named.cache
    root-hints: “named.cache”
    # if yes, perform prefetching of almost expired message cache entries.
    prefetch: yes
    do-ip4: yes
    do-ip6: no
    do-udp: yes
    do-tcp: yes
  5. 重启Unbound DNS validator服务。将你的DNS设置成127.0.0.1,然后用nslookup命令测试。

需要说明的问题

  1. 本地DNS不能对抗GFW的DNS干扰,因为GFW的DNS干扰是在你查询根域名服务器的时候完成的,和ISP无关。ISP搞的是DNS hijacking,这种方法可以完美的解决DNS hijacking问题,而且不会让CDN误判你的位置。
  2. 本地DNS服务可能会消耗你一部分系统资源,所以请权衡。另外由于个人电脑经常关机会导致DNS Cache基本上失效了,因为这玩意是给服务器设计的。

补充

Unbound是支持DNSSEC的,这样就更加提高了安全性。注意你的service.conf中的这两句:

1
2
3
server: auto-trust-anchor-file: “D:\Unbound\root.key”
server: dlv-anchor-file: “D:\Unbound\dlv.isc.org.key”

你可以利用这个网站来测试你是否被DNSSEC保护:http://dnssectest.sidn.nl/,点击“Do the test”按钮后,如果出现一个绿色对号就说明你已经在DNSSEC的保护之下。

原文http://elvisw.com/2012/02/windows-config-unbound-server/

  1. 事实上
    2012年8月27日14:40

    Unbound DNS validator 开不起来