如何在我的局域网上模拟“全局 hosts 文件”?

如何在我的局域网上模拟“全局 hosts 文件”?

我想通过名称访问 LAN 上的机器。不是使用完全限定名称,而是使用名称。一些机器是 Windows,另一些是 Linux。它们都通过 DHCP 获取 IP,一些租约是静态的。

每台机器是否可以向服务器报告其主机名,然后服务器可以通过其主机名 ping 该机器?

更新

实际上我正在寻找协议的名称,它的行为就像WINS。该协议收集机器名称,然后执行名称->地址的转换,类似于DNS,但适用于 Windows 世界和 LAN。

我需要相同的,但独立于 Microsoft。这可能是动态 DNS,但我不需要在全球范围内分发名称,只需在我的 LAN 中分发即可。

答案1

每台机器是否可以向服务器报告其主机名,然后服务器可以通过其主机名 ping 该机器?

是的,当然可以,你只需要设置一个服务器;-)

一般来说,如果您想设置一个服务器来为您完成此操作,则应在同一台机器上设置服务器以提供两种服务,即为您的 LAN 提供 DHCP 和 DNS。这样,每个 DHCP 请求都必须报告机器的名称,并且服务器将保留一个 DHCP 客户端表。静态 IP 不需要 DHCP,因此它们不会在 DHCP 客户端列表中注册。这就是为什么我总是使用保留 IP 地址而不是静态 IP 地址的原因:DHCP 服务器总是为 MAC 地址在单独列表中的机器提供相同的 IP 地址,以便它们像静态地址一样工作,只是它们会向服务器报告其名称。

执行此操作的常用程序随处可见(DHCP+BIND 或同时执行这两项操作的 DNSMasq)。一些消费级路由器已经设置为执行此操作,例如那些运行 DD-WRT 或 OpenWRT 或 TomatoWRT 软件的路由器,但大多数路由器并未设置为执行此操作。

另一种方法是使用 WINS,这是 Microsoft 的 NetBIOS 名称服务实现,它存在于 *Nix 机器的 Samba 套件中,因此您只需激活它即可。或者,您可以使用 mdns(Apple 称之为 Bonjour)对 *Nix 机器执行相同的操作。基本上,通过激活这些程序(程序、不是通过在 *Nix 机器上安装 Linux 协议,即使没有中央服务器,你也能够实现你的愿望。

相关内容