在最近升级到 20.04 后,我无法清除 DNS 缓存

在最近升级到 20.04 后,我无法清除 DNS 缓存

我最近更改了一个网站的 NS 记录,当我使用在线工具挖掘时https://toolbox.googleapps.com/apps/dig/#NS/我可以看到它指向正确的位置。即使我的手机在同一个 WiFi 网络上,它也能访问正确的网站,但在我的 Ubuntu 20.04 上,它仍然转到之前的网站,而没有正确指向新网站。

过去我使用以下命令来清除缓存,但这不再起作用:

sudo /etc/init.d/nscd restart

我发现了一些类似的帖子,并尝试了许多答案或评论中的解决方案,但到目前为止对我没有任何作用。

这是我大约3~4小时前更改的问题域的响应:

nslookup the-domain-name.org
Server:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
Name:   the-domain-name.org
Address: xx.xx.xx.xx (INCORRECT_IP, points to the DNS provider)
Name:   the-domain-name.org
Address: xx.xx.xx.xx (I am not sure if this IP is correct or not)

当我查看/etc/resolv.conf文件内部时,它包含以下内容:

  GNU nano 4.8                    /etc/resolv.conf                              
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# 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.

nameserver 127.0.0.53
options edns0 trust-ad
search local

我该如何解决这个问题?刷新缓存的正确方法是什么?有人说指向谷歌的 DNS,该怎么做?

编辑:更新,

我不得不将另一个域名移至新 IP,但同样的问题再次出现。我尝试了本文中的所有方法,但都不起作用:https://www.linuxuprising.com/2019/07/how-to-flush-dns-cache-on-linux-for.html

概括:

dig the-domain A <显示不正确的(旧)IP>

dig the-domain A@8.8.8.8 <显示正确的(新)IP>

nslookup the-domain <显示不正确的(旧)地址>

nslookup the-domain 8.8.8.8 <显示正确的(新)地址>

在任何浏览器中,chrome、Firefox、Brave,我都能看到旧网站。

答案1

resolvectl flush-caches

这取决于您是否使用systemd-networknetwork-manager。您的 似乎resolv.conf指向127.0.0.53,这是一个绑定到 的环回地址systemd-resolved。它维护自己的缓存,可以用 进行控制resolvectl。使用systemd-resolved是 20.04 中的默认设置(如果使用systemd-networkd),但不是以前的 LTS 版本。

上游 DNS 服务器也可能缓存了您的结果。如果您要专门查询 DNS 服务器,则可以使用命令nslookup the-domain-name.org the-dns-serverdig the-domain-name.org @the-dns-server。例如,要查询 Google 流行的 quad8 服务器,这两个命令中的任何一个都可以。

nslookup example.com 8.8.8.8
dig example.com @8.8.8.8

相关内容