Dnsmasq提供DNS缓存和DHCP服务功能,可以用来在本地或在国内VPS搭建域名解析服务器(DNS)或在国内VPS提高对访问网站的链接速度。
Dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。
安装Dnsmasq
yum install -y dnsmasq启动Dnsmasq
service dnsmasq start设置为开机启动
systemctl enable dnsmasq以上,Dnsmasq安装完成,接下来进行具体配置。
Dnsmasq的配置文件为/etc/dnsmasq.conf,这个文件包含大量的选项注释,如果想要详细了解其中的内容,可以点击dnsmasq配置文件详解,这里我们只是介绍一下常用的配置功能。
提示:
查看配置文件语法是否正确,可执行下列命令:
dnsmasq --test在修改配置文件后,需要重启dnsmasq生效。
监听地址(数种情况):
listen-address=127.0.0.1 #在本地电脑上运行 listen-address=192.168.x.x #为局域网提供DNS服务 listen-address=127.0.0.1,192.168.x.x #多个ip地址设置 listen-address=0.0.0.0 #不限制连接,也可以直接#注释掉使用你创建的域名解析文件
resolv-file=/etc/resolv.dnsmasq.conf strict-order #严格按照resolv.conf中的顺序进行查找 addn-hosts=/etc/dnsmasq.hosts #在这个目里面添加记录在这里,resolv.dnsmasq.conf起到的作用是,当dnsmasq未在本地配置文件中查询到域名配置时,将在该文件所记录的域名服务器中查询。
修改/etc/resolv.conf
echo 'nameserver 127.0.0.1' > /etc/resolv.confdnsmasq将读取该文件中的信息,依次按照其中记录的服务器顺序来查询域名。
创建文件 创建 /etc/dnsmasq.hosts
创建 /etc/resolv.dnsmasq.conf ,并在其中添加一个域名服务地址,如
nameserver 114.114,114.114 #国内常用DNS nameserver 9.9.9.9 #国外著名防恶意网站DNS查看dnsmasq是否正常启动
netstat -tunlp|grep 53测试缓存
dig www.abc.com事实上提供DNS服务的软件有多种,而dnsmasq广受欢迎在于它不止提供了一些基本功能,同样还有着它的特色。(在配置文件之中添加以下代码生效)
强制解析域名
address=/some.domain/1.2.3.4你可以将某些域名指向无效IP或127.0.0.1,以屏蔽某些广告。
Ps:这个功能如果用bind做的话,那一堆东西大概会令你头大。
制定上游DNS服务器
server=/google.com/8.8.8.8可以防止DNS污染,不过想要用这招翻墙,还是想多了。
屏蔽虚假解析
bogus-nxdomain=202.106.199.34许多运营商的DNS很流氓,会将一些不存在的域名解析到他们的广告服务器地址。用dnsmasq的这个选项,当dnsmasq发现某个域名返回的ip是指定的ip时,就对客户端返回“该域名不存在”的信息。