Aller au contenu principal

Guides / Corriger : guides pour les erreurs que l'on rencontre vraiment

Comment vider le cache DNS sous Windows, macOS et Linux

Pour vider le DNS, exécutez ipconfig /flushdns sous Windows, sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder sous macOS, ou resolvectl flush-caches sous Linux avec systemd-resolved. La commande exacte dépend de votre système d’exploitation et, sous Linux, du résolveur qu’il fait tourner.

Ce qu’est le cache DNS et pourquoi le vider aide

Chaque fois qu’un appareil résout un nom d’hôte en une adresse IP, il enregistre la réponse pendant un moment au lieu de la redemander à la prochaine requête. Cette réponse enregistrée vit dans le cache DNS du système d’exploitation, et il est distinct du cache DNS que votre navigateur garde par-dessus. La mise en cache est ce qui rend la navigation rapide : sans elle, chaque requête vers chaque ressource d’une page déclencherait une nouvelle résolution.

Le cache devient un problème dès qu’un enregistrement change. Si un site a déménagé vers une nouvelle adresse IP, changé de fournisseur d’hébergement, ou mis à jour un CNAME, votre machine peut continuer à répondre avec l’ancienne valeur jusqu’à ce que l’entrée en cache expire. Les résolveurs mettent aussi en cache les réponses négatives, c’est-à-dire « ce nom n’existe pas », pendant une période fixée par l’enregistrement SOA du domaine, donc un nom qui vient de commencer à fonctionner peut quand même échouer localement pendant plusieurs minutes. Vider le cache force la prochaine résolution à repartir de zéro au lieu de réutiliser ce qui était stocké.

Comment vider le DNS sous Windows

  1. Ouvrez l’invite de commandes. Les propres étapes de dépannage de Microsoft utilisent une invite élevée (clic droit, Exécuter en tant qu’administrateur) pour les commandes DNS, donc partez de là si la version simple se comporte bizarrement.
  2. Exécutez ipconfig /flushdns. Selon la documentation de Microsoft Learn pour cette commande, elle « vide et réinitialise le contenu du cache du résolveur client DNS », rejetant à la fois les entrées négatives et tout ce qui a été mis en cache dynamiquement.
  3. Confirmez que ça a fonctionné avec ipconfig /displaydns, qui liste tout ce qui se trouve actuellement dans le cache du résolveur. Juste après un vidage, cela devrait renvoyer une liste presque vide ; visitez deux ou trois sites et relancez la commande pour voir de nouvelles entrées se repeupler.

Si une adresse obsolète revient sans cesse, les serveurs DNS distribués par le DHCP peuvent eux-mêmes être mis en cache avec le bail. Libérer puis renouveler l’adaptateur reprend les deux :

ipconfig /release
ipconfig /renew

Comment vider le DNS sous macOS

La commande dépend de l’ancienneté de la version macOS de la machine, et utiliser la mauvaise sur un Mac récent ne fait silencieusement rien.

  • Yosemite 10.10.4 et toutes les versions depuis (cela couvre toutes les versions macOS actuellement prises en charge, y compris Sequoia, Sonoma, Ventura, Monterey et Big Sur) : sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. La première commande vide le cache du Directory Service ; la seconde envoie à mDNSResponder un signal HUP pour qu’il redémarre et abandonne ce qu’il retenait.
  • Yosemite 10.10 à 10.10.3 seulement utilisait un outil différent : sudo discoveryutil mdnsflushcache.
  • Mavericks, Mountain Lion et Lion : sudo killall -HUP mDNSResponder seul suffisait.
  • Snow Leopard (10.6 à 10.6.8) : sudo dscacheutil -flushcache seul, sans étape killall.

Sauf si vous êtes sur un Mac assez ancien pour précéder la mise à jour Yosemite de 2014, utilisez la première commande. Les deux parties demandent le mot de passe de votre compte, et la commande ne produit aucune sortie en cas de succès.

Comment vider le DNS sous Linux

Linux n’a pas de cache DNS unique à vider, parce que les distributions livrent des piles de résolveurs différentes. Vérifiez lequel est actif avant de choisir une commande.

Exécutez d’abord resolvectl status. S’il renvoie des réglages DNS par interface, la machine fait tourner systemd-resolved, ce qui est le défaut sur Ubuntu, Fedora et la plupart des autres distributions modernes actuelles. Si la commande est introuvable, vérifiez plutôt les deux autres services courants : systemctl status nscd ou systemctl status dnsmasq (ou, si systemd n’est pas utilisé, cherchez le processus avec ps aux | grep -E 'nscd|dnsmasq').

  • systemd-resolved (systemd 239 et plus récent) : resolvectl flush-caches. Le manuel systemd la décrit comme vidant « tous les caches d’enregistrements de ressources DNS que le service maintient localement ». Vous pouvez vérifier que ça a fonctionné avec resolvectl statistics, qui rapporte la taille actuelle du cache.
  • systemd-resolved sur systemd plus ancien (avant le renommage en 239) : sudo systemd-resolve --flush-caches. Certaines distributions actuelles gardent encore ceci comme alias de compatibilité même après l’ajout de resolvectl, donc ça vaut la peine d’essayer si resolvectl est absent mais que systemd-resolve ne l’est pas.
  • nscd : sudo systemctl restart nscd redémarre tout le service et vide son cache avec lui. Pour invalider seulement le cache des hôtes sans redémarrage, sudo nscd -i hosts fonctionne sur les distributions qui offrent cette option.
  • dnsmasq : lui envoyer un signal HUP vide le cache sans arrêter le service, selon sa propre page de manuel : sudo killall -HUP dnsmasq. Un simple sudo systemctl restart dnsmasq fonctionne aussi et recharge en plus sa configuration.

Comment vider le propre cache DNS du navigateur

Chrome garde son propre cache DNS, distinct de celui du système d’exploitation, donc vider le cache de l’OS seul ne suffit souvent pas à voir un changement prendre effet. Ouvrez chrome://net-internals/#dns et cliquez sur Clear host cache. Les navigateurs basés sur Chromium (Edge, Brave, Opera et d’autres) exposent la même page à la même adresse.

Cela peut encore ne pas être toute la correction. Chrome garde aussi un pool de connexions déjà ouvertes vers l’ancienne adresse IP et peut en réutiliser une au lieu d’en créer une nouvelle, même après que le cache DNS est vide. Ouvrez chrome://net-internals/#sockets et utilisez Flush socket pools pour les fermer aussi. Si un site charge encore l’ancienne version après les deux étapes, essayez une fenêtre privée, puisqu’elle démarre sans aucune connexion en cache.

Pourquoi l’ancienne adresse apparaît encore après un vidage

Si vous avez vidé chaque cache de la machine et que le navigateur montre toujours l’ancien serveur, le délai n’est généralement plus local. Un routeur domestique fait en général tourner son propre petit cache DNS pour chaque appareil du réseau, et le redémarrer vide cette couche. Au-delà du routeur, le résolveur de votre FAI garde aussi son propre cache, et vous n’avez aucun moyen direct de le vider ; il se vide lui-même une fois que le TTL de son entrée en cache est épuisé.

Le TTL, la valeur de durée de vie sur un enregistrement DNS, est la vraie limite à la vitesse à laquelle un changement peut se propager. Chaque résolveur entre vous et le serveur faisant autorité a le droit de garder une réponse pendant exactement ce nombre de secondes avant d’être tenu de redemander. Un enregistrement avec un TTL d’une heure peut légitimement encore renvoyer l’ancienne adresse à certains visiteurs près d’une heure après son changement, quoi que vous videz sur votre propre machine. Voir comment fonctionne la propagation DNS pour ce qui contrôle ce calendrier et comment vérifier si un enregistrement a fini de se mettre à jour partout.

Questions fréquentes

Dois-je redémarrer mon ordinateur après avoir vidé le DNS ?

Non. Chaque commande ci-dessus prend effet immédiatement et ne vide que le cache en mémoire ; un redémarrage ne fait pas partie du processus sous Windows, macOS ou Linux.

Pourquoi vider le DNS n’a-t-il pas corrigé le problème ?

Trois choses retiennent couramment encore l’ancienne réponse : le propre cache du navigateur (videz-le séparément sur chrome://net-internals/#dns), le routeur qui dessert votre réseau, ou le TTL de l’enregistrement qui n’a tout simplement pas encore expiré ailleurs sur internet. Si une résolution échoue complètement ou expire au lieu de renvoyer une réponse obsolète, cela pointe vers un serveur DNS qui ne répond pas plutôt qu’un problème de cache.

Comment vider le DNS sur mon téléphone ?

Ni iOS ni Android n’expose de commande manuelle de vidage DNS. Activer puis désactiver le mode avion, ou passer du Wi-Fi aux données mobiles puis revenir, force l’appareil à abandonner son état DNS mis en cache et à résoudre de nouveau à la prochaine requête.

Vider le DNS corrige-t-il les chargements de page lents ?

Rarement à lui seul. Un cache local corrompu ou surdimensionné peut ajouter un petit délai, mais des résolutions durablement lentes sont plus souvent causées par le résolveur lui-même. Voir pourquoi les résolutions DNS sont lentes pour les causes les plus probables et comment les tester.

Quelle est la différence entre vider le DNS et vider le cache du navigateur ?

Le cache du navigateur stocke le contenu des pages : HTML, CSS, images et scripts. Le cache DNS ne stocke que la correspondance nom d’hôte vers IP utilisée pour trouver le serveur au départ. Vider l’un ne vide pas l’autre, et une page obsolète peut être causée par l’un ou l’autre.

Comment confirmer que le vidage a fonctionné ?

Sous Windows, exécutez ipconfig /displaydns juste après le vidage ; il devrait revenir presque vide. Sous Linux avec systemd-resolved, resolvectl statistics rapporte la taille actuelle du cache. macOS n’a pas de commande d’inspection équivalente, donc la vérification pratique consiste à rechercher de nouveau le domaine avec dig example.com ou à lancer une vérification depuis l’extérieur de votre propre réseau avec un outil comme une vérification de requête DNS qui interroge depuis plusieurs emplacements à la fois, ce qui permet aussi d’exclure si la réponse obsolète vous est propre ou vient des propres serveurs de noms du domaine.

Vérifier maintenant

Lancez la vérification gratuite sur votre propre site, sans créer de compte.

Dns query

Surveiller en permanence

Soyez alerté dès que quelque chose casse : HostTracker vérifie depuis plus de 300 emplacements et vous prévient par e-mail, SMS, Slack, Telegram et plus encore.

Fonctionnalités HostTracker

Plus dans cette section: Corriger : guides pour les erreurs que l'on rencontre vraiment