Vider le cache DNS avec ipconfig /flushdns

La commande est ipconfig /flushdns, tapée dans une invite de commandes Windows : elle vide le cache du service Client DNS et force la requête suivante à repartir vers le résolveur. Elle ne touche ni au cache de votre navigateur, ni à celui de votre fournisseur d’accès, ce qui explique la plupart des « j’ai flushé et ça ne change rien ».

La bonne syntaxe, et les variantes qui n’existent pas

Ouvrez une invite de commandes, tapez ipconfig /flushdns, Entrée. La formulation « ipconfig dns flush » remet les mots dans le désordre : dans la vraie commande, flushdns est collé derrière le slash, en un seul mot. Windows accepte aussi le tiret (ipconfig -flushdns) et ignore la casse.

La réponse tient sur une ligne : « Cache de résolution DNS vidé. » en français, « Successfully flushed the DNS Resolver Cache. » sur un système anglais. Aucun redémarrage, aucune coupure réseau, l’effet est immédiat.

Sur certaines machines la commande renvoie « L’opération demandée nécessite une élévation ». Rouvrez alors l’invite par un clic droit puis Exécuter en tant qu’administrateur. En PowerShell, la cmdlet Clear-DnsClientCache fait exactement le même travail depuis Windows 8 et Windows Server 2012, et s’intègre mieux dans un script de déploiement.

  • ipconfig dns flush : ipconfig ne reconnaît pas les arguments et affiche son aide, rien n’est vidé
  • ipconfig /dnsflush : n’existe pas
  • ipconfig /flush : n’existe pas non plus
  • ipconfig /flushdns et ipconfig -flushdns : les deux seules formes qui fonctionnent

Regarder le cache avant de le vider

ipconfig /displaydns liste chaque entrée avec son nom, son type d’enregistrement et le temps de vie qui reste. Sur un poste de bureau utilisé depuis une heure, la sortie dépasse facilement plusieurs centaines de lignes.

Pour isoler un domaine, filtrez : ipconfig /displaydns | findstr /i monsite.fr. Vous obtenez l’adresse mise en cache et un compteur « Durée de vie » qui décroît de seconde en seconde. C’est la vérification qui décide de tout : si l’entrée affiche déjà la bonne IP, le problème n’est pas dans le cache DNS et le flush ne servira à rien.

Un détail surprend souvent : juste après un flush, /displaydns n’est pas vide. Les entrées du fichier C:\Windows\System32\drivers\etc\hosts sont rechargées immédiatement dans le cache du service. Une ligne oubliée qui pointe un domaine vers 127.0.0.1 survivra à tous les flushdns du monde, il faut éditer le fichier.

CommandeCe qu’elle faitDroits admin
ipconfig /flushdnsVide le cache du service Client DNSParfois demandés
ipconfig /displaydnsAffiche le contenu du cache et les TTL restantsNon
ipconfig /registerdnsRéenregistre le nom de la machine en DNS dynamique, sans rapport avec le cacheOui
Clear-DnsClientCacheÉquivalent PowerShell de /flushdnsParfois demandés
Get-DnsClientCacheLe cache sous forme d’objets, filtrables par Where-ObjectNon

macOS, Linux, mobile

Sur macOS, deux commandes enchaînées : sudo dscacheutil -flushcache puis sudo killall -HUP mDNSResponder. La première vide le cache du Directory Service, la seconde relance le démon qui assure la résolution. Depuis macOS 10.10.4, exécuter seulement l’une des deux laisse des réponses en mémoire.

Côté Linux, la vraie réponse est souvent qu’il n’y a rien à vider. La glibc ne met aucune résolution en cache par défaut : sans systemd-resolved, dnsmasq ou nscd installé, chaque appel part directement vers le résolveur déclaré dans /etc/resolv.conf. Vérifiez d’abord ce qui tourne avant de chercher une commande magique.

Sur Android et iOS, aucune commande n’est exposée. Le mode avion pendant une dizaine de secondes, ou un redémarrage, reste la seule manœuvre à la portée de l’utilisateur.

  • systemd-resolved : resolvectl flush-caches, et resolvectl statistics pour comparer le nombre d’entrées avant et après (systemd-resolve --flush-caches avant systemd 239)
  • dnsmasq : sudo systemctl restart dnsmasq, il n’y a pas de commande de purge sélective
  • nscd : sudo nscd -i hosts, ou un redémarrage du service
  • Aucun de ces trois installé : il n’existe pas de cache système à vider

Ce que le flush ne répare pas

Un cas concret, vu à chaque migration. Vous basculez un site vers un nouvel hébergeur, l’enregistrement A est modifié à 22 h, le client vous écrit le lendemain matin : il voit encore l’ancien site. Sur sa machine, ipconfig /displaydns affiche l’ancienne IP avec 2 800 secondes restantes, parce que le TTL de l’enregistrement valait 3 600. Le flush règle son cas à lui, en trois secondes. Les visiteurs derrière un autre résolveur attendront, eux, jusqu’à l’expiration du TTL. La vraie correction se prend en amont : abaisser le TTL à 300 secondes 24 à 48 heures avant la bascule, le remonter une fois la migration validée.

Le navigateur garde son propre cache d’hôtes, indépendant de Windows. Dans Chrome, chrome://net-internals/#dns puis le bouton Clear host cache ; les connexions déjà ouvertes se ferment depuis chrome://net-internals/#sockets. Firefox expose la même chose dans about:networking#dns.

Les résolveurs publics proposent une purge par nom : la page 1.1.1.1/purge-cache chez Cloudflare, dns.google/cache chez Google. Utile quand vous testez depuis un poste configuré sur l’un d’eux, sans effet sur les autres résolveurs de la planète.

  • Le cache du navigateur, à vider séparément
  • Le résolveur du fournisseur d’accès, qui tient jusqu’au TTL
  • Le fichier hosts, rechargé aussitôt après le flush
  • Le DNS interne d’entreprise ou celui poussé par un VPN, qui peut renvoyer une adresse privée quoi que vous fassiez

Diagnostiquer au lieu de flusher trois fois

Le TTL renvoyé par un résolveur public est un compte à rebours lisible. dig @1.1.1.1 monsite.fr +noall +answer affiche par exemple 1742, puis 1732 dix secondes plus tard : vous lisez le temps qui reste avant qu’il ne recharge la valeur auprès des serveurs autoritaires.

Pour court-circuiter tous les caches, interrogez directement le serveur autoritaire de la zone : dig @ns1.votre-hebergeur.net monsite.fr, ou nslookup monsite.fr ns1.votre-hebergeur.net sous Windows. Si cette réponse est bonne et que la vôtre ne l’est pas, rien n’est cassé, du cache expire.

Les réponses négatives se mettent aussi en cache. La durée vient du champ MINIMUM de l’enregistrement SOA de la zone, plafonné par le TTL du SOA lui-même, mécanisme décrit par la RFC 2308. Un domaine interrogé quelques minutes avant que sa délégation ne soit active peut donc rester introuvable un moment, flush ou pas. Côté Windows, deux valeurs bornent tout ça sous HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters : MaxCacheTtl, à 86400 secondes par défaut, pour les réponses positives, et MaxNegativeCacheTtl pour les échecs.

Dernier piège si vous travaillez sous Windows 11 ou avec un navigateur en DNS over HTTPS : les requêtes partent en 443 vers un résolveur choisi dans les paramètres, pas en 53 vers celui du DHCP. Le flush local reste valable, mais le serveur qui vous répond n’est plus celui que vous pensez interroger.

Questions fréquentes

ipconfig /flushdns exige-t-il les droits administrateur ?

Sur beaucoup de postes Windows 10 et 11, la commande passe depuis une invite ordinaire. Si vous obtenez « L’opération demandée nécessite une élévation », rouvrez l’invite en administrateur, c’est le seul cas où ça bloque.

Faut-il redémarrer le PC après avoir vidé le cache DNS ?

Non. L’effet est immédiat et la connexion n’est pas coupée. Un redémarrage vide effectivement le cache, puisque le service Dnscache repart de zéro, mais il ne fait rien de plus que la commande.

Pourquoi mon site pointe toujours sur l’ancienne IP après le flush ?

Parce que le cache qui vous ment est ailleurs : navigateur, résolveur du fournisseur d’accès, entrée dans le fichier hosts, ou TTL non expiré. Interrogez le serveur autoritaire avec dig @ns1.votre-hebergeur.net monsite.fr : si la réponse y est correcte, il n’y a qu’à attendre.

Peut-on vider le cache DNS sans passer par l’invite de commandes ?

Oui, avec la cmdlet PowerShell Clear-DnsClientCache. Passer par le service est une fausse bonne idée : net stop dnscache échoue le plus souvent sur Windows 10 et 11, le service étant déclaré non arrêtable.

ipconfig /flushdns change-t-il mon adresse IP ?

Non, la confusion vient de la proximité des commandes. Le renouvellement d’adresse passe par ipconfig /release puis ipconfig /renew, qui parlent au serveur DHCP. flushdns ne modifie aucun paramètre réseau, il efface seulement une mémoire de résolution.

À lire aussi

cache · commande dig · cloudflare dns 1 1 1 1 · arp

Testez vos connaissances

Quiz rapide Question 1 sur 3

Quelle est la syntaxe correcte sous Windows ?

Newsletter

Recevez nos guides IP & réseau

Nouveaux outils, définitions et astuces sécurité, directement par email. Pas de spam, désinscription en un clic.