如何在Ubuntu 20.04上使用Dnsmasq设置本地DNS解析器?

Dnsmasq是 “DNS masquerade的缩写”,是一款简单、轻量级、易于使用的DNS转发器,用于小型网络。它可以配置为DNS缓存和DHCP服务器,支持IPv4和IPv6协议。当它收到任何DNS查询时,它会从它的缓存中回答这些查询或转发到不同的DNS服务器。
Dnsmasq由三个子系统组成。
DNS子系统:用于缓存不同类型的记录,包括A、AAAA、CNAME和PTR。
DHCP子系统:它支持DHCPv4、DHCPv6、BOOTP和PXE。
路由器广告子系统:它为IPv6主机提供基本的自动配置。它可以独立使用,也可以与DHCPv6结合使用。
在本教程中,我们将向您展示如何在Ubuntu 20.04服务器上使用Dnsmasq设置本地DNS服务器。
先决条件
运行Ubuntu 20.04系统的香港服务器
为服务器配置了root密码。
1、首先,建议将系统软件包更新为最新版本。您可以通过运行以下命令来更新所有软件包:
apt-get update -y
更新所有软件包后,您将需要在系统中禁用Systemd解析的服务。Systemd解析的服务用于本地应用程序的网络名称解析。
您可以通过运行以下命令禁用它:
systemctl disable --now systemd-resolved
禁用该服务后,您将需要删除默认的resolv.conf文件,并使用您的自定义DNS服务器详细信息创建一个新文件。
您可以使用以下命令删除默认的resolv.conf文件:
rm -rf /etc/resolv.conf
接下来,使用以下命令将Google DNS服务器添加到resolv.conf文件:
echo “nameserver 8.8.8.8” > /etc/resolv.conf
完成后,您可以继续下一步。
2、安装Dnsmasq
默认情况下,Ubuntu 20.04默认存储库中提供Dnsmasq。您可以通过运行以下命令来安装它:
apt-get install dnsmasq dnsutils ldnsutils -y
安装完成后,Dnsmasq服务将自动启动。您可以使用以下命令检查Dnsmasq的状态:
systemctl status dnsmasq
您应该获得以下输出:
在这里插入图片描述

完成后,您可以继续下一步。
3、配置Dnsmasq
接下来,您将需要将Dnsmasq配置为本地DNS服务器。您可以通过编辑Dnsmasq主配置文件来做到这一点:
nano /etc/dnsmasq.conf
更改以下行:
port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,your-server-ip
expand-hosts
domain=dns-example.com
cache-size=1000
完成后保存并关闭文件。
接下来,您需要在resolv.conf文件中将服务器ip地址添加为主域名服务器。您可以使用以下命令添加它:
nano /etc/resolv.conf
在“nameserver 8.8.8.8”行上方添加以下行:
nameserver your-server-ip
完成后保存并关闭文件。接下来,使用以下命令验证服务器是否存在任何配置错误:
dnsmasq --test
如果一切正常,您应该获得以下输出:
dnsmasq: syntax check OK.
最后,重新启动Dnsmasq服务以应用更改:
systemctl restart dnsmasq
此时,Dnsmasq已启动并在端口53上侦听。您可以使用以下命令进行验证:
ss -alnp | grep -i :53
您应该获得以下输出:
在这里插入图片描述

4、将DNS记录添加到Dnsmasq服务器
接下来,您将需要编辑/etc/hosts文件并添加本地DNS服务器条目。
nano /etc/hosts
添加以下行:
your-server-ip host1.dns-example.com
完成后保存并关闭文件。
5、验证Dnsmasq服务器解析
此时,Dnsmasq已经安装和配置好了。需要验证DNS解析了。
您可以使用dig命令检查DNS解析,如下所示:
dig host1.dns-example.com +short
如果一切正常,您应该在以下输出中看到服务器ip:
your-server-ip
您还可以使用以下命令来验证外部DNS解析:
dig howtoforge.com +short
5、配置远程客户端以使用Dnsmasq DNS服务器
接下来,您将需要配置一个远程客户端,以将您的Dnsmasq DNS服务器用作默认DNS服务器。
首先,使用以下命令安装DNS工具:
apt-get install dnsutils ldnsutils -y
安装后,您将需要编辑/etc/resolv.conf文件和Dnsmasq DNS服务器条目。
nano /etc/resolv.conf
在文件开头添加以下行:
nameserver your-server-ip
完成后保存并关闭文件。
接下来,使用以下命令验证本地DNS解析:
dig host1.dns-example.com
您应该看到以下输出:
在这里插入图片描述

接下来,您将需要验证DNS服务器是否进行缓存。您可以使用钻取实用程序进行检查。
首先,运行以下命令:
drill google.com | grep “Query time”
您应该看到以下输出:
;; Query time: 290 msec
接下来,再次运行命令以检查缓存是否正常工作:
drill google.com | grep “Query time”
您应该看到查询时间现在减少到4毫秒:
;; Query time: 4 msec
至此,您已成功安装Dnsmasq并将其配置为本地DNS服务器和Ubuntu 20.04。希望您现在可以在本地网络中轻松实现它以进行名称解析。欢迎访问A5互联https://www.a5idc.net/了解更多。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值