通过主机名从本地网络上的 Ubuntu 访问 Windows 计算机

通过主机名从本地网络上的 Ubuntu 访问 Windows 计算机

[我花了很多时间来寻找此问题的解决方案,但如果有人愿意向我指出相关的问题和/或答案,请这样做!]

我有一个通过宽带路由器的本地网络,其中有 3 台 Windows 7 计算机和一台 Windows 主机上的 Ubuntu VirtualBox VM。我可以从彼此很好地访问 Windows 计算机,并且我在 Ubuntu 上配置了 Samba,因此我可以看到并访问我的 Ubuntu计算机与 Windows 机器一样。

问题是通过主机名从 Ubuntu 访问 Windows 机器。 我可以通过 IP 地址从 Ubuntu ping 通 Windows 机器,但无法通过它们的名称进行查找,WIN7-1WIN7-2win7-3

即,smbclient -L 192.168.2.5成功了,但是smbclient -L win7-1不行。 smbtree有时候显示以下内容,有时候不显示:

WORKGROUP
    \\MY-UBUNTU
    \\WIN7-1
    \\WIN7-2
    \\WIN7-3
  • 为了调试的目的,我禁用了所有防火墙并启用了所有读/写权限(因为它们都只是我的机器)。
  • 我也知道我可以为每台机器添加条目/etc/hosts,但我想了解如何让主机名查找动态工作

问题

我怎样设置我想要的工作? Ubuntu 在设置了桥接网络的 Windows 主机上的 VirtualBox VM 中运行,因此我无法在 Ubuntu 中运行 DNS 服务器(或者可以吗?)。

我想其他新手也会非常感激高层概述,DNS 服务器应该在哪里,Ubuntu 机器应该如何使用它,我是否需要在 Windows 机器的设置中更改任何内容..我对遇到的所有这些包和设置感到困惑 - ,,,,resolv..我只想安装和使用我需要的东西!libnss-mdnsavahidnsmasqwinbind

答案1

您所要做的就是:

sudo gedit /etc/nsswitch.conf

修改以下行:

hosts: files dns

更改为:

hosts: files wins dns

(顺序很重要)

最后,你需要安装 winbind

sudo apt-get install winbind

来源: http://that-matt.com/2009/12/how-to-get-ubuntu-to-ping-a-windows-hostname/

答案2

Windows 计算机可能使用 WINS 来解析彼此的名称。在这种情况下,您必须将 Ubuntu 计算机配置为使用 WINS。

sudo apt-get install winbind
sudo gedit /etc/nsswitch.conf

添加winshosts:行中。

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 wins

相关内容