ローカルDNSキャッシュの内容を読み取るには?

ローカルDNSキャッシュの内容を読み取るには?

ipconfig /displaydnsWindowsでは、ローカルDNSのキャッシュされたコンテンツを発行して表示できることを知っています。

LinuxでDNSのキャッシュコンテンツを一覧表示するには?

できるだけ多くのクロスディストリビューションソリューションを入手したいと思います。

答え1

以前は、systemdオペレーティングシステムレベルのDNSキャッシュはほとんどありませんでした。

以前は、systemdLinux(およびおそらくほとんどのUnix)にオペレーティングシステムレベルのDNSキャッシュがありませんでした。nscdまたはdnsmasqインストールして実行中です。

nscdそれにもかかわらず、少なくとも Debian では、DNS キャッシュはデフォルトで無効になっています。壊れた

に関してはdnsmasq、それではキャッシュがRAMで発生しているようです。基本的に。

答え2

nscdネームサービスキャッシュデーモン。これは、Linux、Solaris、およびその他のオペレーティングシステムでネームサービス検索をキャッシュするために使用されるユーティリティです。ここでネームサービスは一般的な用語であり、厳密にはホスト検証に限定されず、ユーザ、グループなども含まれる。

使用できますが、キャッシュの実際の内容を表示する方法がわかりません/usr/sbin/nscd -g

これは、キャッシュがどのような問題を解決しているかを完全には示していませんが、少なくともキャッシュがどれだけ効率的かを示します。

代替キャッシュツール(DNSMASQなど)を使用している場合は、他のオプションがあります。

答え3

を使用すると、nscdバイナリキャッシュファイルにASCII文字列を表示して内容(およびその他のジャンク)を表示できます。 Debian/Ubuntu では、このファイルが/var/cache/nscd/hostsホスト/DNS キャッシュに使用されるため、実行してstrings /var/cache/nscd/hostsキャッシュ内のホストを表示できます。

nscdバイナリ型をデコードせずにキャッシュをチェックする正しい方法がないようですので、これは完全にハッキングです。

答え4

SIGUSR1 を systemd-resolved プロセスに送信すると、Journalctl を使用してキャッシュを表示できます。

killall -USR1 systemd-resolved && journalctl -u systemd-resolved | grep -A 100000 "CACHE:"

関連情報