Je sais que sous Windows, je peux émettre ipconfig /displaydns
et je vois le contenu du cache du DNS local.
Comment puis-je répertorier le contenu du cache DNS sous Linux?
Je voudrais obtenir autant de solution de distribution croisée que possible.
systemd
, il n'y avait presque pas de mise en cache DNS au niveau du système d'exploitationAvant systemd
, il n'y avait pas de mise en cache DNS au niveau du système d'exploitation sur Linux (et probablement la plupart d'Unix), sauf nscd
ou dnsmasq
a été installé et fonctionne.
Même alors, la fonction de mise en cache DNS de nscd
a été désactivée par défaut dans Debian au moins, simplement parce que elle est cassée .
Quant à dnsmasq
, le la mise en cache semble se produire dans la RAM par défaut.
nscd
est le démon de mise en cache du service de noms. Il s'agit de l'utilitaire que Linux, Solaris et d'autres utilisent pour mettre en cache les recherches de service de noms. Le service de noms dans ce cas est un terme générique, non strictement limité à la résolution de l'hôte, mais aussi aux utilisateurs, groupes, etc.
Je ne connais aucun moyen de voir le contenu réel du cache, bien que vous puissiez afficher des statistiques avec /usr/sbin/nscd -g
.
Cela peut au moins vous montrer l'efficacité de votre cache, mais pas exactement ce qu'il résout.
Vous pouvez avoir d'autres options si vous utilisez un autre outil de mise en cache, comme DNSMASQ.
Si vous utilisez nscd
, vous pouvez afficher le contenu (et éventuellement d'autres ordures), en affichant les chaînes ASCII du fichier cache binaire. Dans Debian/Ubuntu, cela le fichier est /var/cache/nscd/hosts
pour le cache hôtes/DNS, vous pouvez donc exécuter strings /var/cache/nscd/hosts
pour voir les hôtes dans le cache.
Notez qu'il s'agit d'un hack total car il n'y a apparemment aucun moyen approprié d'inspecter le cache nscd
sans décoder le format binaire.