21.04:无法从 VM(VMware Workstation)内部解析 .local 主机名

21.04:无法从 VM(VMware Workstation)内部解析 .local 主机名

总结:我需要进行什么配置才能解析.localVM 客户机上的主机名,就像在 VM 主机上解析主机名一样。

长版本:我在 Windows 10 上使用 VMware Workstation(16.1.1 build-17801498)运行装有 Ubuntu 21.04 的虚拟机。Ubuntu 本身几乎是原版,我几乎没有对操作系统/环境本身进行任何更改(实际上现在什么都想不起来)。也许值得注意的是,我从以前的 Ubuntu 版本升级而来,我相信那是 20.04。

在主机上,我可以foo.bar.local使用nslookup

> nslookup foo.bar.local
Server:  <...>
Address:  10.73.1.9

Name:    <...>
Address:  10.132.0.30
Aliases:  foo.bar.local

在客户机上,默认情况下,相同的解析尝试会失败

> host foo.bar.local
Host foo.bar.local not found: 2(SERVFAIL)

但我可以解析名称,如果我告诉主持人使用先前在(VM)主机上响应的相同 DNS 服务器:

> host ordermanagement-migration.comventure.local 10.73.1.9
Using domain server:
Name: 10.73.1.9
Address: 10.73.1.9#53
Aliases: 

foo.bar.local is an alias for hello.world.local.
hello.world.local has address 10.132.0.30

所以我在想“为什么不一直使用该服务器?”并尝试通过网络管理器 GUI 对其进行配置:打开网络设置,转到 IPv4 选项卡,禁用“自动”并在字段中输入 IP。由于我的 VM 配置了两个接口(仅主机网络和用于公共 inet 访问的普通 NAT),为了安全起见,我对两个接口都进行了此操作。令我惊讶的是,在确认这些更改后,无论等待多长时间都没有导致输出发生明显变化systemd-resolve --status:对于两个接口,它只是将相应的a.b.c.1地址保留为 DNS 服务器。相反,我必须先禁用然后启用接口,之后服务器 IP 才会显示出来:

Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (ens33)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 10.73.1.9
       DNS Servers: 10.73.1.9

Link 3 (ens38)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 4 (docker0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

我不明白为什么对于ens38(公共 inet 访问),根本没有显示 DNS 服务器。此时事情变得更加混乱,因为启用一个接口(在网络管理器中),我之前已在该接口上禁用 DNS 的“自动”,但突然显示“自动”已启用,但也列出了手动 DNS IP,但systemd-resolve --status我仍然无法解析foo.bar.local

我也尝试过10.73.1.9在 VMware 工作站的 NAT/DNS 设置中直接将其设置为主 DNS 服务器,但无济于事。

那么,如何才能foo.bar.local默认在我的(VM)客户机上实现可解析,换句话说,无需指定10.73.1.9要使用的名称服务器——在我需要foo.bar.local可解析的应用程序上下文中我无法做到这一点。

附录:我的 VM 主机上有一个 VPN,以防万一。使用 (VM) 主机时,我始终保持 VPN 处于启用状态并处于连接状态。

相关内容