Comment afficher et vider le cache DNS sous Linux

Lorsque vous accédez à un site web en utilisant son nom de domaine, votre système envoie une requête à un serveur DNS pour obtenir l’adresse IP de ce domaine. Cette paire domaine-adresse IP est enregistrée dans le cache DNS pour une utilisation ultérieure, de sorte que vous ne devez pas envoyer de demandes au serveur DNS à chaque fois pour établir une connexion.

Mais il arrive que le cache DNS local soit corrompu et provoque des erreurs HTTP. Heureusement, il est facile de vider et de reconstruire le cache DNS sur un ordinateur Linux. Voici comment procéder.

Pourquoi vider le cache DNS sous Linux ?

Il existe plusieurs raisons de vouloir reconstruire le cache DNS stocké sur votre système. Vous avez peut-être un enregistrement DNS obsolète pour un site web et vous souhaitez le récupérer auprès du serveur DNS. Ou encore, votre système a été compromis et vous voulez vous assurer que le cache DNS n’a pas été altéré, ce qui est également connu sous le nom de DNS spoofing (usurpation de nom).

Lorsque vous videz votre cache DNS, le système doit à nouveau envoyer une requête au serveur DNS et obtenir le nouvel enregistrement d’adresse IP du domaine, en supprimant les données obsolètes ou compromises au cours du processus.

Comment afficher le cache DNS local sous Linux

Avant systemd, la plupart des distributions Linux n’avaient pas de cache DNS à l’échelle du système, à moins qu’un programme comme dnsmasq ou nscd ne soit configuré manuellement. systemd est livré avec systemd-resolved, un service qui résout les noms de domaine en adresses IP et met en cache les entrées DNS.

Les sections suivantes vous expliquent comment afficher le contenu du cache DNS généré par systemd-resolved, nscd et dnsmasq, afin que vous puissiez comprendre les données mises en cache avant de décider de les vider.

Affichage du cache DNS pour systemd-resolved

Pour afficher les enregistrements de cache de systemd-resolved, vous devez d’abord arrêter temporairement le service, puis exporter ses journaux dans un fichier.

Commencez par envoyer un signal SIGUSR1 pour tuer le service systemd-resolved :

Voir aussi :  Comment fonctionne l'allocation de mémoire sur Linux

Utilisez la commande journalctl et l’opérateur de sortie standard pour enregistrer la sortie dans un fichier texte :

Vous pouvez ensuite visualiser le contenu du fichier à l’aide d’un éditeur de texte tel que Vim :

Dans le fichier, recherchez « CACHE : » en appuyant sur Échapper et en tapant « /CACHE :« et en tapant Entrer. Tous les enregistrements DNS énumérés sous CACHE : font partie du cache DNS local. Appuyez sur n pour passer à la série suivante d’entrées DNS si vous utilisez Vim.

Afficher le cache DNS local pour nscd

Pour afficher le cache local généré par nscd, vous devez lire le contenu de la base de données des hôtes nscd à l’aide de la commande strings.

Sur les distros basées sur Debian et Ubuntu, ce fichier se trouve à l’emplacement suivant /var/cache/nscd/hosts. Exécutez la commande suivante pour afficher le fichier :

Pour afficher des statistiques générales sur le cache DNS nscd, utilisez la commande -g pour afficher des statistiques générales sur le cache DNS nscd :

Afficher le cache DNS généré par dnsmasq

dnsmasq stocke le cache DNS en mémoire, il n’est donc pas facile d’obtenir les enregistrements exacts. Mais vous pouvez envoyer un signal kill à dnsmasq et enregistrer sa sortie pour obtenir le nombre de requêtes DNS traitées.

Pour ce faire, assurez-vous d’abord que dnsmasq est opérationnel en utilisant la commande systemctl :

Si l’état indique Active exécutez la commande suivante pour supprimer le service :

À l’aide de la commande journalctl, extrayez les journaux dnsmasq et enregistrez-les dans un fichier texte :

Enfin, affichez le contenu du fichier à l’aide d’un utilitaire de visualisation de fichiers tel que cat ou less :

Comment vider le cache DNS sous Linux

Vider le cache DNS signifie supprimer les enregistrements DNS mis en cache de votre ordinateur. Cela l’oblige à envoyer une demande au serveur DNS pour récupérer les nouvelles entrées DNS.

Voici comment vous pouvez vider le cache DNS sous Linux :

Utilisation de systemd-resolved

Vous pouvez utiliser la commande resolvectl pour vider le cache DNS stocké par systemd-resolved :

Voir aussi :  Pourquoi les ordinateurs de bureau virtuels sont vos fonctionnalités les plus sous-estimées

Si vous utilisez Ubuntu 17.04 ou 18.04, utilisez la commande systemd-resolved pour vider le cache :

Vider le cache DNS nscd sous Linux

La manière la plus pratique de supprimer le cache DNS pour nscd est de redémarrer simplement le service. Vous pouvez le faire en exécutant :

Si cela ne fonctionne pas, vérifiez d’abord si le cache local stocké sur votre PC est persistant. Vous pouvez utiliser la commande -g pour le vérifier :

Si c’est le cas, utilisez le drapeau -i avec la commande nscd pour effacer les enregistrements (i correspond à invalider):

Supprimer le cache DNS dnsmasq

La suppression du cache DNS généré par dnsmasq est simple. Le cache étant stocké en mémoire, le redémarrage du service supprime toutes les entrées stockées.

Pour redémarrer dnsmasq, exécutez la commande systemctl suivante :

Ou bien, exécutez la commande suivante :

Saisissez le mot de passe de l’administrateur si vous y êtes invité. dnsmasq va maintenant redémarrer et toutes vos entrées DNS existantes seront supprimées du cache.

Après avoir vidé le cache DNS, il est préférable d’afficher les entrées du cache local et de vérifier si les données ont été supprimées avec succès. Vous pouvez utiliser dig, l’une des nombreuses commandes Linux de dépannage réseau, et vérifier la valeur Query time dans la sortie. Si elle est supérieure à 0 msec, le cache a été effacé avec succès (0 msec signifie que l’enregistrement de domaine est toujours dans le cache).

Vider le cache DNS de Google Chrome

Le navigateur web que vous utilisez fréquemment met également en cache les enregistrements DNS. Lorsque vous saisissez une URL, le système recherche une entrée de cache dans le cache local du navigateur. S’il n’en trouve pas, il recherche les enregistrements dans le cache du système local. Il est essentiel d’effacer le cache DNS de votre navigateur web, car il a une priorité plus élevée que le cache du système.

Pour la démonstration, nous allons vider le cache DNS dans Google Chrome. Il existe des moyens de le faire avec d’autres navigateurs, il est donc préférable que vous cherchiez sur Google comment le faire pour le navigateur que vous utilisez.

Voir aussi :  Comment extraire un seul fichier ou répertoire à partir de TAR ou TAR.GZ

Pour commencer, tapez « chrome://net-internals/#dns« dans la barre d’URL et appuyez sur Entrer:

Cliquez sur Effacer le cache de l’hôte pour effacer les entrées DNS stockées dans Google Chrome.

Linux est le meilleur système d’exploitation pour apprendre à travailler en réseau

Linux peut sembler compliqué au premier abord, mais si vous investissez un peu de temps pour apprendre comment il fonctionne, vous vous rendrez rapidement compte qu’il est fantastique, et peut-être même meilleur que Windows ou macOS.

La plupart des serveurs en ligne fonctionnent sous Linux, et c’est l’une des raisons pour lesquelles Linux est idéal si vous voulez apprendre à travailler en réseau, ou si vous souhaitez savoir comment fonctionnent les ordinateurs, en général.

Comment afficher le cache DNS sous Linux ?

La commande nscd est un utilitaire de ligne de commande Linux qui peut être utilisé pour afficher le contenu du cache DNS local. Pour afficher le contenu du cache DNS local, ouvrez une fenêtre de terminal et tapez la commande « nscd -g ».

Comment visualiser le cache DNS ?

Vérification de votre cache DNS Fenêtre – La procédure de visualisation des entrées de votre cache DNS dans Windows est assez simple. Ouvrez simplement votre invite de commande et entrez la commande suivante : ipconfig /displaydns .

Linux met-il en cache les recherches DNS ?

S’il n’y a pas d’enregistrement dans le cache local, le système d’exploitation lance une recherche DNS vers le serveur DNS public et attend de recevoir l’adresse IP du serveur du domaine. Une fois ces données livrées, le système d’exploitation les stocke dans le cache DNS en vue d’une utilisation ultérieure.

Où Linux stocke-t-il le cache DNS ?

Il est situé dans /var/cache/nscd/hosts, vous pouvez donc exécuter « strings /var/cache/nscd/hosts » pour l’afficher. Si vous utilisez Ubuntu 20.10, Fedora 33 ou une version ultérieure, Systemd est responsable du DNS. Tout d’abord, ouvrez le Terminal et écrivez cette commande « sudo killall -USR1 systemd-resoved ».

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *