我最近更改了一个网站的 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-network
或network-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-server
或dig the-domain-name.org @the-dns-server
。例如,要查询 Google 流行的 quad8 服务器,这两个命令中的任何一个都可以。
nslookup example.com 8.8.8.8
dig example.com @8.8.8.8