I know that on Windows I can issue
ipconfig /displaydns and I see the local DNS's cache content.
How can I list the DNS's cache content in Linux?
I would like to get as much as cross-distro solution as possible.
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
systemd, there was almost no OS-level DNS caching
Even then, the DNS caching feature of
nscd was disabled by default in Debian at least, simply because it is broken.
dnsmasq, the caching seems to occur in RAM by default.
nscd is the Name Service Caching Daemon. This is the utility that Linux, Solaris, and other use to cache name service lookups. Name Service in this case is a generic term, not strictly limited to host resolution, but also users, groups, etc.
I don't know of a way to see the actual contents of the cache, though you can display statistics with
That can at least show you how efficient your cache is, though not exactly what it's resolving.
You may have other options if you're using an alternate caching tool, like DNSMASQ.
If you are using
nscd, you can view the contents (and possibly some other garbage), by showing the ASCII strings from the binary cache file. In Debian/Ubuntu, that file is
/var/cache/nscd/hosts for the hosts/DNS cache, so you can run
strings /var/cache/nscd/hosts to see the hosts in cache.
Note that this is a total hack as there is seemingly no proper way to inspect the
nscd cache without decoding the binary format.