hosts 文件但是针对整个网络?

hosts 文件但是针对整个网络?

我真不敢相信我花了一小时谷歌搜索却找不到这个。这应该很简单!

在我的 PC 上,我编辑 HOSTS 文件,例如,domain.com 转到本地 IP 192.168.1.5

很好,没问题。但如果我希望网络上的每个人都做同样的事情……那么,这就需要大量重复。每台 PC、每台笔记本电脑、手机等。

我如何在网络层面做到这一点?

这是一个家庭环境,我有一个消费路由器,在这方面似乎没有任何有用的选项。

我有一台处理多个角色的家庭服务器。它运行的是 Ubuntu 18.04

思考答案是将我的 Ubuntu 机器设置为 DNS 服务器。对吗?如果是这样,那么我是否必须将每个设备指向该服务器?我看到我的路由器确实能够定义 DNS 服务器,那么我可以只在那里执行此操作吗?

我不想陷入必须维护新 DNS 服务器的困境。也就是说,当 Google 决定获取新 IP 地址时,我不想负责告诉我的所有计算机该去哪里。我只想将其用于内部使用。

谢谢。

答案1

我认为答案是将我的 Ubuntu 机器设置为 DNS 服务器。对吗?

是的,你需要设置 DNS 服务器。(尽管 DNS 服务器不需要Ubuntu 机器——它可以位于任何你想要的地方,即使是在远程位置。)

在这种情况下,请确保您选择的 DNS 服务器软件可以充当递归解析器。(例如,BIND 和 Unbound 可以正常工作,而 NSD 或 Knot 是“仅权威的”,无法用作 LAN 的主 DNS 服务器。)

一些消费级路由器实际上有一个内置的 DNS 服务器,用于此目的,但它通常仅限于某些“.home”或“.lan”域下的主机名,因此运行自己的服务器可能是一个更好的主意。

那么我必须将每个设备都指向该服务器吗?我发现我的路由器确实能够定义 DNS 服务器,所以我可以只在那里做吗?

是的,所有使用 DHCP 的设备都会获取路由器的设置。

我不想陷入必须维护新 DNS 服务器的困境。也就是说,当 Google 决定获取新 IP 地址时,我不想负责告诉我的所有计算机该去哪里。我只想将其用于内部使用。

DNS 经过专门构建,因此解析器不需要执行此操作,就像您的 ISP 的 DNS 服务器不需要执行此操作一样,公共 DNS 服务器或其他任何人都不需要执行此操作。

DNS 解析器并不拥有庞大的全球域名数据库。它只需要知道域名服务器– 这 13 个域名很少更改地址,因此即使是 1990 年的列表在紧急情况下也能发挥作用(C 根地址很长时间以来一直位于 192.33.4.12)。通常列表甚至嵌入到软件中,因此无需配置。从那里,解析器可以确定哪些名称服务器托管 TLD com,哪些名称服务器托管google.com域等等。

虽然你的 DNS 服务器没有自己完成所有这些工作 – 它只需将查询转发到另一台服务器(即您通常使用的服务器),然后让它处理工作。在 BIND 配置中将 8.8.8.8 配置为“转发器”或“上游”就完全没问题。

相关内容