Dnsmasq

[root@dnsmaster ~]# yum install -y dnsmasq
[root@dnsmaster ~]# systemctl start dnsmasq.service
[root@dnsmaster ~]# systemctl  stop  firewalld --临时关闭防火墙 
[root@dnsmaster ~]# systemctl  disable  firewalld  --永久关闭防火墙
[root@dnsmaster ~]# setenforce 0   --临时关闭
[root@dnsmaster ~]# vim /etc/selinux/config
SELINUX=disabled        --将enforcing改为disabled
[root@dnsmaster ~]# reboot     --重启系统永久生效
[root@dnsmaster ~]# vim /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf    //dnsmasq 会从这个文件中寻找上游dns服务器
strict-order                               //去掉前面的#
addn-hosts=/etc/dnsmasq.hosts              //在这个目里面添加记录
listen-address=127.0.0.1,192.168.1.123     //监听地址
resolv-file=/etc/resolv.conf
strict-order
listen-address=192.168.153.128
address=/demon.com/192.168.153.128
server=114.114.114.114
bogus-nxdomain=114.114.114.114

对参数的解释
resolve-file     定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。
strict-order     表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address     定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址。
address        启用泛域名解析,即自定义解析a记录,如下配置为demon.com这个域名:
*address=/demon.com/127.0.0.1  #访问demon.com时的所有域名都会被解析成127.0.0.1*
bogus-nxdomain     为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。
server       指定dnsmasq程序使用哪个DNS服务器进行解析。对于不同的网站可以使用不同的域名对应解析如下配置
*server=/google.com/8.8.8.8    #表示对于google的服务,使用谷歌的DNS解析。*

实际线上配置
no-resolv
all-servers
server=119.29.29.29
server=223.5.5.5
server=223.6.6.6
server=8.8.8.8
server=8.8.4.4
server=114.114.114.114
no-hosts
addn-hosts=/etc/dns.hosts
dhcp-range=192.168.1.1,192.168.8.255,12h
dhcp-lease-max=2040
cache-size=2040
log-queries
log-facility=/var/log/dnsmasq.log