如何让 Ubuntu 通过 Windows 网络的主机名被识别

如何让 Ubuntu 通过 Windows 网络的主机名被识别

我有一台 Ubuntu 设备和一台 Windows PC,它们位于同一个域 LAN 中,我的办公室 DHCP 域为“value-tech.com”。我正在从 Ubuntu 导出一个 Samba 文件夹。

Ubuntu 的 $hostname 类型为“david_samba”

我可以使用 IP 地址从 Windows 访问我的 Samba 文件夹,但无法使用主机名访问,

我可以使用 IP 地址 ping Ubuntu,或者在 Windows 文件资源管理器中输入 \xxx.xxx.xxx.xxx 来访问 Ubuntu

下面是我的“smb.conf”剪辑部分

[global]
workgroup = WORKGROUP
#security = share
netbios name = david_samba
wins server = value-tech.com

我如何输入 \david_samba 然后才能从 Windows 文件资源管理器访问它,以避免 DHCP 不时更改 Ubuntu IP 地址时出现问题?

或者,我应该修改 /etc/nsswitch.conf 以使我的主机名在 Windows DNS 网络上工作?

我尝试在 Google 上搜索方法,但没有成功。

答案1

您遇到的问题是名称解析。您需要 LAN PC 正确解析名称“david_samba”。其他一切都正常 - 如果您手动输入 IP,则可以浏览 david_samba 上的共享。

因此,您需要做的就是使名称解析正常工作。这称为 DNS。您需要让您的 LAN PC 解析主机名“david_samba”。您的 LAN PC 可以从 LAN 的 DNS 解析器获取本地名称解析 - 因此,如果 LAN 的 DNS 解析器知道 david_samba 机器的 IP,那么 LAN PC 也知道。

您在 LAN 中提到了 DHCP。如果配置正确,您的 DHCP 服务器将使用其发出的任何 IP 更新 LAN 的 DNS 解析器。您可以配置 DHCP 服务器以向您的 david_samba 机器发出特定 IP,然后这将更新 LAN 中的 DNS 解析器。

因此,如果您的 DNS 和 DHCP 服务器(它们可能是同一台机器上的服务)配置正确,那么您所需要做的就是设置 DHCP 服务器以向 david_samba 发出静态 IP。应将 david_samba 机器配置为通过 DHCP 获取其 IP。

只要网络上的其他机器使用相同的 DNS 解析器,它们就能够将 \david_samba 解析为 \xxx.xxx.xxx.xxx。

一旦正常工作,您将能够使用 \hostname\sharename 访问 Windows 上的共享。

一个简单的测试是使用“ping”:ping david_samba,看看名称是否被转换为 IP 地址,然后收到回复。您要寻找的是测试机器可以使用该名称找到 david_samba 机器的 IP 地址。

如果您无法控制 LAN 的 DNS 和 DHCP 服务器,则可以通过在本地计算机的 hosts 文件中添加条目来快速解决问题。添加如下条目:(所有内容都在一行上)xxx.xxx.xxx.xxx machine_name 例如: 192.168.1.25 david_samba

在 Windows 10 PC 上,hosts 文件位于:c:\windows\system32\drivers\etc\hosts

  • 您需要管理员权限才能编辑此文件。

这将立即生效,非常适合测试,或者如果您只想在自己的 PC 上运行它。对于许多 PC 来说,这不是一个合适的解决方案,因为必须编辑每台 PC 上的 hosts 文件(如果 david_samba 的 IP 发生变化,则需要再次编辑)。如果您希望该解决方案在多台 PC 上运行,则需要让您的本地名称解析 (DNS) 正常运行。

相关内容