Flush DNS sur Linux: Resolvés Systemd, NetworkManager et NSCD
Publié: 2025-09-26Lorsque votre système Linux se comporte étrangement lors de l'accès aux sites Web - ou résout des domaines incorrects - il peut être temps de vider le cache DNS. Comme le cache de votre navigateur, le cache DNS stocke des données temporaires qui contribuent à améliorer la vitesse de navigation Web et à réduire la latence. Cependant, lorsque ce cache devient obsolète ou corrompu, il peut entraîner des problèmes de connectivité. Ceci est particulièrement important dans les scénarios de développement ou de réseautage où les noms de domaine changent fréquemment. Dans cet article, nous explorerons comment rincer le cache DNS dans les systèmes Linux qui utilisentSystemd-Resolved,NetworkManagerouNSCD(nom de cache de service).
Comprendre la mise en cache DNS dans Linux
La mise en cache DNS est un mécanisme qui stocke les recherches DNS localement. Cela empêche les requêtes répétées pour le même nom de domaine d'être ressentie aux serveurs DNS, ce qui peut améliorer les performances. Cependant, Linux distribue différemment les responsabilités de résolution DNS en fonction des composants ou des services du système utilisés.
Dans les distributions modernes, vous êtes le plus susceptible de rencontrer l'un des systèmes de résolveur suivants:
- SystemD-Resolved: Common dans les distributions plus récentes comme Ubuntu 18.04+ et Fedora.
- NetworkManager: fonctionne souvent avec SystemD-Resolved ou un autre backend.
- NSCD(Name Service Cache Daemon): trouvé dans certains systèmes traditionnels UNIX et Enterprise Linux.
Chacun de ces systèmes gère la mise en cache DNS différemment, ce qui signifie que la méthode pour rincer le cache varie également. Commençons chacun en détail.
Cache DNS rinçage dans Systemd-Resolbed
SystemD-Resolvedest un service fourni parSystemDpour gérer les requêtes DNS et la mise en cache. Il devient la norme dans de nombreuses distributions Linux traditionnelles. Vous pouvez vérifier si votre système utilise SystemD-résolu en fonction:
systemctl is-active systemd-resolved
S'il est actif, continuez à rincer le cache DNS avec la commande suivante:
sudo systemd-resolve --flush-caches
Pour confirmer que le cache a été effacé ou afficher les statistiques actuelles, vous pouvez utiliser:
systemd-resolve --statistics
Cette commande affiche des mesures comme le nombre d'entrées de cache, de coups et de manques, vous aidant à vous assurer que le rinçage du cache a réussi.

Configuration et débogage résolus systemd
Pour les utilisateurs avancés, la configuration du service réside dans /etc/systemd/resolved.conf
. Vous pouvez ajuster les paramètres comme les serveurs DNS ou les comportements de secours. Si vous rencontrez des problèmes de DNS persistants, envisagez de consulter les journaux journalctl
pourrésoudre SystemD:
journalctl -u systemd-resolved
Cela peut être incroyablement utile lors du dépannage des problèmes de résolution du domaine résultant de la mauvaise configuration du DNS ou de l'empoisonnement au cache.
Utilisation de NetworkManager pour actualiser DNS
NetworkManager est un utilitaire qui gère automatiquement la configuration du réseau sur de nombreuses distributions Linux, y compris des environnements de bureau comme Gnome et KDE. Bien que NetworkManager lui-même ne cache pas DNS, il détermine souvent le service (comme Systemd-Resolved) gère DNS.
Pour actualiser les paramètres DNS à l'aide de NetworkManager, vous pouvez redémarrer le service:
sudo systemctl restart NetworkManager
Cette méthode oblige indirectement une ré-résolution DNS en redémarrant les connexions et les services connexes. Si vous souhaitez devenir plus granulaire, vous pouvez également désactiver et réactiver des interfaces de réseau spécifiques. Par exemple:
nmcli networking off nmcli networking on
Ou, pour un appareil spécifique:
nmcli device disconnect eth0 nmcli device connect eth0
Cette méthode est particulièrement utile lors de la commutation entre les réseaux ou de la résolution des problèmes de propagation du domaine après le changement DNS.
Inspection des paramètres DNS avec NMCLI
Si vous souhaitez inspecter quel DNS que votre NetworkManager utilise, la commande:
nmcli dev show | grep DNS
Listera les adresses DNS actuellement actives. Ceci est utile lors de la vérification que les paramètres DNS de DHCP ou d'adressage statique sont correctement appliqués.

Flushing DNS avec NSCD (nom de cache de service de nom)
Bien qu'il soit moins courant dans les systèmes Linux de bureau modernes,NSCDest toujours utilisé dans les environnements d'entreprise et d'héritage. Il cache des demandes de service de nom pour accélérer la résolution pour les noms d'hôte, les mots de passe et autres objets de base de données. Tout d'abord, assurez-vous qu'il est installé et en cours d'exécution:

sudo systemctl status nscd
S'il est actif, rincer le cache DNS est simple:
sudo nscd -i hosts
Cette commande indique à NSCD d'invalider (-i) ses entrées de cache pour les noms d'hôte. Si vous souhaitez tout rincer, pas seulement les entrées DNS, utilisez:
sudo nscd -I
Cela rechargera toute la configuration et effacera les données mises en cache pour toutes les bases de données prises en charge.
Configuration et surveillance de NSCD
NSCD est configuré via /etc/nscd.conf
. Vous pouvez activer ou désactiver la mise en cache pour divers types de données comme:
- passage
- groupe
- hôtes
Le fichier est bien vendu, ce qui le rend raisonnablement accessible. La surveillance des journaux via journalctl -u nscd
vous permet de garder un œil sur son comportement et d'identifier les problèmes potentiels.
Comment déterminer quel mécanisme de mise en cache vous utilisez
Vous ne savez pas sur quel système votre machine Linux s'appuie pour la mise en cache DNS? Voici quelques contrôles rapides:
-
systemd-resolve --status
renvoie-t-il une sortie significative? Si oui, votre système utilise probablement Systemd-résolu. -
nscd -g
fournit-il des entrées de table? Vous utilisez peut-êtreNSCD. -
resolvectl
fonctionne-t-il sur votre système? C'est un bon indice pourrésoudre Systemd. -
dnsmasq
ouBIND
est-il installé? Cela pointe vers des configurations plus avancées nécessitant des étapes distinctes.
Il est crucial d'identifier le résolveur DNS avant de tenter de rincer ou de déboguer le cache DNS, car rincer le mauvais cache ne résoudra pas votre problème.
Pourquoi le rinçage régulièrement DNS est bénéfique
Bien que la mise en cache DNS améliore les performances, elle peut également être problématique. Voici pourquoi et quand vous voudrez peut-être le vider:
- Après avoir changé les entrées DNS:les caches non flush peuvent pointer vers de vieux serveurs IPS ou DNS.
- Problèmes de connectivité de dépannage:le cache corrompu ou empoisonné conduit à des résolutions ratées.
- Scénarios de l'ère du développement:lors du test d'une migration de domaine ou d'une commutation entre les serveurs de stadification et de production.
Le rinçage régulièrement du cache DNS aide à maintenir la santé du système et évite les problèmes d'accès au site inattendus, en particulier pour les utilisateurs de puissance, les administrateurs système et les développeurs.
Conseils et outils avancés
Si vous travaillez dans un environnement complexe ou si vous avez besoin de plus de contrôle sur la résolution DNS, voici quelques outils et conseils bonus:
- DNSMASQ:agit comme un transfert DNS léger avec des capacités de mise en cache.
- Bind (nommé):serveur DNS de qualité d'entreprise avec mise en cache de zone accordable et expiration personnalisée.
dig
etnslookup
:outils de débogage pour tester les enregistrements DNS en temps réel.host
:simple et direct pour interroger les enregistrements DNS sans perturbation du cache.

Réflexions finales
Le rinçage de votre cache DNS dans Linux est une tâche simple - une fois, vous savez quel outil ou service gère la résolution DNS sur votre système. Que vous utilisiezSystemD-Resolved,NetworkManagerouNSCD, en compréhension comment chaque fonctionnement vous armera avec les compétences nécessaires pour résoudre rapidement tout scénario de dépannage lié au DNS. Garder votre cache DNS propre n'est pas seulement une bonne hygiène - il est essentiel pour une résolution fiable et précise de noms de domaine dans le paysage de réseautage dynamique d'aujourd'hui.