Windowsではipconfig /displaydns
と私はローカルDNSのキャッシュコンテンツを表示します。
LinuxでDNSのキャッシュコンテンツを一覧表示するにはどうすればよいですか?
できるだけクロスディストリビューションのソリューションを入手したいと考えています。
systemd
以前は、OSレベルのDNSキャッシュはほとんどありませんでしたsystemd
より前は、 nscd
でない限り、Linux(およびおそらくほとんどのUnix)ではOSレベルのDNSキャッシュがありませんでした。または dnsmasq
がインストールされ、実行されていました。
それでも、nscd
のDNSキャッシング機能は、少なくとも 壊れているため 、少なくともDebianではデフォルトで無効にされていました。
dnsmasq
については、 キャッシュはデフォルトでRAM で発生するようです。
nscd
は、ネームサービスキャッシングデーモンです。これは、Linux、Solaris、その他がネームサービス検索をキャッシュするために使用するユーティリティです。この場合のネームサービスは一般的な用語であり、厳密にホストの解決だけでなく、ユーザー、グループなどにも限定されます。
キャッシュの実際の内容を確認する方法はわかりませんが、/usr/sbin/nscd -g
を使用して統計情報を表示できます。
これは、キャッシュがどれほど効率的であるかを示すことができますが、正確に解決することはできません。
DNSMASQなどの代替キャッシュツールを使用している場合は、他のオプションを使用できます。
nscd
を使用している場合、バイナリキャッシュファイルのASCII文字列を表示することで、コンテンツ(およびおそらく他のゴミ)を表示できます。Debian/ Ubuntuでは、ファイルは/var/cache/nscd/hosts
はホスト/ DNSキャッシュ用なので、strings /var/cache/nscd/hosts
キャッシュ内のホストを表示します。
バイナリ形式をデコードせずにnscd
キャッシュを検査する適切な方法がないように見えるため、これは完全なハックであることに注意してください。