我有几台 Windows 笔记本电脑、一台运行 Ubuntu 的 Raspberry Pi 4 和一台也运行 Ubuntu 的 x86 盒子。在我的 WiFi 路由器(Apple Airport)上使用 DHCP 保留,我已经为它们提供了所有静态 IP 地址。然后在每台机器上编辑主机文件并输入所有机器的名称和 IP 地址。
我想改进最后一部分。我想在我的 Raspberry Pi 上运行 DNS 服务,这样我就可以避免手动编辑和更新每台计算机上的主机文件。我想以这样的方式做到这一点:如果我的家庭 DNS 服务出现故障,我仍然可以访问互联网进行网页浏览等。换句话说,如果我的 Raspberry Pi 出现故障,它不应该带走我的家庭互联网。我也不想配置每台 PC 将其指向 Raspberry Pi 作为 DNS 服务。
所以基本上我想在我的 Raspberry Pi 上运行 DNS 服务,这样,如果 Pi 启动,所有 Windows PC 和其他 Ubuntu 机器都会发现 DNS 服务并使用它来解析本地名称,如果 Pi 关闭,唯一的事情就是本地名称解析不起作用。
这似乎是很多人的需求,所以希望有人发明了一些东西来解决这个问题。
答案1
配置 DHCP 服务器以提供两个 DNS 服务器地址。第一个应该是 Raspberry Pi 的 IP 地址。第二个应该是 ISP 名称服务器的 IP 地址(或公共名称服务器的 IP 地址,如 8.8.8.8 或 1.1.1.1)。
rpi 需要运行 DNS 解析器,例如不受约束的或者域名解析。它应该配置为:
- 仅响应来自本地网络的查询
- 为 LAN 上的主机提供正向(名称)和反向(IP 地址)DNS 查找。
如果您运行dnsmasq
,请确保禁用其 DHCP 功能 - 您不希望同一网络上有两个 dhcp 服务器,除非它们的配置完全相同。
请注意,当您的 rpi 下降时,DNS 查找速度会明显变慢。
答案2
*nix 上的标准 DNS 服务器通常由BIND
-https://en.wikipedia.org/wiki/BIND
以下是几篇详细描述该过程的文章: https://opensource.com/article/17/4/introduction-domain-name-system-dns 和 https://opensource.com/article/17/4/build-your-own-name-server