resolv.conf – 没有已知的 DNS 服务器

resolv.conf – 没有已知的 DNS 服务器

我正在使用 focus Ubuntu 20.04.1 LTS(托管虚拟机)

偶尔重启后 DNS 解析会失败(例如ping google.com > Resource temporarily unavailable

为了“修复”这个问题,我重新启动了机器。

正确的解决方法是什么以及为什么这种情况会偶尔发生?

的内容resolv.conf表示该文件正在由systemd-resolved

# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
# No DNS Servers known

错误示例:

wal@www:~$ ping google.com
ping: google.com: Resource temporarily unavailable

答案1

如果/etc/netplan为空,则 netplan 不会配置您的网络。

您的网络可能配置为旧的 ifup/ifdown 样式。这意味着您会在 中找到网络配置/etc/network/interfaces

此外,还有 systemd-resolve 及其 DNS 配置文件/etc/systemd/resolved.conf,您可以将 DNS 配置放入其中。

[Resolve]
DNS=8.8.4.4 8.8.8.8 2001:4860:4860::8844 2001:4860:4860::8888
#FallbackDNS=
Domains=example.com
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

您可以使用以下方式检查 DNS 设置

systemd-resolve --status

你可以使用以下命令重启 systemd-resolve

systemctl restart systemd-resolved

或者,您也可以输入将在启动期间/etc/resolvconf/resolv.conf.d/tail添加的设置。/run/resolvconf/resolv.conf

答案2

Ubuntu 20.04 使用 /etc/netplan 设置 DNS。您的 /etc/netplan/?.yaml 文件中是否有名称服务器部分?

yaml 文件应该有一个类似这样的部分:

            nameservers:
                addresses:
                - 8.8.8.8
                - 2001:4860:4860::8888

resolve.conf 是在启动期间由 netplan 生成的,应该看起来像这样。

nameserver 127.0.0.53
options edns0 trust-ad
search example.com

还有一个 /etc/systemd/resolved.conf,其中可能存储了静态配置。您可以阅读更多详细信息man resolved.conf

此外,您还可以调查 journalctl -b 并搜索 systemd-resolved 消息。

相关内容