我正在尝试使用 dig 来验证一些 DNS 信息,但我只看到旧的结果。根据我的阅读,Ubuntu 默认情况下不会在操作系统级别缓存 DNS。如果这是真的,那么 dig 命令就有自己的 DNS 缓存。据推测,安装通用 DNS 缓存nscd
不会阻止 dig 使用自己的缓存,所以我的问题是如何清除 dig 命令使用的缓存?
我意识到 DNS 信息可能不会立即传播,但dig @8.8.8.8
例如,如果我得到更新的结果。然而,在同一个域上多次正常使用 dig 会发现除了第一个结果之外的所有结果都需要 0 毫秒,所以很明显在某种程度上存在缓存。
编辑:这是dig superuser.com
第一次尝试的摘要:
;; Query time: 233 msec
;; SERVER: 208.109.188.1#53(208.109.188.1)
;; WHEN: Tue Apr 24 10:09:19 2012
;; MSG SIZE rcvd: 113
Run Code Online (Sandbox Code Playgroud)
第二次尝试:
;; Query time: 0 msec
;; SERVER: 208.109.188.1#53(208.109.188.1)
;; WHEN: Tue Apr 24 10:09:58 2012
;; MSG SIZE rcvd: 113
Run Code Online (Sandbox Code Playgroud)
dig
没有自己的缓存,除非您在本地运行一些缓存守护程序,例如nscd
或dnsmasq
等。如果您这样做,您只需要重新启动这些守护程序即可清除本地缓存,您可以使用它+trace
来查看结果的确切来源。