温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

轻量级域名解析服务器之dnsmasq怎么部署

发布时间:2022-07-19 17:21:00 来源:亿速云 阅读:119 作者:iii 栏目:开发技术

这篇文章主要讲解了“轻量级域名解析服务器dnsmasq怎么部署”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“轻量级域名解析服务器之dnsmasq怎么部署”吧!

1、dnsmasq的简介

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

2、dnsmasq的主要作用

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

  2. 应对ISP的DNS劫持(反DNS劫持),输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS劫持会跳转到一个广告页面。先随便nslookup 一个不存在的域名,看看ISP商劫持的IP地址。

  3. 智能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

  4. 屏蔽网页广告,将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了。
    address=/ad.youku.com/127.0.0.1
    address=/ad.iqiyi.com/127.0.0.1

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

  6. 管理控制内网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怎么部署

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怎么部署

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怎么部署

4)启动Dnsmasq

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

5)测试是否配置成功。

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

轻量级域名解析服务器之dnsmasq怎么部署

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

1)作为本地DNS使用

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

轻量级域名解析服务器之dnsmasq怎么部署

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

轻量级域名解析服务器之dnsmasq怎么部署

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怎么部署

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劫持"。

echo'10.10.0.111 www.http123.com' >> /etc/hosts

轻量级域名解析服务器之dnsmasq怎么部署

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

轻量级域名解析服务器之dnsmasq怎么部署

感谢各位的阅读,以上就是“轻量级域名解析服务器之dnsmasq怎么部署”的内容了,经过本文的学习后,相信大家对轻量级域名解析服务器之dnsmasq怎么部署这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI