本地 DNS 无法解析 - 超时

本地 DNS 无法解析 - 超时

经过几个小时的搜索,不幸的是,我还没有能够解决以下问题,希望有人能帮助我。服务器上是带有docker的Ubuntu 22.04,它提供了多个网站容器。实际上,我偶尔会在系统日志中看到Apr 2 10:39:32 vm1 dockerd[887]: time="2024-04-02T10:39:32.567669384Z" level=error msg="[resolver] failed to query external DNS server" client-addr="udp:127.0.0.1:57901" dns-server="udp:127.0.0.53:53" error="read udp 127.0.0.1:57901->127.0.0.53:53: i/o timeout" question=";domain.de.\tIN\t AAAA" spanID=f7a5101a1c0540080df traceID=5fc4ba54560e892a27a98b0566bc8c43194

问题是,有时网站无法发送电子邮件,并且网站加载时间过长。

我收到的另一个错误日志:

> nslookup stackoverflow.com
Server:     127.0.0.53
Address:    127.0.0.53#53
Non-authoritative answer:
Name:   stackoverflow.com
Address: 104.18.32.7
Name:   stackoverflow.com
Address: 172.64.155.249
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out

systemd-resolve/resolvectl 不包含任何错误或警告。

将 google 的名称服务器 (8.8.8.8 8.8.4.4) 添加到 /etc/resolv.conf 也无济于事。即使只有 Docker 在运行且没有容器处于活动状态,也会发生这种情况。我觉得当我停止 Docker 时问题就消失了。

下面是一个示例,展示了当我停止 Docker 时它是如何突然工作的:

root@vm1:/opt# nslookup askubuntu.com
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
^C
root@vm1:/opt# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket

root@vm1:/opt# nslookup askubuntu.com
Server:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
Name:   askubuntu.com
Address: 104.18.37.100
Name:   askubuntu.com
Address: 172.64.150.156

相关内容