|
我们都知道Bind不配合数据库的情况下,经常需要重新载入并读取配置文件,这是造成性能低下的原因.根据这点教训,我们可以考虑不读取/etc/hosts文件.而是另外指定一个在共享内存里的文件,比如/dev/shm/dnsrecord.txt,这样就不费劲了,又由于内存的非持久性,重启就消失,可以定期同步硬盘上的某个内容到内存文件中.
具体实现步骤
$ vim /etc/dnsmasq.conf
no-hosts
addn-hosts=/dev/shm/dnsrecord.txt
# 开机启动
$ echo "cat /etc/hosts > /dev/shm/dnsrecord.txt" >>/etc/rc.local
# 定时同步内容
$ crontab -e
*/10 * * * * cat /etc/hosts > /dev/shm/dnsrecord.txt
Dnsmasq选择最快的上游DNS服务器
经常会有这样的情景,Dnsmasq服务器配了一堆上游服务器,转发本地的dns请求,缺省是Dnsmasq事实上是只挑了一个上游dns服务器来查询并转发结果,这样如果选错服务器的话会导致DNS响应变慢.
解决方法
$ vi /etc/dnsmasq.conf
all-servers ?
server=8.8.8.8 ?
server=219.141.136.10
all-servers表示对以下设置的所有server发起查询,选择回应最快的一条作为查询结果返回.
上面我们设置了两个dns server,8.8.8.8(谷歌dns)和219.141.136.10(移动的dns),会同时查询这两个服务器,询问dns地址谁返回快就采用谁的结果.
dnsmasq-china-list项目
dnsmasq-china-list项目维护了一张国内常用但是通过国外DNS会解析错误的网站域名的列表,保证List中的国内域名全部走国内DNS服务器解析.
项目地址: https://github.com/felixonmars/dnsmasq-china-list
dnsmasq-china-list使用
- 取消dnsmasq.conf里conf-dir=/etc/dnsmasq.d这一行的注释
- 获取项目文件
$ git clone https://github.com/felixonmars/dnsmasq-china-list.git
- 将accelerated-domains.china.conf,bogus-nxdomain.china.conf,google.china.conf(可选)放到/etc/dnsmasq.d/目录下(如目录不存在则建立一个).
- 将
dnsmasq-update-china-list放到/usr/bin/,这是一个批量修改DNS服务器的工具(可选).
参考文档
http://www.google.com
http://purplegrape.blog.51cto.com/1330104/1083354
https://i-meto.com/archives/iptables_PREROUTING.html
http://blog.itphp.org/archives/225
文/Mike
文章出处:运维之美 (编辑:网站开发网_盐城站长网 )
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|