Ubuntu 无法 ping 主机名但可以 ping IP?

Ubuntu 无法 ping 主机名但可以 ping IP?

我刚刚进入 Ubuntu 世界进行管理。我发现了类似的线程,只是,我可以 ping 我自己主机名和 IP 地址,我的 Windows 可以 ping 我的 Linux 主机名,但 Ubuntu 无法 ping Windows 主机名。

问题:

  • 我有 4 台 Windows 电脑和 1 台 Ubuntu 电脑
  • 我的 Windows 计算机可以通过主机名和 IP 地址 ping Ubuntu 计算机。此外,Net View(cmd 提示符)显示 Ubuntu 计算机的主机名。
  • Ubuntu 计算机只能通过 IP 地址进行 Ping,而不能通过主机名进行 Ping。我也安装了 Samba。
  • Ubuntu 计算机可以通过 IP 地址和主机名 ping 自己
  • 我可以使用 arp 命令并将显示网络上所有计算机的 IP,但仅通过 IP 地址。

为什么我只能通过 IP 地址 ping 通 Windows 计算机,而不能通过主机名 ping 通?但是 Ubuntu 可以通过 IP 地址和主机名 ping 通自己,而 Windows 计算机也可以通过主机名 ping 通 Ubuntu?

答案1

这里描述的问题可能根本与 DNS 无关。

您必须知道,Windows 可以通过标准 DNS 以外的其他机制将 Windows 主机名解析为其 IP:NetBIOS 查找、WINS……

正如您所说,您的 Ubuntu 上安装了 Samba,这可能是正在发生的事情。在您的所有 Windows 机器上,都可以开箱即用地将 Windows 名称解析为其 IP 地址。由于 Samba 安装在 Ubunut 上,对于您的 Windows PC,它们会将 Ubuntu PC 视为 Windows PC,并且可以进行相同的解析。

您说您net view在 Windows 上运行,并且您看到了您的 Ubuntu PC,所以 NetBIOS 名称已经在您的网络上发布,所以它可以在 Windows 上运行。

要在 Ubuntu 上实现与 Windows 相同的行为,您必须安装和配置其他软件。您需要添加一个查找库,以便 Ubuntu 将 NetBIOS 名称转换为 IP。此库包含在库nss-winbind包裹。

与任何其他 Ubuntu 软件包一样,您可以通过执行以下操作来安装它sudo apt-get install libnss-winbind。该库可能已安装,您可以通过执行以下操作来检查它是否存在dpkg -l|grep libnss-winbind

安装库后,您必须在文件中启用它/etc/nsswitch.conf。此文件是 NSS 的配置文件(名称服务交换机),它定义了 Linux 能够从哪些源解析主机名、用户名、组名等。
在此文件中,您已经有一行以 开头的行hosts:,可能看起来像这样

hosts:          files dns

这会告诉您的系统首先查看文件/etc/hosts,然后查看配置的 DNS 来解析主机名。
您必须按如下方式进行修改:

hosts:          files dns wins

注意单词的顺序文件域名系统胜利很重要。首先,系统将检查本地文件以进行解析,然后询问 DNS 服务器,最后,如果尚未找到,将执行 NetBIOS 查找。

更新后,为了正常运行,您还需要温宾服务正在运行。包含它的包是库nss-winbind,所以它已经沿着它安装了。
执行service winbind start以激活它。

答案2

在下列情况下,可能会发生主机名到 IP 的转换:

-您在 /etc/hosts 文件中声明它们(不推荐)

-您从 DNS 服务器获取它。

我想说您的问题可能是您的网络接口配置没有 DNS 服务器或使用的不是 Windows 机器使用的 DNS 服务器。如果它们使用 DHCP 接口配置,则通常会包含 DNS 配置,如果您的网络上有 Windows 域服务器,则它们很可能将其用作主 DNS。

在命令行中尝试“nslookup some_machine_name”以查看会发生什么。它会告诉您正在使用哪个服务器(如果有)。

高血压

相关内容