Dnsmaq介绍:

Dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能。

Dnsmasq可以解决小范围的dns查询问题,如果业务是跨机房、跨地区的话不建议使用dnsmasq做为dns解析服务器。

Dnsmasq官网:http://www.thekelleys.org.uk/dnsmasq/doc.html
       Dnsmasq下载地址:http://www.thekelleys.org.uk/dnsmasq/

1:Dnsmasq安装

    Dnsmasq的安装我们可以源码安装,也可以直接通过yum和apt-get方式进行安装

    1.1:源码安装

    源码安装Dnsmasq,从Dnsmasq官网下载:
        >wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz
        >yum -y install gcc
        >tar -xf dnsmasq-2.75.tar.gz
        >cd dnsmasq-2.75
        >make install
    安装完毕后,查看下Dnsmasq的版本:
        >dnsmasq -v

    1.2:yum和apt-get安装     

       >yum install dnsmasq

2:Dnsmasq配置

Dnsmasq的配置文件路径为:/etc/dnsmasq.conf

        >vi /etc/dnsmasq.conf

       添加以下内容:


resolv-file=/etc/resolv.dnsmasq.conf    //dnsmasq 会从这个文件中寻找上游dns服务器  
strict-order                            //表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。  
addn-hosts=/etc/dnsmasq.hosts           //在这个文件里面添加要自定义的DNS记录
listen-address=127.0.0.1,192.168.1.123  //监听地址,为localhost和dnsmasq服务器IP  
server=114.114.114.114                  //这行告诉dnsmasq使用DNS服务器进行解析,我们也可以通过server对不通的网站使用不同的DNS服务器进行解析,或者国内外网站使用不同DNS进行解析,如:server=/google.com/8.8.8.8
//指派指定域名使用的DNS服务器
    server=/cn/114.114.114.114
    server=/taobao.com/114.114.114.114
    server=/taobaocdn.com/114.114.114.114
//国外指派指定域名使用的DNS服务器
    server=/google.com/223.5.5.5
    server=/cn/表示所有的cn域名都使用114这个公共DNS,server=/taobao.com/表示所有的taobao.com域名都用114,223.5.5.5 是阿里云的公共DNS,你可以换成其它的。
bogus-nxdomain=114.114.114.114          //为了防止DNS污染,我们使用bogus-nxdomain定义DNS解析的服务器。注意:如果在阿里云服务器上配置dnsmasq,一定要启用此项。

创建resolv.dnsmasq.conf文件并添加上游dns服务器的地址:

      >touch /etc/resolv.dnsmasq.conf  

      >echo 'nameserver 114.114.114.114' > /etc/resolv.dnsmasq.conf 

创建dnsmasq.hosts文件

      >cp /etc/hosts /etc/dnsmasq.hosts     //复制本机host并重命名为dnsmasq.hosts

     可将需要自定义的DNS添加至此文件中,如:

         111.111.111.111 abc.com

         222.222.222.222 abc.com

      注意:每次添加或修改解析后需要重启Dnsmasq服务才能使解析生效

3:启用Dnsmasq

      >systemctl start dnsmasq      //启动Dnsmasq

      >systemctl enable dnsmasq  //开机自动启动Dnsmasq

4:设置防火墙

要想使其他主机使用这个服务器作DNS解析,需要开放53端口或者关闭防火墙   

       开放53端口

    > firewall-cmd --zone=public --add-port=53/tcp --permanent  

    > firewall-cmd --zone=public --add-port=53/udp --permanent   

    // --zone  //作用域  

    // --add-port=80/tcp   //添加端口,格式为:端口/通讯协议  

    // --permanent            //永久生效,没有此参数重启后失效  

    >systemctl restart firewalld.service   //重启防火墙  

    关闭防火墙:

    >systemctl stop firewalld.service //停止firewall  

    >systemctl disable firewalld.service //禁止firewall开机启动 

5:测试

    将客户端DNS服务器设置为Dnsmasq服务器IP

    Ping abc.com结果如下:

   Cent OS 7配置Dnsmasq_第1张图片

    可见解析已经生效


---END---

参考:https://www.olinux.org.cn/linux/990.html