0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将Raspberry Pi用作DNS服务器?

母猪会上树 来源:母猪会上树 作者:母猪会上树 2023-02-25 17:31 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。如果您正在寻找用于家庭或小型企业网络的DNS服务器,Raspberry Pi将会是一个便宜、可靠且节能的选择。
首先,让我们来了解一下什么是DNS服务器。

究竟什么是DNS服务器?

DNS代表“域名系统”。DNS服务器将人性化的域名转换为计算机可以使用的IP地址。
这样您就可以通过输入“deviceplus.com”来访问这个网站了,而不是IP地址13.52.144.235—谁能记得住呢?

更好的一点是,如果我们将此网站移至具有新IP地址的新服务器,我们只需要更新我们的DNS记录即可,其他人不会受到影响。

拥有您自己的DNS服务器的好处

只要网站加载了出来,您就已经在使用DNS服务器了。
您的互联网供应商几乎都是允许您使用他们的DNS服务器的,如果您对此不满意,可以随时使用公共DNS服务器。
这也许就是您想要自己的DNS服务器的原因。

提升您的网页浏览速度

从您的本地网络获取某些内容总是比从互联网上获取要快。前者有时可以将页面加载时间缩短几百毫秒。这不会给生活带来什么改变,但是效果是显著的。
而这种加快只有在您的本地DNS服务器已经有相关记录的情况下才有效。否则,仍然必须从互联网上获取内容。
在本地网络上保持整个DNS一直更新是不切实际的。相反,服务器会将这些记录进行缓存,直到它们的“生存时间”值(TTL)到期。
大多数操作系统和网络浏览器也会在您的计算机上缓存这些相同的记录,因此如果它只是一台使用了互联网连接的计算机,那么拥有自己的DNS服务器并不会带来任何区别。
当多个拥有多台设备的人在本地网络上,并共享互联网连接时,自己拥有DNS服务器会更有意义。这种情况下,将所有内容缓存在一个地方将可以减少需要离开网络的请求数量。

将域加入黑名单

如果您想完全阻止某些域,使用DNS服务器将会非常好用且高效。一些政府以这种方式审查整个国家的网络。
作为家长,您可能希望以同样的方式阻止您的孩子访问特定网站。请注意,这仅在他们通过该网络访问互联网时有效,并且许多孩子已经有足够的专业知识通过配置一个不同的DNS服务器来规避这一点了。
您可能还想阻止某些您觉得具有侵扰性或者令人生厌的域。
甚至还有一个用于Raspberry Pi的DNS服务器程序,叫Pi-Hole,可以立即阻止广告。

添加自定义域

您还可以为本地网络上的设备提供各自的域名,仅对其他本地机器可见。
您可以为打印机、媒体中心,甚至冰箱和咖啡机(如果它们连接到了您的网络中)命名。
这将使您不必追踪办公室或家中所有设备的IP地址。

了解更多有关互联网的信息

也许您只是想更好地了解一下DNS,但是学习DNS的话也是必要了解一下互联网的。

确保您的Raspberry Pi具有保留IP

如果您的Raspberry Pi DNS服务器有一个动态分配的IP,那将会很头疼。每隔一段时间,它就会被分配一个不同的IP地址,网络上的其他设备也将不再连接到它。
这就是为什么您要为这个Raspberry Pi保留一个IP。您可以通过登录路由器的仪表板来执行该操作。
这一部分的确切步骤会因您的设备不同而略有不同。如果您遇到困难,请使用搜索引擎查找您设备的手册。

设置您的操作系统并安装Dnsmasq

现在您的设备已经有了固定IP,让我们开始安装将要使用的软件:Dnsmasq。
最好从重新安装一个Raspberry Pi OS开始。您也许希望更改默认密码,并在raspi-config中设置ssh访问。
首先,通过输入以下内容更新您的操作系统:
sudo apt update && sudo apt upgrade -y

然后安装Dnsmasq.
sudo apt install dnsmasq -y

就是这样!现在您就拥有一个DNS服务器了!

配置Dnsmasq

您可以开始向Raspberry发送DNS请求了,但是需要对默认设置进行调整才能发挥最大作用。输入以下命令打开配置文件:
sudo nano /etc/dnsmasq.conf

这个文件对有用的命令有详细的注释,所以您可以尽情查阅对其进行了解。有几个部分需要特别注意。

不要将本地流量转发到上游服务器

在配置文件的顶部附近,您会发现写有“#domain-needed”和“#bogus-p”的行。
设置#domain-needed选项将会阻止DNS服务器向上游寻找不在域中的主机,而bogus-priv选项将会阻止它向上游查找私有IP地址。
公司网络上,也许您会想在上游服务器中查找这些东西。但是在公共互联网上寻找它们没有任何意义,所以我们使用这些选项。
您可以通过删除行开头的注释符号来应用它们。

poYBAGPzHOqATMPMAAFBB9XFLyY200.jpg

配置上流DNS服务器

向下滚动,并查找显示“#no-resolv”的行。删除注释字符以应用该选项。往下几行后,有一行显示“#server=/localnet/192.168.0.1”,删除这一行。我们将要输入自己的设置。
我通常使用Google的DNS服务器。它们的快速可靠会带来帮助,但是老实说,这主要是因为IP地址非常容易记住。
对此的配置如下:
server=8.8.8.8
server=8.8.4.4

pYYBAGPzHO6ADxyaAAD7aG6aQLk186.jpg

如果您不想使用Google服务,那么可以使用您的互联网供应商或其他公共DNS服务器。例如CloudFlare。

添加自定义域和阻止域

往下不远的地方有一行显示“#address=/double-click.net/127.0.0.1”。
这对于将域分配给本地网络上的设备很有用。公共互联网上未使用的任何内容都可以,我通常为其使用顶级域.lan。
复制这一行的语法。在本项目中,是将我的媒体和复古游戏装备放置在了retropie.lan上,如下所示:
address=/retropie.lan/192.168.0.6

不要忘记为路由器中对应的设备保留这些IP地址。
您还可以在此处阻止特定域,方法是将它们定向到私人IP。
address=/www.nickelback.com/127.0.0.1
poYBAGPzHPGAFTwUAAElTgKP09I059.jpg

如果您对阻止广告服务器更感兴趣,那么可以很容易在网上找到列表。
您可以随意将域定向到公共IP。这对于网站在上线前测试网站迁移很有用。
请注意,这些域仅用于使用此DNS服务器的设备。如果您想要一个域名出现在公共DNS上,您必须购买它。

设置缓存大小

默认情况下,Dnsmasq将缓存最多150条记录。即使是非常轻量的网络浏览器也可以将其占满。
该缓存保存在内存中,如果空间太大会影响性能。
但是我们在这里服务的是一个小型网络,现在的内存比几十年前编写Dnsmasq时更加充足,而且这些记录每个只使用100个字节。我们可以在其中放入几兆字节的内容。
向下滚动到显示“#cache-size=150”的地方,您需要向下滚动得多一些。删除前面的注释字符并将该数字设置的更大。
我只是添加了几个零,以使其成为15000,这比小型网络的DNS服务器缓存的记录要多得多。

pYYBAGPzHPOAZjP6AAEY8m52Rew412.jpg

完成配置编辑后

当您对设置感到满意时,保存并退出,然后输入以下内容重新启动服务:
sudo systemctl restart dnsmasq

配置您的设备以使用该DNS服务器

现在您的DNS服务器已经启动并运行,我们来开始使用它。
将其配置为整个网络的默认DNS服务器的最简单方法是在路由器中进行配置。
计算机和其他设备通常也可以在设置或控制面板中单独进行配置。

设置自动安全更新

不要对这里的安全两个字大意。DNS服务器可能会是线上犯罪分子的重要目标,他们可以将您重定向到恶意站点。
我们已将其设置为只能从您的本地网络内访问,这降低了很多风险。但是自动应用安全更新仍然是一个好主意。
有一个便利的软件包可以为我们执行该操作,叫无人职守自动更新软件。我们来安装它。
sudo apt install unattended-upgrades -y

该安装包在Raspberry Pi OS Buster中的默认配置是每天进行安全更新。
如果您还没有更改默认密码,也不要忘记更改!为SSH访问设置基于证书的身份验证也是一个很好的主意。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9010

    浏览量

    85163
  • DNS
    DNS
    +关注

    关注

    0

    文章

    216

    浏览量

    19786
收藏 人收藏

    评论

    相关推荐

    DNS服务器的起点:根服务器

    DNS是一个域名转化为IP地址的系统,里面存储了关于互联网域名解析的关键信息。它可以人类可读的域名转换为计算机可识别的IP地址,当你在浏览的地址栏输入一个正确的域名网址时,
    的头像 发表于 08-25 10:35 241次阅读

    DNS的结构和工作原理

    DNS 代表域名系统或域名服务器DNS IP 地址解析为主机名,反之亦然。
    的头像 发表于 08-05 15:23 378次阅读
    <b class='flag-5'>DNS</b>的结构和工作原理

    请问如何强制DHCP服务器以空网关和DNS地址进行响应?

    我在 DHCP 服务器打开的情况下,在 AP 模式下在嵌入式设备中使用 ESP8266。 装有 Windows 7 的 PC 连接到 ESP8266,ESP8266为 PC 无线接口分配 IP、网关
    发表于 07-16 07:19

    是否可以在网状演示中使用DNS而不是服务器的IP地址?

    尊敬的用户: 请您告诉我是否可以在网状演示中使用DNS而不是服务器的IP地址? 问候
    发表于 07-12 07:26

    如何更改DNS服务器IP?

    如何更改DNS服务器IP?我在最新的 SDK (1.0) 文档中没有找到任何内容。
    发表于 07-12 06:04

    如何获取DNS服务器IP?

    当ESP8266在 STA 模式下连接时,访问分配给 DHCP 客户端的 DNS 服务器地址非常有用。理想情况下,这些地址要么通过 wifi_get_ip_info 在ip_info结构中返回,要么通过专用 API(例如 es
    发表于 07-11 06:15

    一文了解常见DNS结构

    的理解。 主DNS服务器 : 主DNS服务器是负责特定区域的权威DNS信息的主要来源。它保存着该区域内域名与IP地址等资源记录的原始、准确和
    的头像 发表于 07-05 15:32 283次阅读

    如何将CYKIT-028 TFT模块与Raspberry Pi和ESP32微控制结合使用?

    我目前正在探索如何将 CYKIT-028 TFT 模块与 Raspberry Pi 和 ESP32 微控制结合使用。 不过,在选择集成开发环境(IDE)和使用 PSOC Creato
    发表于 05-21 07:36

    Linux:DNS系统的分布式数据结构及服务器搭建

    DNS(Domain Name System)域名系统: 是一种采用客户端/服务器机制,负责实现计算机名称与IP地址转换的系统。DNS作为一种重要的网络服务,既是国际互联网工作的
    发表于 04-18 11:17 340次阅读

    5分钟内Raspberry Pi Pico变成简单的示波器+波形发生

    5 分钟内 Raspberry Pi Pico(或任何 RP2040 板)变成简单的示波器+波形发生
    的头像 发表于 03-04 09:14 1957次阅读
    5分钟内<b class='flag-5'>将</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico变成简单的示波器+波形发生<b class='flag-5'>器</b>

     海外云服务器搭建pi节点详细步骤

     海外云服务器搭建pi节点简单吗?海外云服务器搭建pi节点步骤有哪些?小编为您整理发布海外云服务器搭建p
    的头像 发表于 02-21 10:16 1054次阅读

    DNS服务器可能不可用什么意思

    与该域名相关联的IP地址。DNS服务器IP地址返回给计算机,然后计算机使用该IP地址与目标服务器建立连接。 DNS
    的头像 发表于 01-17 09:24 9502次阅读

    dns服务器地址设置为多少

    DNS(域名系统)是互联网的基础设施之一,用于域名转换为IP地址,使用户可以访问网络资源。要设置DNS服务器地址,首先需要理解DNS的工作
    的头像 发表于 01-15 11:11 1639次阅读

    dns网络服务器未响应是什么原因

    DNS网络服务器未响应是指在使用域名解析服务时,用户的计算机或设备无法获取到有效的响应。通常情况下,这可能是由于以下原因导致的。 DNS服务器
    的头像 发表于 01-11 10:39 4.2w次阅读

    idea如何将项目部署到tomcat服务器

    项目部署到Tomcat服务器上是一个常见的操作,下面是一个详细的步骤指南,描述了如何将项目成功部署到Tomcat服务器上。 准备工作 在开始之前,确保你已经安装了Java环境和Tom
    的头像 发表于 12-03 15:25 1539次阅读