用pdnsd实现DNS解析加速

April 16th, 2013 Leave a comment Go to comments

你是不是一直受到DNS服务器查询速度太慢的困扰?本文推荐Linux下一款名叫pdnsd的软件,解决这个问题。相比bind和dnsmasq,pdnsd有一个优点:重启后仍然能记得之前缓存的条目。这对家庭用的计算机来说非常重要,因为不像服务器那样7×24小时开机,所以一旦关机重开后还需要重新创建缓存的话,加速效果会非常有限。

一、安装
依然使用我最爱的Archlinux为例。pdnsd在community源里,直接安装即可:

二、配置
pdnsd附带了一个配置文件示例,直接拷贝一份后,按自己的情况进行修改:

注意修改配置文件的时候别忘了加行末的分号,那是不可省略的。
其中有几项需要按如下修改以提高DNS查询效率:

pdnsd默认的DNS服务器是OpenDNS(208.67.222.222/208.67.220.220),而据说用OpenDNS访问google有时候会出现反应慢的问题,所以建议直接换成google的DNS服务器:8.8.8.8和8.8.4.4。

接着,修改你的/etc/resolve.conf(或resolve.conf.head),将已有的nameserver信息清空,只留下面这一行:

为防止resolve.conf被其他程序意外修改,可以加上sticky属性:

三、测试
启动pdnsd服务,然后测试一下可用性:

如果正常返回,则说明pdns配置成功。现在可以将pdnsd设为开机启动项了:

至此,一个本机DNS服务器搭建完成。

注意本文只解决了DNS查询速度问题,并不能解决DNS污染等问题。DNS污染可以通过专门的软件或将本地DNS配置成以TCP方式从远端DNS服务器取得查询结果,然后以UDP方式响应本机查询请求的方式解决。pdnsd有一个专门的配置项目:

本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 用pdnsd实现DNS解析加速
  1. No comments yet.
  1. No trackbacks yet.