在本教程中,我们将引导您完成在树莓派上设置 DNS 服务器的步骤。
DNS 服务器负责处理将诸如 pimylifeup .com 之类的域名转换为其最终目的地。它可以帮助将 IP 地址从”** 210.345.231.345 **” 转换为更加用户友好的域名系统。
通过在树莓派上设置 DNS 服务器,您可以使用它来缩短计算机执行 DNS 请求的时间。
Pi 上的 DNS 服务器将向其他 DNS 服务器发出请求,以确定该请求的 IP 并将其缓存。这意味着当您再次请求相同的域名时,几乎立即就会收到该请求。
如果您想在树莓派上设置具有一些额外功能的 DNS 服务器,那么我们建议您查看关于设置 Pi -Hole 的指南。
Pi-Hole 是一个软件包,附带许多附加功能,例如域名阻止以及易于使用的界面,可让您轻松管理 DNS 设置。
如果您想了解如何更改树莓派使用的 DNS ,请确保遵循我们的 DNS 设置指南。
在开始设置树莓派 DNS 服务器之前,首先应确保您的 Pi 设置为使用静态 IP 地址。
设备清单
这是我为树莓派 DNS 服务器教程推荐的所有设备。
推荐的
树莓派 2、 3 或 4
Micro SD 卡
电源
Ethernet Cord 或 * WiFi dongle (Pi 3 和 4 具有内置 WiFi)
可选的
- 树莓派外壳
在树莓派上设置 DNS 服务器
1 在本教程中,我们将使用 Raspbian 操作系统。其他操作系统可能有效,但不能保证。
在将树莓派设置为 DNS 服务器之前,我们必须确保所有内容都是最新的。
为此,我们可以在树莓派上运行以下两个命令。
sudo apt update
sudo apt upgrade
2 更新完成后,我们可以继续安装用于将 Pi 设置为 DNS 服务器的软件。
我们正在安装的此软件包称为 DNSmasq。 DNSmasq 是一种轻量级且直接的 DNS 服务器,其设计初衷是针对小型网络。
由于其质量轻巧,DNSmasq 是在树莓派上设置 DNS 服务器的理想解决方案,因为它不会浪费有限的资源。
我们可以通过运行以下命令将 dnsmasq 安装到我们的树莓派中。
sudo apt install dnsmasq
配置 DNS 服务器
1 现在,我们已经继续将 dnsmasq 软件安装到我们的树莓派中,现在我们应该对其进行一些配置更改。
我们将对其配置文件进行的更改将使您的树莓派可以用作更好的 DNS 服务器。
我们可以通过运行以下命令开始对文件进行修改。
sudovim/etc/dnsmasq.conf
若要更轻松地找到需要的部分,可以使用 CTRL + W 搜索所需的文本。
找
#domain-need
用。。。来代替
领域需要
此选项更改 DNS 服务器,以使其不将不包含点 (。) 或域名 (**。 com **) 的名称转发到上游名称服务器。
这样做会将所有纯名称 (例如”** localhost “或” dlinkrouter **”) 保留到本地网络。
找
#bogus-priv
用。。。来代替
伪造的
此选项可阻止 DNS 服务器将具有本地 IP 范围的反向查找查询转发到上游 DNS 服务器。
这样做有助于防止泄漏本地网络,因为 IP 地址永远不会发送到上游服务器。
找
#no-resolv
用。。。来代替
无分辨
使用此选项,我们告诉 dnsmasq 不要为其上游名称服务器读取”**/etc/resolv.conf **” 文件,而要依靠其配置中指定的名称服务器。
找
#server =/localnet/192.168.0.1
用。。。来代替
服务器= 8.8.8.8
服务器= 8.8.4.4
使用此命令,我们指示 dnsmasq 将 Google DNS 服务器用作其上游名称服务器。
您还可以使用其他公共 DNS ,例如 CloudFlare 的 DNS 或 [OpenDNS](https://www。 opendns.com/)。
找
#cache-size = 150
用。。。来代替缓存大小 = 1000
使用此选项,我们增加了 dnsmasq 软件将缓存的 DNS 请求的数量。
通过增加其缓存大小,我们应该能够改善树莓派的 DNS 服务器的整体性能,并减少执行 DNS 查找的时间。
2 对配置文件进行更改后,您现在可以通过按 CTRL + X,然后按 Y ,然后按 ENTER 键来保存文件。
3 当我们对 dnsmasq 的配置进行了更改时,我们将需要重新启动其服务,以便其读取我们的更改。
我们可以通过运行以下命令来重新启动 dnsmasq 。
sudo systemctl restart dnsmasq
4 因为我们对 dnsmasq 服务进行了一些更改,所以我们应该检查以确保其已正确启动。
我们可以使用以下命令检查 DNS 服务器的状态。
sudo systemctl状态 dnsmasq
如果状态显示为” 活动:活动 (正在运行)“,则您现在已使树莓派成功作为 DNS 服务器运行。
现在,您应该可以将设备指向 Rasberry Pi 的 IP 地址,以将其用作 DNS 服务器。
测试树莓派 DNS 服务器
1 如果要在不更改 DNS 的情况下测试树莓派 DNS 服务器的结果,则可以使用”** dig **” 工具。
要在树莓派上使用 dig 工具,您需要先通过运行以下命令来安装”** dnsutils **” 软件包。
sudo apt install dnsutils
2 在树莓派上安装了”** dnsutils **” 软件包后,我们可以通过运行以下命令继续查询 Pi DNS 服务器。
我们使用”** @ localhost **” 告诉挖掘工具利用本地主机的 DNS 服务器进行 DNS 查找。
挖 pimylifeup .com @localhost
3 通过此命令,您将获得如下所示的响应。
此响应显示了从树莓派的 DNS 服务器检索的 dig 软件的答案。
从此响应中,您可以查看查询完成所需的时间以及其他信息。
pi @ raspberrypi:〜$挖 pimylifeup .com
; << >> DiG 9.11.5-P4-5.1-Raspbian << >> pimylifeup.com
;;全局选项:+ cmd
;;得到答案:
;; ->> HEADER <<-操作码:QUERY,状态:NOERROR,ID:40018
;;标志:qr rd ra;查询:1,答案:2,权限:0,附加:1
;;选择伪指令:
; EDNS:版本:0,标志:; udp:512
;;问题部分:
; pimylifeup.com。在一个
;;解答部分:
pimylifeup.com。 257英寸 104 .25.42.22
pimylifeup.com。 257英寸 104 .25.43.22
;;查询时间:45毫秒
;;服务器:127.0.0.1#53(127.0.0.1)
;;时间:2019年 8 月 1 日星期四 08 :04:35
;; MSG大小 RCV :75
4 如果重新运行该命令,则会注意到查询时间将大大减少,因为它可以从缓存中检索 DNS 请求。
正如我们从本地主机请求的那样,您的查询时间应该接近 ** 0 毫秒 **。
;;查询时间:0毫秒
希望到现在,您已经成功设置了树莓派作为网络的 DNS 服务器。如果您遇到任何问题或有任何反馈,请与我联系。