漂泊旅途 發表於 2020-12-15 22:25:00

使用 dnsmasq 配置内网域名解析

<p>dnsmasq 使用上比bind要简便得多,可以做正向、反向dns解析,支持DHCP服务。也可以做内部dns服务器用.</p>
<p>本初仅使用DNS功能,给本地局域网服务器提供:hosts主机记录,自定义域名,以及公网域名DNS转发解析。</p>
<p>实现功能:利用dnsmasq做dns解析服务,内网的域名解析为本机的ip地址,外网的域名通过dns解析为外网对应的地址.</p>
<p>配置文件解析:</p>
<p>dnsmasq安装完成后,默认配置文件为 /etc/dnsmasq.conf,本配置文件只列举出常用的几个配置项的使用方法.</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">Dnsmasq配置文件dnsmasq.conf详解:

# 缓存条数,默认为150条。cache</span>-size=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> 禁用缓存
cache</span>-size=<span style="color: rgba(128, 0, 128, 1)">10000</span><span style="color: rgba(0, 0, 0, 1)">

##指定 resolv</span>-file 文件路径(上游DNS服务器),默认/etc/<span style="color: rgba(0, 0, 0, 1)">resolv.dnsmasq。
resolv</span>-file=/etc/dnsmasq-<span style="color: rgba(0, 0, 0, 1)">resolv.conf

###添加读取额外的 hosts 文件路径,可以多次指定。如果指定为目录,则读取目录中的所有文件。
addn</span>-hosts=/etc/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.hosts

#表示严格按照resolv.conf中的顺序进行查找
strict</span>-<span style="color: rgba(0, 0, 0, 1)">order

#用此主机为局域网提供默认 DNS,写本机的局域网IP
listen</span>-address=<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>,<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">

#设置日志记录器
log</span>-<span style="color: rgba(0, 0, 0, 1)">queries
log</span>-facility=/<span style="color: rgba(0, 0, 255, 1)">var</span>/log/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.log
local</span>-ttl=<span style="color: rgba(128, 0, 128, 1)">600</span><span style="color: rgba(0, 0, 0, 1)">

# 该目录下的所有.conf文件都是要做解析的
conf</span>-dir=/etc/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.d

# 指定域名解析到特定的ip上,后面的ip地址为你的主机ip:
address</span>=/saneri.com/<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">

# 智能DNS加快解析速度,后面ip地址为dns
server</span>=/cn/<span style="color: rgba(128, 0, 128, 1)">114.114</span>.<span style="color: rgba(128, 0, 128, 1)">114.114</span><span style="color: rgba(0, 0, 0, 1)">
server</span>=/taobao.com/<span style="color: rgba(128, 0, 128, 1)">114.114</span>.<span style="color: rgba(128, 0, 128, 1)">114.114</span></pre>
</div>
<p><strong>开始搭建一台dnsmasq域名解析服务器</strong>:</p>
<p>本机的ip地址是:192.168.10.30,其中192.168.10.2为dns和网关的ip地址,可以正常访问互联网.</p>
<p># cat /etc/resolv.conf<br># Generated by NetworkManager<br>nameserver 192.168.10.2</p>
<p>1.安装:</p>
<div class="cnblogs_code">
<pre># yum install dnsmasq -y</pre>
</div>
<p>2.启动服务:</p>
<div class="cnblogs_code">
<pre><span># systemctl enable dnsmasq.service
# systemctl start dnsmasq.service</span></pre>
</div>
<p>3.查看版本:</p>
<div class="cnblogs_code">
<pre># dnsmasq -v </pre>
</div>
<p>4.修改配置文件:</p>
<p>dnsmasq配置选项比较多,我们可以根据实际需求来进行配置。下面为我的配置文件:</p>
<div class="cnblogs_code">
<pre># cat /etc/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.conf
cache</span>-size=<span style="color: rgba(128, 0, 128, 1)">10000</span><span style="color: rgba(0, 0, 0, 1)">
resolv</span>-file=/etc/dnsmasq-<span style="color: rgba(0, 0, 0, 1)">resolv.conf
addn</span>-hosts=/etc/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.hosts
log</span>-<span style="color: rgba(0, 0, 0, 1)">queries
log</span>-facility=/<span style="color: rgba(0, 0, 255, 1)">var</span>/log/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.log
local</span>-ttl=<span style="color: rgba(128, 0, 128, 1)">600</span><span style="color: rgba(0, 0, 0, 1)">
conf</span>-dir=/etc/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.d
strict</span>-<span style="color: rgba(0, 0, 0, 1)">order
listen</span>-address=<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>,<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span></pre>
</div>
<p>指定 resolv-file 文件路径(上游DNS服务器),默认/etc/resolv.dnsmasq,此处为/etc/dnsmasq-resolv.conf文件,和/etc/resolv.conf文件内容保持一致.<br>resolv-file=/etc/dnsmasq-resolv.conf</p>
<p>解析是有顺序的,所以一定要将本机的ip作为dns放在前面,如果顺序不对,解析也是会出问题的.</p>
<div class="cnblogs_code">
<pre># cat /etc/<span style="color: rgba(0, 0, 0, 1)">resolv.conf
# Generated by NetworkManager
nameserver </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
nameserver </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.2</span><span style="color: rgba(0, 0, 0, 1)">

# cat </span>/etc/dnsmasq-<span style="color: rgba(0, 0, 0, 1)">resolv.conf
nameserver </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
nameserver </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.2</span><span style="color: rgba(0, 0, 0, 1)">
#

</span></pre>
</div>
<p>#添加读取额外的 hosts 文件路径,可以多次指定。如果指定为目录,则读取目录中的所有文件,这里指定的域名和ip都是一对一的关系.</p>
<p>addn-hosts=/etc/dnsmasq.hosts</p>
<div class="cnblogs_code">
<pre># cat /etc/<span style="color: rgba(0, 0, 0, 1)">dnsmasq.hosts
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)"> www.saneri.com.io
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)"> ftp.saneri.com.io
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)"> momo.com.io
# </span></pre>
</div>
<p># 该目录下的所有.conf文件都是要做解析的,我在这个目录下创建了一个address.conf的配置文件,用来将域名解析到特定的ip上面,这种定义方式支持泛域名解析和反向解析等方式.<br>conf-dir=/etc/dnsmasq.d</p>
<div class="cnblogs_code">
<pre># cat /etc/dnsmasq.d/<span style="color: rgba(0, 0, 0, 1)">address.conf
address</span>=/www.taobao.com/<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">
ptr</span>-record=<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>.<span style="color: rgba(0, 0, 255, 1)">in</span>-<span style="color: rgba(0, 0, 0, 1)">addr.arpa,www.taobao.com
address</span>=/baidu.com/<span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">
address</span>=/saneri.com/<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
# </span></pre>
</div>
<p>这些就是我的配置项,内网的域名解析到指定的主机ip上面,外网的域名解析正常.</p>
<p>5.解析测试</p>
<p>可以在本机使用nslookup进行测试,也可以在开一个客户机,将客户机的dns指向为192.168.10.30进行解析测试;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># nslookup
</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> www.saneri.com.io
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Name:    www.saneri.com.io
Address: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>
&gt;<span style="color: rgba(0, 0, 0, 1)"> ftp.saneri.com.io
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Name:    ftp.saneri.com.io
Address: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>
&gt;<span style="color: rgba(0, 0, 0, 1)"> momo.com.io
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Name:    momo.com.io
Address: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>
&gt;<span style="color: rgba(0, 0, 0, 1)"> www.taobao.com
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Name:    www.taobao.com
Address: </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>
&gt;<span style="color: rgba(0, 0, 0, 1)"> saneri.com
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Name:    saneri.com
Address: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>
&gt;<span style="color: rgba(0, 0, 0, 1)"> baidu.com
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Name:    baidu.com
Address: </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>
&gt;<span style="color: rgba(0, 0, 0, 1)"> www.baidu.com
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Name:    www.baidu.com
Address: </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>

&gt;<span style="color: rgba(0, 0, 0, 1)"> www.sina.cn
Server:      </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span><span style="color: rgba(0, 0, 0, 1)">
Address:    </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">10.30</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">

Non</span>-<span style="color: rgba(0, 0, 0, 1)">authoritative answer:
www.sina.cn    canonical name </span>=<span style="color: rgba(0, 0, 0, 1)"> sina.cn.
Name:    sina.cn
Address: </span><span style="color: rgba(128, 0, 128, 1)">49.7</span>.<span style="color: rgba(128, 0, 128, 1)">36.58</span>

&gt;<span style="color: rgba(0, 0, 0, 1)"> exit

# </pre>
</div>
<p>&nbsp;</p>
<p>参考文档:https://blog.51cto.com/longlei/2065967</p><br><br>
来源:https://www.cnblogs.com/saneri/p/14141397.html
頁: [1]
查看完整版本: 使用 dnsmasq 配置内网域名解析