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

Jim*_*ors 6 networking dns hostname router

[我已经搜索了很多关于这个问题的解决方案,但如果有人想指出我相关的问题和/或答案,请这样做!]

我在宽带路由器上有一个本地网络,其中有 3 台 Windows 7 计算机和 Windows 主机上的 Ubuntu VirtualBox VM。我可以互相访问 Windows 计算机,而且我已经在 Ubuntu 上配置了 Samba,因此我也可以从 Windows 计算机查看和访问my-ubuntu计算机。

问题是通过主机名从 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
Run Code Online (Sandbox Code Playgroud)
  • 为了调试,我禁用了所有防火墙并在任何地方启用了所有读/写权限(因为它们都只是我的机器)。
  • 我也知道我可以/etc/hosts为每台机器添加条目,但我想学习如何让主机名查找动态工作

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

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

小智 3

您所要做的就是:

sudo gedit /etc/nsswitch.conf
Run Code Online (Sandbox Code Playgroud)

改变说的行

hosts: files dns
Run Code Online (Sandbox Code Playgroud)

对此:

hosts: files wins dns
Run Code Online (Sandbox Code Playgroud)

(顺序很重要)

最后,你需要安装winbind

sudo apt-get install winbind
Run Code Online (Sandbox Code Playgroud)

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


jdt*_*ood 1

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

sudo apt-get install winbind
sudo gedit /etc/nsswitch.conf
Run Code Online (Sandbox Code Playgroud)

添加winshosts:行中。

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 wins
Run Code Online (Sandbox Code Playgroud)