我已将 Windows VM 配置为我的 DNS 服务器,并配置我的所有 ubuntu VM 来使用它。
netplan
从我的 ubuntu VM
$ cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens160:
addresses:
- 172.0.1.51/24
nameservers:
addresses:
- 172.0.1.34
search: []
routes:
- to: default
via: 172.0.1.29
version: 2
名称解析/DNS 查找对于外部互联网连接来说工作正常。
$ ping google.com
PING google.com 56(84) bytes of data.
64 bytes from seu35a21-eu-g67.2e345.net: icmp_seq=1 ttl=107 time=27.4 ms
64 bytes from seu35a21-eu-g67.2e345.net: icmp_seq=2 ttl=107 time=26.6 ms
64 bytes from seu35a21-eu-g67.2e345.net: icmp_seq=3 ttl=107 time=26.7 ms
但是,我在配置的区域(home.local)中的 Windows DNS 服务器中添加了手动 DNS A 记录。
172.0.1.45 nginx.home.local
从我的 Windows VM,ping 到本地 FQDN 可以正常工作。
C:\Users\JCGHDX>ping nginx.home.local
Pinging nginx.home.local [172.0.1.45] with 32 bytes of data:
Reply from 172.0.1.45: bytes=32 time<1ms TTL=128
Reply from 172.0.1.45: bytes=32 time<1ms TTL=128
Reply from 172.0.1.45: bytes=32 time<1ms TTL=128
但是在我的 ubuntu VM 上
$ ping nginx.home.local
ping: nginx.home.local: Temporary failure in name resolution
$ resolvectl status
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (ens160)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 172.0.1.34
DNS Servers: 172.0.1.34
有没有什么提示可以说明为什么本地域的 DNS 查找失败?
答案1
对于任何寻求详细解释的人:Ubuntu 18.04 .local 域名 DNS 查找不起作用
TLDR;/etc/resolv.conf
将名称服务器指向 127.0.0.1#53,这会拒绝对.local
域进行 DNS 查找。该答案提供了修复方法。但是,这需要更改我所有 ubuntu VM 中的配置。
简单的替代方案是在我的 Windows DNS 中配置一个新区域,而无需结束并向.local
该区域添加手动 A 记录。然后最终使用从该区域获得的 FQDN,效果很好!