使用树莓派建立一个私人DNS服务器
计算机需要IP地址才能在互联网上相互通信。这些地址使设备能够识别它们正在与哪些服务器/设备进行通信。
然而,要记住IP地址是很困难的,因此需要有域名系统(DNS)服务器。
DNS服务器将域名变为IP地址。换句话说,DNS就像一个包含网络地址的电话簿,这使得对不同网页的访问更快。
前提条件
要理解本教程,你需要具备以下条件。
- 带有Raspbian Pi操作系统的Raspberry Pi(2-4)。
- 互联网连接。
- 一个树莓派的终端。
DNS服务器如何工作
设备请求一个或多个DNS服务器以获得对正确域名的访问。这个过程可能很耗时。
拥有一个私人和专用的DNS服务器有助于节省大量时间。树莓派很小,但可以用在这种情况下。
DNS服务器提供了一种将域名映射到IP地址的方法。
DNS将域名请求转换为IP地址。例如,当一个网络地址被输入到浏览器中时,DNS服务器提供与该特定名称相关联的网络服务器的IP地址。
让我们用一个域名,如www.google.com 作为例子。当DNS解析器被查询时,它将以一个IP地址或错误来回应。在这种情况下,DNS服务器将响应172.217.170.174 ,这是谷歌的IP地址。
DNS的功能
以下是私人域名系统(DNS)提供的三个重要好处。
速度
对网络的查询有时需要通过各种服务器和路由器,然后用户才能访问一个网页。这个时间大多是以毫秒为单位。
有了私有DNS,查询就不必通过多个服务器。因此,传递时间将更短,效率更高。
隐私保护
为了获得正确的域名,来自设备的信息必须被发送到外部服务器,这反过来又在互联网上创造了一个线索。
当使用私有DNS时,信息就不必离开内部网络。
安全性
托管一个私人DNS服务器提供了更多的隐私,因为所有者可以完全控制条目。这可以保护服务器免受恶意条目的影响。
在Raspberry Pi上设置一个DNS服务器
第1步 - 更新Raspberry Pi的软件包
我们首先需要使用以下命令更新Rasberry-Pi的软件包。
sudo apt update
sudo apt upgrade

第2步 - 在Raspberry Pi上安装DNSMasq包
下一步是安装DNSMasq 工具,这在设置DNS服务器时是必不可少的。DNSMasq有助于配置DNS转发器。
它为网络上的各种设备解决DNS查询。在Raspberry Pi上,它可以管理设置DNS服务器时使用的有限资源。
sudo apt install dnsmasq

第3步 - DNSMasq配置
这一步是为了提高DNS服务器的性能。
编辑dnsmasq.conf 文件,如下图所示。
sudo nano /etc/dnsmasq.conf
按CTRL+W ,搜索并删除以下几行前面的#号。
-
domain-needed- 它确保了DNS服务器不会转发任何不正确的域名。这可以检查那些没有点的名字,并将它们保留在本地网络中。 -
bogus-priv- 它防止服务器将本地IP范围内的查询转发给上游服务器。它作为一种安全功能,防止本地IP泄露给上游服务器。 -
no-resolv- 它告诉DNS服务器使用DNSMasq进行地址解析,而不是 。/etc/resolv.conf
按CTRL+W ,找到下面这一行,然后删除它。
#server=/localnet/192.168.0.1

然后,添加以下几行。
server=8.8.8.8
server=8.8.4.4
上面的步骤确保google的DNS服务器被用作上游服务器。
按CTRL+W ,找到以下一行。
#cache-size=150

删除# 符号,然后将缓存大小改为1000。
cache-size =1000
将缓存的大小改为一个更重要的数字有助于减少响应时间。保存更多的DNS请求响应也能提高性能。
接下来,使用CTRL + X 保存编辑内容。然后,使用下面的命令重新启动DNSMasq 。
sudo systemctl restart dnsmasq
使用下面的命令检查DNS的状态。
sudo systemctl status dnsmasq

第4步:DNS服务器测试
使用dig 命令对服务器进行测试。
dig 是一个用于查询DNS服务器的Linux命令,以获得关于名称服务器、主机地址和其他的信息。它用于收集有关DNS的信息。
dig <domain> @localhost
比如说。
dig section.io/kb @localhost

在上面的图片中,我们正在检查,看查询执行了多长时间。这可以在图片的最后一节看到,其中显示。
Query Time: 1091 msec
请注意,我们只对从服务器获得响应所需的时间感兴趣,这就是
1091 msec。
执行查询所需的时间更短,因为地址被存储在缓存中。这在下图中很清楚。

记住,我们只对查询时间感兴趣。
第5步 - 在你的设备上设置DNS服务器
我们使用ifconfig 命令确定树莓派的IP地址。

该IP地址是inet addr ;因此,我们的服务器的IP是10.0.2.15 。
接下来,将这个IP地址设置为设备上的DNS服务器。要在你的Windows电脑上实现这一设置。
按windows key + R ,打开运行。在新窗口中输入control ,然后点击enter ,打开控制面板。

在控制面板中,选择Network and Internet 。

然后在新窗口中选择View network status and tasks 。

在新窗格的左边,选择Change adapter settings 。

右键单击正在使用的网络接口,例如Wi-Fi或以太网,然后选择Properties 。

点击Internet Protocol Version 4 (TCP/IPv4) ,然后再次选择Properties 。

在新窗口中,选择,Use the following DNS server address 。

结论
通过使用树莓派,可以高度利用网络速度。缓存IP地址有助于减少DNS查询的响应时间。
考虑到DNS服务器是网络犯罪分子的目标之一,尽可能地保持它的安全是至关重要的。
确保服务器收到自动更新是至关重要的。命令sudo apt install unattended-upgrades –y ,可用于此操作。