如何让 Windows 看到 Linux 主机名,反之亦然?

如何让 Windows 看到 Linux 主机名,反之亦然?

我在同一个子网上有 Windows 和 Linux 计算机。我的路由器配置正确地告诉我了它们的计算机名称和 IP 地址。但是,当我尝试从 Windows 计算机 ping Linux 计算机,或从 Linux 计算机 ping Windows 计算机时,我需要使用 IP 地址而不是名称。如果我从 Windows 计算机 ping Windows 计算机,或从 Linux 计算机 ping Linux 计算机,则计算机名称可以正确解析,而无需任何 hosts 文件条目。

为什么是这样?

我原本以为我的路由器 (D-Link DIR-655) 本身会充当 DNS 服务器。我看到它有一个名为“启用 DNS 中继”的选项,但从我读到的内容来看,这对我没有帮助。如果相关的话,DIR-655 用于内部流量,而我的 ISP 的 Netgear DGN1000 用作 Internet 网关。但它位于不同的子网上,我的所有机器都连接到我的 DIR-655,而不是 DGN1000。

我需要做什么才能在我的子网内自动解析主机名,无论它们运行的​​是什么操作系统?

答案1

您需要某种名称解析服务器。

首先在一台具有静态 IP 的机器上设置一个接受动态更新的 DNS 服务器。BIND 是显而易见的选择(安装在 Windows 和 Linux 上),但还有其他 Linux 版本也可以很好地工作,例如 DJBDNS 等...您的 DNS 服务器需要将请求转发到您的 ISP 的 DNS 服务器或其他公共 DNS 服务器。一个足够安全的域名是“home.internal”,无需注册,它也不是公共域...您设置 DNS 的这台机器需要一直处于运行状态...

设置完成后,告诉路由器的 DHCP 服务器分配您刚刚设置的 DNS 服务器的 IP。

答案2

ARP 主机名与 NetBIOS 名称不同。

Windows 以 NetBIOS 名称为基础,而 Linux 则以主机名为基础。

您的路由器通过 ARP/DHCP 接收主机名;是的,Windows 也有主机名。


您需要让路由器在其 DNS 中托管主机名,否则您需要调整所有主机文件。

如果您的路由器不支持它,您可以考虑DD-WRT在路由器上安装并使用dnsmasq一个hosts文件来填写主机。我认为这几乎是一种解决方法,您真的想这样做只是为了能够 ping 吗?这不是日常的计算机活动...

答案3

我知道你的痛苦,在 2011 年,主机名还不能开箱即用,这简直太疯狂了。

另一个选择是 Bonjour。这是 Apple 的技术,但也有 Linux 的实现(阿瓦希)和 Windows(用于 Windows 的 Bonjour)。Bonjour 可让您使用以下语法访问其他计算机:

<hostname>.local

我选择了这个解决方案,因为我没有兼容 DD-WRT 的路由器,也没有运行 DNS 的常开服务器。此外,一旦设置完成,您就不必担心 IP 是否会像 hosts 文件那样发生变化。

相关内容