我正在使用 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 消息。