Flush DNS : vider le cache DNS de sa machine
Un flush DNS efface les correspondances nom vers adresse IP mémorisées par votre machine : ipconfig /flushdns sous Windows, sudo dscacheutil -flushcache puis sudo killall -HUP mDNSResponder sous macOS, resolvectl flush-caches sous Linux avec systemd-resolved. L'opération ne touche que votre poste : la box, le résolveur de votre opérateur et les caches publics gardent leur réponse jusqu'à expiration du TTL.
La commande, système par système
Sous Windows, ouvrez une invite de commandes en administrateur et tapez ipconfig /flushdns. La réponse tient en une ligne : « Cache de résolution DNS vidé. » En PowerShell, Clear-DnsClientCache fait exactement la même chose et s'intègre mieux dans un script de poste. Sans élévation, certaines configurations renvoient « L'opération demandée nécessite une élévation » : relancez le terminal en administrateur.
Sur macOS, la syntaxe a changé plusieurs fois entre Snow Leopard et Yosemite avant de se stabiliser. Depuis 10.10.4 et jusqu'aux versions actuelles, deux commandes enchaînées suffisent : sudo dscacheutil -flushcache, puis sudo killall -HUP mDNSResponder. La première vide le cache du service d'annuaire, la seconde force mDNSResponder à repartir de zéro. Aucun message ne s'affiche en retour, c'est le comportement normal.
Sous Linux, tout dépend de ce qui met réellement en cache. Beaucoup de distributions n'ont aucun cache DNS au niveau système et interrogent le résolveur à chaque requête : il n'y a alors rien à vider. Vérifiez d'abord avec systemctl status systemd-resolved ou ps aux | grep dnsmasq avant de chercher une commande qui n'aura aucun effet.
| Système ou logiciel | Commande | Droits |
|---|---|---|
| Windows 10 / 11 | ipconfig /flushdns | Invite administrateur |
| Windows (PowerShell) | Clear-DnsClientCache | Session administrateur |
| macOS 10.10.4 et suivants | sudo dscacheutil -flushcache ; sudo killall -HUP mDNSResponder | sudo |
| Linux systemd-resolved | resolvectl flush-caches | sudo |
| Linux (systemd ancien) | systemd-resolve --flush-caches | sudo |
| Linux dnsmasq | sudo systemctl restart dnsmasq | root |
| Linux nscd | sudo nscd -i hosts | root |
| Résolveur BIND | rndc flush ou rndc flushname exemple.fr | accès rndc |
| Chrome / Edge | chrome://net-internals/#dns puis Clear host cache | aucun |
| Firefox | about:networking#dns puis Vider le cache DNS | aucun |
Ce que le flush efface vraiment
Entre votre navigateur et le serveur faisant autorité pour une zone, une réponse DNS traverse plusieurs mémoires successives. Le flush local n'en vide qu'une seule.
Votre commande agit sur le cache du système, et éventuellement sur celui du navigateur si vous passez par net-internals. Tout le reste continue de servir l'ancienne réponse jusqu'à expiration du TTL fourni avec l'enregistrement. Un A publié avec un TTL de 3600 reste jusqu'à une heure dans le cache de 1.1.1.1 après votre modification, et vider votre poste n'y change rien.
Google Public DNS et Cloudflare exposent tous deux un formulaire public pour purger un nom précis de leur cache. Utile pendant une bascule, mais la purge ne concerne que ces deux résolveurs : les dizaines d'autres, dont celui de votre opérateur, attendront la fin du TTL. RFC 8767 autorise même un résolveur à servir une donnée périmée quand il n'arrive plus à joindre les serveurs autoritaires.
Windows plafonne par ailleurs la durée de conservation côté client : le paramètre MaxCacheTtl du service Dnscache vaut 86400 secondes par défaut, donc un enregistrement publié avec un TTL d'une semaine ne sera jamais gardé plus d'une journée par votre poste.
- Le cache interne du navigateur, indépendant du système
- Le cache du résolveur local : Dnscache sous Windows, mDNSResponder sous macOS, systemd-resolved ou dnsmasq sous Linux
- Le cache de la box ou du routeur, souvent invisible et purgeable seulement par redémarrage
- Le cache du résolveur récursif : opérateur, 8.8.8.8, 1.1.1.1, résolveur d'entreprise
- Les serveurs faisant autorité pour la zone, seule source réellement à jour
Vérifier au lieu de deviner
Avant de vider, regardez ce qu'il y a dedans. ipconfig /displaydns | findstr /i exemple.fr sous Windows affiche l'entrée mémorisée et le TTL restant ; Get-DnsClientCache donne la même chose sous forme d'objets filtrables. Côté systemd-resolved, resolvectl statistics compte les entrées en cache et le taux de succès.
Le test le plus rapide pour savoir si une réponse sort d'un cache tient en deux appels à dig. Lancez dig exemple.fr A, notez le TTL, relancez dix secondes plus tard. Si la valeur décroît (287, puis 277), la réponse vient d'un cache. Si elle revient pleine à chaque fois, vous interrogez un serveur faisant autorité.
Ensuite, comparez les sources. dig +short exemple.fr interroge votre résolveur configuré, dig +short exemple.fr @1.1.1.1 court-circuite l'opérateur, et dig +short exemple.fr @ns1.hebergeur.net va chercher la vérité à la source. Deux adresses différentes entre ces trois appels vous disent exactement à quel étage le retard se situe. Sur un poste Windows sans dig, nslookup exemple.fr 1.1.1.1 rend le même service en moins précis.
Les cas où le flush ne change rien
Le premier piège tient au DNS chiffré. Si Firefox résout en DoH (network.trr.mode dans about:config), ses requêtes partent en HTTPS sur le port 443 vers le résolveur du navigateur, décrites par la RFC 8484, et ne passent jamais par le cache de Windows. Vous pouvez lancer ipconfig /flushdns dix fois, la page continuera de charger l'ancienne IP. Il faut passer par about:networking#dns, ou par chrome://net-internals/#dns côté Chrome et Edge.
Deuxième piège, le fichier hosts. Une ligne oubliée dans C:\Windows\System32\drivers\etc\hosts ou /etc/hosts prend le pas sur toute résolution, cache vidé ou non. C'est la cause la plus fréquente d'un nom qui refuse obstinément de bouger sur une machine de développeur.
Troisième piège, la mise en cache des réponses négatives. Quand un nom n'existe pas, le résolveur mémorise ce NXDOMAIN pour la durée dérivée du SOA de la zone, mécanisme décrit par la RFC 2308 qui recommande de plafonner cette valeur à trois heures. Vous créez l'enregistrement, il reste introuvable pendant un moment, et votre flush local ne purge pas la réponse négative gardée en amont.
Sur mobile, enfin, il n'existe aucune commande. Android et iOS ne donnent pas accès à leur cache : le mode avion activé une dizaine de secondes, ou un redémarrage, reste le seul levier disponible.
- DNS chiffré activé dans le navigateur (DoH sur 443, DoT sur 853)
- Ligne résiduelle dans le fichier hosts
- VPN ou résolveur d'entreprise poussé par DHCP, qui garde son propre cache
- Cache de la box, à purger par redémarrage
- Réponse négative NXDOMAIN encore valide en amont
Flush DNS, cache du navigateur, propagation : trois choses distinctes
Vider le cache du navigateur avec Ctrl+Maj+Suppr efface des pages, des images, des cookies. Cette opération ne touche pas la table nom vers IP. À l'inverse, un flush DNS ne supprime aucun historique de navigation, même si ipconfig /displaydns révèle au passage les noms consultés récemment sur la machine.
Quant à la « propagation DNS », l'expression est trompeuse : rien ne se propage. Vos serveurs autoritaires servent la nouvelle valeur dès l'enregistrement, et ce sont les caches intermédiaires qui expirent à leur rythme, chacun selon le TTL qu'il a reçu. Aucun flush local n'accélère ce mécanisme pour les autres internautes.
La bonne pratique avant une migration : abaissez le TTL de l'enregistrement concerné à 300 secondes au moins un TTL complet à l'avance (24 heures si vous étiez à 86400), basculez, vérifiez, puis remontez le TTL une fois la nouvelle valeur stabilisée. Cette préparation vaut mieux que n'importe quelle commande lancée après coup.
Questions fréquentes
Faut-il redémarrer l’ordinateur après un flush DNS ?
Non. La commande agit immédiatement, la prochaine requête repart vers le résolveur. Un redémarrage vide le même cache, en plus long.
Pourquoi mon site pointe-t-il encore vers l’ancienne IP après le flush ?
Parce que le retard n'est pas chez vous. Testez avec dig +short exemple.fr @1.1.1.1 : si l'ancienne adresse ressort, c'est un cache en amont qui attend la fin du TTL. Redémarrez aussi la box, qui garde souvent sa propre copie.
Le flush DNS accélère-t-il la connexion ?
Plutôt le contraire à court terme. Chaque nom doit être résolu à nouveau, ce qui ajoute quelques dizaines de millisecondes sur la première visite de chaque site. Le gain n'existe que si une entrée en cache était fausse.
Comment vider le cache d’un résolveur BIND que j’administre ?
rndc flush vide tout le cache du serveur, rndc flushname exemple.fr ne purge qu'un nom, ce qui évite de pénaliser tous les clients pendant une migration ponctuelle.
ipconfig /flushdns supprime-t-il mes identifiants ou mes cookies ?
Non. La commande ne touche qu'à la table de résolution de noms du service Dnscache. Sessions, cookies et mots de passe enregistrés restent intacts.
À lire aussi
cache · commande dig · cloudflare dns 1 1 1 1
Testez vos connaissances
Quelle commande vide le cache DNS sous Windows ?
Score : 0 sur 3