Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
3  
As far as I am aware, there is no DNS cache maintained on the client in Linux (resolver) unless the system is using local caching only dns service on the client. – Nikhil Mulley Jan 7 '12 at 18:55
    
You always have the /etc/hosts file which may contain entries generated by DNS blacklisting services. – user13742 Jan 7 '12 at 19:08

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 /usr/sbin/nscd -g.

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.

share|improve this answer

On Linux (and probably most Unix), there is no OS-level DNS caching unless nscd is installed and running. Even then, the DNS caching feature of nscd is disabled by default in Debian at least, simply because it is broken.

The practical upshot is that your linux system most probably does not do any OS-level DNS caching.

share|improve this answer

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 files 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.