Debian/树莓派Raspberry Pi加速上网体验之设置公共DNS查询服务器
提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!
之前我有一篇文章将树莓派(Raspberry Pi)设置为无线路由的,试用了一段时间觉得效果不错,但是总觉得树莓512MB内存仅仅作为路由太浪费了,于是我就想能不能将DNS公共查询服务器也架设在上面,这样常用的DNS查询将会缓存到树莓派上,也起到DNS查询加速的作用。
首先我找到了网上的解决方案,在树莓讨论版上 《[HOW TO] Use your RPI as a DNS server and speed up yo' net!》 ,当然这个解决方案是基于这篇文章的 《DNS on Raspberry Pi -- Speed up your internet Experience》 ,使用树莓派最大的好处是有强大的社区支持,基本上你所遇到的问题网上都有相关的解决方案,得益于Debian的丰富的包,一些软件可以直接apt安装,我在这里再简单的阐述一下关于DNS公共查询服务器的设置:
原作者为我们直接打包了命令,所以我们可以直接执行下面的代码:
curl "https://raw.github.com/stephendotexe/raspberrypi/master/roles/dnsmasq_server" | sudo sh
其实这里运行的脚本会附带的给我们装上dnsmasq这款软件,当然你也可以通过下面的命令手动安装:
sudo apt-get install -y dnsmasq
下面我们就需要配置DNSMASQ了,配置文件一般位于路径
/etc/dnsmasq.conf
。基本上配置文件内容如下所示:
# Dnsmasq.conf for raspberry pi # /etc/dnsmasq.conf # http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example # Set up your local domain here domain=raspberry.local resolv-file=/etc/resolv.dnsmasq min-port=4096 server=8.8.8.8 server=8.8.4.4 # Max cache size dnsmasq can give us, and we want all of it! cache-size=10000 # Below are settings for dhcp. Comment them out if you dont want # dnsmasq to serve up dhcpd requests. # dhcp-range=192.168.0.100,192.168.0.149,255.255.255.0,1440m # dhcp-option=3,192.168.0.1 # dhcp-authoritative
这里的
server
所指示的就是上级DNS服务器的地址,这里用的是Google的
8.8.8.8
和
8.8.4.4
,也就是说本地缓存查不到的域名将会发送给上级DNS服务器然后本地再缓存结果,可以改成你所需要的,一般就用谷歌的,我就不改了:-)
如果你改动过设置,请重启服务:
sudo service dnsmasq restart
到这里基本上就配置完成了,你可以在树莓派上
nslookup
或者
dig
一下看看结果,当然如果找不到这些命令是因为你没有安装
dnsutils
,直接通过下面的命令安装即可:
sudo apt-get install dnsutils
这里再讲解一个小技巧,大家电脑上的hosts文件一般不陌生,在DNS被投毒污染或者我们需要配置测试Web服务器时会要改这里的域名和IP对应关系,这里我们可以让dnsmasq替我们代劳。切换到
/etc/dnsmasq.d/
路径下,新建一个
test.conf
文件,内容如下:
address=/appspot.com/74.125.155.141
别忘了重启一下服务:
sudo service dnsmasq restart
这样当查询appspot.com的时候,dnsmasq将直接返回这里设定的IP地址,轻松避免了DNS投毒攻击。
额,我想问一下test.conf要写多行记录的语法是什么? 用斜杠还是按格式分行写?
address=/appspot.com/74.125.155.141
这种是要分行写的,一行一条记录。