我希望清除本地 DNS 缓存,以便能够通过最近更改了 DNS A 记录的域名访问服务器。为了便于说明,我们假设以下情况:
领域:我的域名
旧 IP 地址111.111.111.111
新 IP 地址222.222.222.222
我的 ISP 的 DNS 和路由器的 DNS 缓存中的所有内容似乎都已更新:
$ dig @<ISP DNS> mydomain.com
;; ANSWER SECTION:
mydomain.com. 7186 IN A 222.222.222.222
$dig @<router>
;; ANSWER SECTION:
mydomain.com. 7186 IN A 222.222.222.222
但是本地缓存并未更新:
$ dig mydomain.com
;; ANSWER SECTION:
mydomain.com. 7186 IN A 111.111.111.111
;; SERVER: 127.0.0.53#53(127.0.0.53)
清除本地缓存似乎有效,但只是暂时的:
$ systemd-resolve --statistics;systemd-resolve --flush-caches;systemd-resolve --statistics
Cache
Current Cache Size: 1
Cache Hits: 12222
Cache Misses: 6507
<omitted>
Cache
Current Cache Size: 0
Cache Hits: 12222
Cache Misses: 6507
$ dig mydomain.com
;; ANSWER SECTION:
mydomain.com. 7186 IN A 222.222.222.222
;; SERVER: 127.0.0.53#53(127.0.0.53)
然而,过了一段时间,似乎随机出现,我无法再通过域名访问服务器。dig
再次运行显示本地缓存已恢复,而路由器和 ISP 的条目仍然正确:
$ dig mydomain.com
;; ANSWER SECTION:
mydomain.com. 7186 IN A 111.111.111.111
;; SERVER: 127.0.0.53#53(127.0.0.53)
$ dig @<ISP DNS> mydomain.com
;; ANSWER SECTION:
mydomain.com. 7186 IN A 222.222.222.222
$dig @<router>
;; ANSWER SECTION:
mydomain.com. 7186 IN A 222.222.222.222
我还没有想出如何可靠地重现该问题。第一次,它在一夜之间恢复了。今天它在几秒钟内就恢复了。在此期间,我尝试通过 Firefox 访问域名,有时可以正确加载网站,有时则不行(随后检查本地 DNS 缓存显示它已恢复)。
任何建议都将受到欢迎。