Ubuntu 16.04 桌面虚拟机是唯一不会在本地网络上注册的操作系统

Ubuntu 16.04 桌面虚拟机是唯一不会在本地网络上注册的操作系统

我在 vmware 工作站 12.5 中的 Windows 10 Pro 主机上运行了几个 Linux 和 Windows VM(VMware)。

所有虚拟机在工作站中的配置方式相同,但在 Windows 上的“网络”中未发现 Ubuntu 虚拟机,因此我无法从主机连接到它。

虚拟机有互联网连接,但虚拟机本身也出现同样的情况。我可以看到那里的所有其他网络位置(主机 + 所有虚拟机),但 Ubuntu 虚拟机本身似乎没有在本地网络上注册。

我使用 NAT,并且希望能够将其用于所有虚拟机。我可以通过主机名连接到其他虚拟机,但正如我所说,我无法通过 ip 或主机名找到此虚拟机的任何踪迹。我发现很奇怪,这个虚拟机可以检测到其他位置但不能注册!?

我已尝试克隆+重新安装该操作系统。

这些avahi/zeroconf软件包确实有助于发现其他位置,因为只有在安装了 avahi-daemon 包后我才能看到它们。

此外,使用此发行版时,vmware-tools/open-vm-tools 会出现一些奇怪的情况。Workstation 似乎无法正确识别已安装的工具,因为“vm meny”一直显示“更新 vmware tools”。我已尝试过这两种方式open-vm-toolsvmware-tools工作站发行版。很抱歉提供的信息可能不够充分,但我必须通过这篇文章进行更新。

DHCP正在工作,Windows 网络适配器 + VM 适配器设置为动态 IP 和 DNS。

最后,正如我已经说过的,其他一切都正常。我正在通过 Visual Studio 将 Windows 虚拟机连接到所有其他 Linux 虚拟机以进行交叉编译。

编辑: 问题还是一样。我尝试了本论坛和其他地方的多种建议和解决方法,但还是无法从主机或其他虚拟机与该虚拟机建立联系。

我的内核 IP 路由表如下所示:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.252.2   0.0.0.0         UG    100    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.252.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0

现在我知道 zeroconf 把 169.254.0.0 放在那里是为了修补我的 ip,因为肯定存在一些问题。但我正在寻找的答案是为什么 Ubuntu 16.04 与 NAT(实际上是一般网络)的交互方式与 Mint Cinnamon 不同?

我已经尝试了很多解决方法,但我无法从主机 ping 我的 ubuntu 客户端,也无法从其他网络位置连接到它。上面的内核 ip 路由表是我为动态路由定义 /etc/network/interfaces 文件时生成的,如下所示:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

因此,我尝试了如下定义 /etc/network/interfaces 文件的建议:

auto eth0
iface eth0 inet static
address 192.168.252.0
netmask 255.255.255.0
gateway 192.168.252.2
dns-nameservers 8.8.8.8 192.168.252.2

... 以及无穷无尽的变化。我从 vmware 中的虚拟网络编辑器获得信息,并且再次绝对没有理由认为错误应该出现在 Ubuntu 操作系统之外的任何地方,因为所有其他 vm 都使用相同的设置。

Ubuntu 16.04 和 Mint Cinnamon 17.3 或 SuperX 3.0 中 AVAHI 和 ZEROCONF 的实现似乎存在差异。这到底是怎么回事?我能说什么呢?我尝试修改 /etc/nsswitch.conf 中的 host 参数值:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

,尝试将 /etc/avahi/avahi-daemon.conf 修改为:

#domain-name=alocal

、修改/etc/default/grub文件:

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"

我还尝试在 /etc/network/interfaces 文件中添加主机名,然后在 c:/windows/system32/drivers/etc/hosts 中添加其 IP 地址 + 主机名。

我尝试过分别和一起卸载 zeroconf 包和 avahi 包。删除 avahi 和 zeroconf 包后,我注意到此虚拟机没有任何变化。连接性相同。怎么会这样??在我看来(非常谦虚),这里似乎有大量不必要的包(读作:shi...)。除非有人能明确回答为什么此操作系统作为标准实现“.local”重定向以及我上面提到的问题 - 否则我将放弃 Ubuntu 16.04。谢谢。

编辑

我在虚拟机上安装了 libnss.myhostname 包,现在我可以 ping 一下第一个名称....如“ubuntu.local”。问题是,它只返回 ipv6 地址,而计算机仍然没有出现在 Windows 的网络下。

编辑 我在文件 hostname 中将 .local 添加到“ubuntu”名称中。现在我可以 ping “ubuntu.local”,并返回 ipv4 地址。但是,主机名(或者说 netBIOS)名称不会出现在 Windows 网络中。据我所知,这是因为 Windows 无法在 dns 数据库中引用它的映射。

答案1

我会大胆地回答我自己的问题,因为我确实自己解决了这个问题。我在 Ubuntu vm 上安装了 Samba 软件包,并wins在行中添加了

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

在 /etc/nsswitch.conf 文件中。

我确实读到过,仅为了主机名/netBIOS 名称解析而安装 Samba 服务器并不是一个好习惯,但除非有人能提供更好的 NAT 解决方案(使用 vmware 工作站设置),否则我并不关心...

相关内容