在本教程中,我们将引导您完成在树莓派上设置 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 upgrade2 更新完成后,我们可以继续安装用于将 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 @localhost3 通过此命令,您将获得如下所示的响应。
此响应显示了从树莓派的 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 :754 如果重新运行该命令,则会注意到查询时间将大大减少,因为它可以从缓存中检索 DNS 请求。
正如我们从本地主机请求的那样,您的查询时间应该接近 ** 0 毫秒 **。
;;查询时间:0毫秒希望到现在,您已经成功设置了树莓派作为网络的 DNS 服务器。如果您遇到任何问题或有任何反馈,请与我联系。