Comment vider le cache DNS sur macOS (Sequoia, Sonoma, Ventura)

Apprenez à effacer votre cache DNS sur macOS avec une seule commande Terminal. Corrige les enregistrements DNS périmés après des changements de domaine, des redirections cassées et des problèmes de résolution étranges.

Les problèmes de cache DNS sont faciles à mal diagnostiquer. Vous mettez à jour les enregistrements d’un domaine, attendez la propagation, puis ouvrez un navigateur et l’ancien site se charge encore. Ou un site qui fonctionnait auparavant refuse soudainement de se connecter. Le serveur va bien. Votre connexion internet va bien. Le problème est que votre Mac a mis en cache une réponse DNS obsolète et continue de la servir.

Vider le cache DNS indique à macOS d’oublier ces réponses stockées et de redemander depuis le début. Cela prend une seule commande et environ cinq secondes.

Pourquoi votre Mac met les enregistrements DNS en cache

Chaque fois que vous visitez un site web, votre Mac doit traduire le nom de domaine (comme example.com) en adresse IP. Cette traduction passe par un processus : votre Mac vérifie d’abord son cache DNS local, puis interroge un résolveur DNS (généralement celui de votre FAI ou un public comme 1.1.1.1), et si aucun n’a la réponse, le résolveur contacte le serveur de noms faisant autorité pour ce domaine.

La mise en cache est généralement bénéfique. Elle accélère la navigation car votre Mac évite toute la chaîne de recherche pour les sites que vous avez visités récemment. Le problème se manifeste lorsque les enregistrements DNS changent et que la réponse mise en cache de votre Mac pointe encore vers l’ancienne destination. Le TTL (time to live) d’un enregistrement DNS indique aux résolveurs combien de temps le mettre en cache, mais macOS ne le respecte pas toujours précisément.

Quand un vidage DNS aide réellement

Tous les problèmes réseau ne sont pas des problèmes de cache DNS. Un vidage aide quand :

  • Vous venez de changer les enregistrements DNS d’un domaine et votre Mac résout toujours vers l’ancienne IP
  • Un site redirige vers le mauvais endroit même si le changement DNS a propagé partout ailleurs
  • Vous avez basculé depuis un VPN ou une configuration DNS personnalisée et certains domaines se résolvent incorrectement
  • Un domaine qui existe définitivement retourne « serveur introuvable » sur votre machine mais se résout correctement ailleurs

Si un site est juste lent, si les connexions expirent, ou si vous obtenez des erreurs TLS, vider le DNS n’aidera probablement pas. Ce sont des problèmes différents.

La commande pour vider le cache DNS sur macOS

La commande est la même pour les versions récentes de macOS. Ouvrez le Terminal (dans Applications > Utilitaires, ou cherchez avec Spotlight) et exécutez :

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Saisissez votre mot de passe lorsque c’est demandé. Le Terminal n’affichera pas les caractères au fur et à mesure que vous tapez, c’est normal. Vous ne verrez aucune sortie de confirmation en cas de succès, ce qui est également normal.

Cette commande fonctionne sur :

  • macOS Sequoia (15.x)
  • macOS Sonoma (14.x)
  • macOS Ventura (13.x)

Elle fonctionne également sur Monterey et Big Sur si vous utilisez encore ces versions.

La commande fait deux choses. dscacheutil -flushcache efface le cache des services d’annuaire, qui inclut le DNS. killall -HUP mDNSResponder envoie un signal au processus de réponse DNS de macOS, lui demandant de se recharger. Vous avez besoin des deux. Exécuter uniquement dscacheutil suffisait sur les anciennes versions de macOS mais a cessé d’être suffisant il y a des années.

Le préfixe sudo est requis car ce sont des opérations au niveau du système. Sans lui, les deux commandes échoueront silencieusement ou retourneront une erreur de permissions.

Vérifier que le vidage a fonctionné

Après le vidage, ouvrez un nouvel onglet de navigateur et visitez le domaine avec lequel vous aviez des problèmes. Si le problème était un cache obsolète, vous devriez voir le bon site.

Pour une vérification plus définitive, vous pouvez effectuer une recherche DNS et confirmer que l’adresse IP que vous obtenez correspond à ce que vous attendez. L’outil de recherche DNS de NetUtil rend cela rapide : ouvrez l’application, allez dans Recherche DNS, tapez le domaine et exécutez la requête. Le résultat affiche l’enregistrement A (adresse IPv4) ou AAAA (IPv6) que votre Mac résout désormais. Si l’IP correspond à votre enregistrement DNS mis à jour, le vidage a fonctionné et le nouvel enregistrement est pris en compte.

Si vous voyez l’ancienne IP, le problème ne vient pas de votre cache local. Il est probablement encore en train de propager via les résolveurs en amont, ou le changement DNS n’a pas encore pleinement pris effet. Dans ce cas, attendez quelques minutes et réessayez.

Vous pouvez également utiliser directement le Terminal avec nslookup example.com ou dig example.com pour vérifier l’IP résolue.

Un vidage, c’est tout

Vider le DNS sur macOS est une ligne de commande qui prend quelques secondes. Le résultat ne persiste d’aucune façon visible, il efface simplement les réponses mises en cache obsolètes pour que votre Mac repart à zéro. Si le changement DNS que vous attendez a propagé, vous résoudrez correctement immédiatement après. S’il n’a pas propagé, le vidage ne causera quand même aucun dommage, et vous pouvez le relancer une fois que la propagation est terminée.

NetUtil inclut un outil de recherche DNS aux côtés de Ping, Traceroute, Whois, Port Scan et Netstat. C’est une application macOS gratuite qui remplace le Network Utility qu’Apple a supprimé dans macOS Big Sur.