Pages

Friday, 31 July 2015

使用dnsmasq来缓存域名


简单来说dnsmasq是一款dns的缓存软件,可以将你的dns请求的结果缓存起来,下次再请求时就直接将缓存的记录回复给你,省掉了到loacldns服务器上解析的时间。当然缓存的时间是由dns记录中的ttl字段来设置的。
dnsmasq一般在各个发行版中都有,在Debian下只需要apt即可
# aptitude install dnsmasq安装后默认就已服务启动了,然后打开/etc/dnsmasq.conf文件进行配置,我的配置如下:
#不读取/etc/resolv.conf文件
no-resolv
#不扫描/etc/resolv.conf和/etc/dnsmasq.conf文件的改动,如果有改动直接重启程序即可
no-poll
#设置dns服务器
server=208.67.222.222
server=208.67.220.220
#禁用掉dnsmasq的dhcp功能。dnsmasq还有dhcp功能,而且代码还占了很大的比重,反正我用不到
no-dhcp-interface=eth0
嗯,我用的那两个dns就是opendns,使用国内的dns总是不让人放心,时不时就给你来个域名劫持什么的,所以推荐大家也使用opendns吧。opendns解析的速度比localdns要慢,毕竟服务器再国外,所以才需要用dnsmasq来缓存加速。
设置完成后重启dnsmasq,然后设置本机的dns使用127.0.0.1就行了
# /etc/init.d/dnsmasq restart
# echo nameserver 127.0.0.1 > /etc/resolv.conf
当然,你也可以让局域网内的其他电脑将dns服务器指向你的机器,来享受缓存带来的快感:)