如何在 Ubuntu 上清除 dig 的 DNS 缓存?

Zeu*_*eus 6 dns ubuntu

我正在尝试使用 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)

joh*_*n64 9

dig没有自己的缓存,除非您在本地运行一些缓存守护程序,例如nscddnsmasq等。如果您这样做,您只需要重新启动这些守护程序即可清除本地缓存,您可以使用它+trace来查看结果的确切来源。

  • 如果我使用“+trace”,它会跳过缓存并为我提供最新结果,因此这无助于我找出缓存在哪里。不过,它确实增强了我对缓存的了解,因为我可以立即再次尝试该请求,而无需“+trace”,并且仍然可以获得旧结果。我检查了正在运行的进程,并检查了我所知道的每个缓存守护进程是否已安装,但我没有找到任何东西。 (2认同)