Ubuntu Server 18.04 LTS 未使用正确的 DNS 服务器

Ubuntu Server 18.04 LTS 未使用正确的 DNS 服务器

我有几个 18.04 VM,它们都存在相同的问题:它们似乎没有使用正确的 DNS 服务器。这些机器从 DHCP 获取设置,如下所示:

$ netplan ip leases ens18

# This is private data. Do not parse.
ADDRESS=192.168.100.60
NETMASK=255.255.255.0
ROUTER=192.168.100.1
SERVER_ADDRESS=192.168.100.1
T1=3600
T2=6300
LIFETIME=7200
DNS=192.168.6.1 8.8.8.8
DOMAINNAME=my.domain
HOSTNAME=influx
CLIENTID=<redacted>

我已经将上面的数字随机化,但重点是列出的 DNS 服务器是来自 DHCP 的正确服务器。但是,如果我尝试使用 nslookup 进行名称解析,则会得到以下结果:

$ nslookup
> test.my.domain
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find test.my.domain: NXDOMAIN

但是,我可以明确地使用 DNS 服务器:

$ nslookup test.my.domain 192.168.6.1
Server:     192.168.6.1
Address:    192.168.6.1#53

Name:   test.my.domain
Address: 192.168.100.150

有人能解释为什么它默认为 127.0.0.53 以及为什么名称解析不起作用吗?

值得注意的是,我在同一个子网中同时运行了 16.04 VM,它们没有相同的问题(它们解决了问题并且 nslookup 按预期工作)。

答案1

我猜是你的虚拟机上的域服务器 (bind) 出了问题。如果你查看ls -al /etc/resolv.conf它,它应该解析为指向 ../run/systemd/resolve/stub-resolv.conf 的链接

真正的 resolv.conf 也应该在该目录中。

您可以重定向符号链接:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

或者你可以禁用域服务

sudo systemctl disable systemd-resolved  
sudo reboot

如果您愿意,这可能会解决您的问题。无论哪种方式,您都可能需要重新启动虚拟机。

相关内容