[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