轻量级域名解析服务器之dnsmasq的介绍与部署

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录1、dnsmasq的简介2、dnsmasq的主要作用3、dnsmasq的解析流程4、dnsmasq的参数及常用设置说明(/etc/dnsmasq.conf )1)dnsmasq经常修改的比较重要参数说明2)查看配置文件语法是否正确,可执行下列命令3)DNS 缓存设置4)三个以上域名服务器5、dnsmasq的部署1)安装dnsmasq2)修改Dnsmasq配置文件dnsmasq.conf3)修改/etc/resolv.conf文件,并创建resolv.dnsmasq.conf和dnsmasq.hosts文件4)启动Dnsmasq5)测试是否配置成功。6、dnsmasq的使用及实现的功能1)作为本地DNS使用2)智能DNS加快解析速度。3)屏蔽网页广告4)指定域名解析到特定的IP上5)管理控制内网DNS总结 

1、dnsmasq的简介

dnsmasq提供DNS缓存和DHCP服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度。作为DHCP服务器,dnsmasq可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个PXE服务器。

2、dnsmasq的主要作用

将Dnsmasq作为本地DNS服务器使用,直接修改电脑的本地DNS的IP地址即可。应对ISP的DNS劫持(反DNS劫持),输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS劫持会跳转到一个广告页面。先随便nslookup 一个不存在的域名,看看ISP商劫持的IP地址。智能DNS加快解析速度,打开/etc/dnsmasq.conf文件,server=后面可以添加指定的DNS,例如国内外不同的网站使用不同的DNS。

国内指定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屏蔽网页广告,将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了。

address=/ad.youku.com/127.0.0.1

address=/ad.iqiyi.com/127.0.0.1指定域名解析到特定的IP上。这个功能可以让你控制一些网站的访问,非法的DNS就经常把一些正规的网站解析到不正确IP上。

address=/www.baidu.com/123.123.123.123管理控制内网DNS,首先将局域网中的所有的设备的本地DNS设置为已经安装Dnsmasq的服务器IP地址。然后修改已经安装Dnsmasq的服务器Hosts文件:/etc/hosts,指定域名到特定的IP中。

例如想让局域网中的所有用户访问www.freehao123.com时跳转到192.168.0.2,添加:192.168.0.2 www.freehao123.com在Hosts文件中既可,整个过程也可以说是“DNS劫持”。

3、dnsmasq的解析流程

dnsmasq先去解析hosts文件;再去解析/etc/dnsmasq.d/下的*.conf文件;上面这些文件的优先级要高于dnsmasq.conf,我们自定义的resolv.dnsmasq.conf中的DNS也被称为上游DNS,这是最后去查询解析的。

如果不想用hosts文件做解析,我们可以在/etc/dnsmasq.conf中加入no-hosts这条语句,这样的话就直接查询上游DNS了;

如果我们不想做上游查询,就是不想做正常的解析,我们可以加入no-reslov这条语句。

4、dnsmasq的参数及常用设置说明(/etc/dnsmasq.conf )

1)dnsmasq经常修改的比较重要参数说明

resolv-file:定义dnsmasq从哪里获取上游DNS服务器的地址, 默认从/etc/resolv.conf获取

strict-order:表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止

listen-address:定义dnsmasq监听的地址,默认是监控本机的所有网卡上

address:启用泛域名解析,即自定义解析a记录,例如:address=/long.com/192.168.115.10 访问> > > long.com时的所有域名都会被解析成192.168.115.10

bogus-nxdomain:对于任何被解析到此IP的域名,将响应 NXDOMAIN 使其解析失效,可以多次指定,通常用于对于访问不存在的域名,禁止其跳转到运营商的广告站点

server:指定使用哪个DNS服务器进行解析,对于不同的网站可以使用不同的域名对应解析。

例如:server=/google.com/8.8.8.8 #表示对于google的服务,使用谷歌的DNS解析。

2)查看配置文件语法是否正确,可执行下列命令

dnsmasq –test

轻量级域名解析服务器之dnsmasq的介绍与部署插图

3)DNS 缓存设置

要在单台电脑上以守护进程方式启动dnsmasq做DNS缓存服务器,编辑/etc/dnsmasq.conf,添加监听地址:

listen-address=127.0.0.1

如果用此主机为局域网提供默认DNS,请用为该主机绑定固定IP 地址,设置:

listen-address=10.10.x.x

这种情况建议配置静态IP

多个ip地址设置:

listen-address=127.0.0.1,10.10.x.x

4)三个以上域名服务器

Linux处理DNS 请求时有个限制,在 resolv.conf 中最多只能配置三个域名服务器(nameserver)。作为一种变通方法,可以在 resolv.conf 文件中只保留localhost 作为域名服务器,然后为外部域名服务器另外创建 resolv-file 文件。首先,为dnsmasq 新建一个域名解析文件:

cat /etc/dnsmasq.d/resolv.dnsmasq.conf nameserver 8.8.8.8 nameserver 8.8.4.4

然后编辑 /etc/dnsmasq.conf 让 dnsmasq 使用新创建的域名解析文件:

cat /etc/dnsmasq.conf … resolv-file=/etc/dnsmasq.d/resolv.dnsmasq.conf …

5、dnsmasq的部署

1)安装dnsmasq

yum -y install dnsmasq

安装完毕后,可以通过dnsmasq -v命令查看版本,有版本号出来就代表安装上了。

轻量级域名解析服务器之dnsmasq的介绍与部署插图1

2)修改Dnsmasq配置文件dnsmasq.conf

修改配置文件前一定要先备份

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak echo resolv-file=/etc/dnsmasq.d/resolv.dnsmasq.conf >> /etc/dnsmasq.conf #表示dnsmasq 会从这个指定的文件中寻找上游dns服务器 echo addn-hosts=/etc/dnsmasq.d/dnsmasq.hosts >> /etc/dnsmasq.conf #添加读取额外的 hosts 文件路径,可以多次指定;也可以指定为目录,会自动扫描此目录下的配置文件 cat /etc/dnsmasq.conf … strict-order #取消这一行的注释,表示严格按照resolv.conf中的顺序进行查找 listen-address=127.0.0.1,192.168.115.120 #多个ip地址设置;如果想允许所有的用户使用你的DNS解析服务器,把listen-address去掉即可 …

轻量级域名解析服务器之dnsmasq的介绍与部署插图2

3)修改/etc/resolv.conf文件,并创建resolv.dnsmasq.conf和dnsmasq.hosts文件

echo nameserver 127.0.0.1 > /etc/resolv.conf yes | cp /etc/resolv.conf /etc/dnsmasq.d/resolv.dnsmasq.conf echo nameserver 8.8.8.8 >>/etc/dnsmasq.d/resolv.dnsmasq.conf echo nameserver 10.10.0.120 >>/etc/dnsmasq.d/resolv.dnsmasq.conf yes | cp /etc/hosts /etc/dnsmasq.d/dnsmasq.hosts

resolv.dnsmasq.conf中设置的是真正的Nameserver,可以填写各大商家提供的免费DNS地址。

轻量级域名解析服务器之dnsmasq的介绍与部署插图3

4)启动Dnsmasq

systemctl start dnsmasq #启动dnsmasq服务 systemctl enable dnsmasq #设置成开机自启动 netstat -antp|grep 53 #查看端口是否启动成功

5)测试是否配置成功。

第一次查询耗时150ms,第二次查询耗时0ms

轻量级域名解析服务器之dnsmasq的介绍与部署插图4

6、dnsmasq的使用及实现的功能

1)作为本地DNS使用

将dnsmasq作为本地DNS服务器使用,直接修改电脑的本地DNS的IP地址即可。

轻量级域名解析服务器之dnsmasq的介绍与部署插图5

ping harbor私服的域名并访问,发现可以ping通且可以正常访问

轻量级域名解析服务器之dnsmasq的介绍与部署插图6

2)智能DNS加快解析速度。

打开/etc/dnsmasq.conf文件,server=添加指定的DNS,例如国内外不同的网站使用不同的DNS。

cat /etc/dnsmasq.conf … 国内指定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 …

3)屏蔽网页广告

将广告的URL指定127.0.0.1这个IP,就可以将网页上讨厌的广告给去掉了。

cat /etc/dnsmasq.conf … address=/ad.youku.com/127.0.0.1 address=/ad.iqiyi.com/127.0.0.1 …

4)指定域名解析到特定的IP上

这个功能可以让你控制一些网站的访问,非法的DNS就经常把一些正规的网站解析到不正确IP上。

cat /etc/dnsmasq.conf … address=/www.baidu.com/123.123.123.123 …

访问www.baidu.com会发现无法访问此网站

轻量级域名解析服务器之dnsmasq的介绍与部署插图7

5)管理控制内网DNS

首先将局域网中的所有的设备的本地DNS设置为已经安装dnsmasq的服务器IP地址;然后修改已经安装dnsmasq的服务器hosts文件:/etc/hosts,指定域名到特定的IP中。

例如:想让局域网中的所有用户访问www.http123.com时跳转到10.10.0.111,添加10.10.0.111 www.http123.com到hosts文件中既可,整个过程也可以说是”DNS劫持”。

echo10.10.0.111 www.http123.com >> /etc/hosts

轻量级域名解析服务器之dnsmasq的介绍与部署插图8

浏览器访问www.http123.com就会自动跳转到10.10.0.111上

轻量级域名解析服务器之dnsmasq的介绍与部署插图9

总结 

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容