树莓派3B+ 做DNS服务器

Dnsmasq是一款高性能的DNS缓存软件,可以使用它来搭建一个小型的DNS服务器。在使用时,由于dnsmasq可以将域名缓存下来,这样下次就不用再次请求上游的DNS服务器,使用时极大的加快了上网速度,从而提升了上网体验。它还可以做dhcp服务器,可以给局域网设备分配ip地址。如果你有树莓派在闲置,那就赶快利用起来吧,使用你手里的树莓派来搭建一个自己的DNS服务器吧。当然linux下通用的DNS服务器是bind这个软件,但是它的配置非常复杂,在家里或者小型企业使用dnsmasq就够用了,centos也可以安装这个软件。我的文章都是拿网上的文章进行实践同时增加自己的一些整理和纠错整理出来的,毕竟网上很多文章都是几年前的而且有些是3B而不是3B+可以使用的,希望对自己对他人可以有所帮助。

安装Dnsmasq

  • sudo apt-get install dnsmasq

配置Dnsmasq

Dnsmasq的配置文件为 /etc/dnsmasq.conf ,使用vim 打开配置文件

sudo vim /etc/dnsmasq.conf

输入/strict-order 查找并定位到这一行后按回车,不然几百行一行行找太麻烦了。

接着按键盘的I键或者INS键进入插入模式,去掉strict-order前面的#号

strict-order  #按照resolv.conf中nameserver顺序从上到下依次使用

listen-address=127.0.0.1,192.168.1.103  #如果只加上127.0.0.1,表示只能为本机提供dns服务,如果需要为局域网的其他电脑提供dns服务,需要再加上树莓派在局域网内的IP地址。

cache-size=10000 #修改缓存的条数

最后按ESC键,输入:wq 退出并保存dnsmasq.conf文件

重启dnsmasq并加入开机启动

  • sudo systemctl restart dnsmasq

  • sudo systemctl  enable dnsmasq


到这里基本上就配置完成了,你可以在树莓派上nslookup或者dig一下看看结果,当然如果找不到这些命令是因为你没有安装dnsutils,直接通过下面的命令安装即可:


sudo apt-get install dnsutils

测试:dig www.freehao123.com,第一次是没有缓存,所以时间是200多。

Dnsmasq查询时间

第二次再次测试,因为已经有了缓存,所以查询时间已经变成了0.

局域网DNS服务器

好了,DNS缓存加速搞定了,结下了是另一件事。既然它是DNS服务器,不能解析我们自己的DNS算什么DNS服务器呢?那么假设我现在弄一个abc123.com的域名把它解析到我们局域网的一台服务器上,他的IP是192.168.1.5

以后我们在浏览器访问它输入的是abc123.com而不是192.168.1.5

第一种方法:新建配置文件

切换到/etc/dnsmasq.d/路径下,新建一个test.conf文件,内容如下:


address=/abc123.com/192.168.1.5

别忘了重启一下服务:

sudo systemctl restart dnsmasq

第二种方法:修改/etc/hosts文件

sudo nano /etc/hosts

按照如下格式

192.168.1.5  abc123.com

这这条加在最后就可以了,可以按照这种格式加入任意域名的解析

最后修改玩了重启下服务

sudo systemctl restart dnsmasq

这样当查询abc123.com的时候,dnsmasq将直接返回这里设定的IP地址,轻松避免了DNS投毒攻击。

OK,安装成功了!在其它电脑上就可以使用树莓派DNS缓存服务器了,明显可以看到解析域名的速度大大提高,基本上第一次解析花点时间,以后访问时的速度有了极大提高。




最后编辑于:2018/09/03作者: admin

发表评论