Hoe u de DNS-cache wist op Windows, macOS en Linux
Om DNS te wissen, voert u ipconfig /flushdns uit op Windows, sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder op macOS, of resolvectl flush-caches op Linux met systemd-resolved. Het exacte commando hangt af van uw besturingssysteem en, op Linux, van welke resolver het draait.
Wat de DNS-cache is en waarom wissen helpt
Elke keer dat een apparaat een hostnaam vertaalt naar een IP-adres, bewaart het het antwoord een tijdje in plaats van het bij het volgende verzoek opnieuw te vragen. Dat opgeslagen antwoord staat in de DNS-cache van het besturingssysteem, en die is apart van de DNS-cache die uw browser daarbovenop bijhoudt. Caching is wat browsen snel maakt: zonder dat zou elk verzoek naar elk element op een pagina een verse opzoeking veroorzaken.
De cache wordt een probleem zodra een record verandert. Als een site naar een nieuw IP-adres is verhuisd, van hostingprovider is gewisseld, of een CNAME heeft bijgewerkt, kan uw machine met de oude waarde blijven antwoorden tot de gecachte vermelding verloopt. Resolvers cachen ook negatieve antwoorden, wat betekent "deze naam bestaat niet", voor een periode die is ingesteld door het SOA-record van het domein, dus een naam die net begint te werken kan lokaal nog enkele minuten blijven falen. Het wissen van de cache dwingt de volgende opzoeking om vers naar buiten te gaan in plaats van te hergebruiken wat er was opgeslagen.
Hoe u DNS wist op Windows
- Open de opdrachtprompt. Microsofts eigen probleemoplossingsstappen gebruiken een verhoogde prompt (rechtsklik, Als administrator uitvoeren) voor DNS-commando's, dus begin daar als de gewone versie zich vreemd gedraagt.
- Voer
ipconfig /flushdnsuit. Volgens de documentatie van Microsoft Learn over dit commando "wist en herstelt dit de inhoud van de DNS-clientresolvercache", waarbij zowel negatieve vermeldingen als alles wat dynamisch is gecachet, wordt weggegooid. - Bevestig dat het werkte met
ipconfig /displaydns, dat alles opsomt wat op dat moment in de resolvercache staat. Direct na een wissen zou dit een bijna lege lijst moeten teruggeven; browse naar een paar sites en voer het opnieuw uit om verse vermeldingen te zien terugkomen.
Als een verouderd adres blijft terugkomen, kunnen de door DHCP toegewezen DNS-servers zelf samen met de lease zijn gecachet. Het loslaten en vernieuwen van de adapter pakt beide op:
ipconfig /release
ipconfig /renew
Hoe u DNS wist op macOS
Het commando hangt af van hoe oud de macOS-versie van de machine is, en de verkeerde gebruiken voor een moderne Mac doet stilzwijgend niets.
- Yosemite 10.10.4 en elke versie sindsdien (dit dekt alle momenteel ondersteunde macOS-releases, inclusief Sequoia, Sonoma, Ventura, Monterey en Big Sur):
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. Het eerste commando wist de cache van de Directory Service; het tweede stuurt mDNSResponder een HUP-signaal zodat het herstart en laat vallen wat het vasthield. - Alleen Yosemite 10.10 tot en met 10.10.3 gebruikte een andere tool:
sudo discoveryutil mdnsflushcache. - Mavericks, Mountain Lion en Lion:
sudo killall -HUP mDNSResponderalleen was al genoeg. - Snow Leopard (10.6 tot 10.6.8):
sudo dscacheutil -flushcachealleen, zonder killall-stap.
Tenzij u een Mac heeft die oud genoeg is om van vóór de Yosemite-update van 2014 te dateren, gebruikt u het eerste commando. Beide delen vereisen uw accountwachtwoord, en het commando levert bij succes geen uitvoer op.
Hoe u DNS wist op Linux
Linux heeft geen enkele DNS-cache om te wissen, omdat distributies verschillende resolverstacks meeleveren. Controleer welke actief is voordat u een commando kiest.
Voer eerst resolvectl status uit. Als dat DNS-instellingen per interface teruggeeft, draait de machine systemd-resolved, de standaard op de huidige Ubuntu, Fedora en de meeste andere moderne distributies. Als het commando niet wordt gevonden, controleer dan op de andere twee gangbare diensten: systemctl status nscd of systemctl status dnsmasq (of, als systemd niet in gebruik is, zoek naar het proces met ps aux | grep -E 'nscd|dnsmasq').
- systemd-resolved (systemd 239 en later):
resolvectl flush-caches. De systemd-handleiding omschrijft het als het wissen van "alle DNS-resource-record-caches die de dienst lokaal bijhoudt". U kunt controleren of het werkte metresolvectl statistics, dat de huidige cachegrootte rapporteert. - systemd-resolved op oudere systemd (van vóór de 239-hernoeming):
sudo systemd-resolve --flush-caches. Sommige huidige distributies houden dit nog als compatibiliteitsalias aan, zelfs na het toevoegen vanresolvectl, dus het is de moeite waard om te proberen alsresolvectlontbreekt maarsystemd-resolveniet. - nscd:
sudo systemctl restart nscdherstart de hele dienst en wist daarmee de cache. Om alleen de hosts-cache te ongeldig te maken zonder herstart, werktsudo nscd -i hostsop distributies die die vlag meeleveren. - dnsmasq: het sturen van een HUP-signaal wist de cache zonder de dienst te stoppen, volgens de eigen man-pagina:
sudo killall -HUP dnsmasq. Een gewonesudo systemctl restart dnsmasqwerkt ook en herlaadt bovendien de configuratie.
Hoe u de eigen DNS-cache van de browser wist
Chrome houdt een eigen DNS-cache bij, los van die van het besturingssysteem, dus het wissen van alleen de OS-cache is vaak niet genoeg om een wijziging zichtbaar te maken. Open chrome://net-internals/#dns en klik op Clear host cache. Chromium-gebaseerde browsers (Edge, Brave, Opera en andere) tonen dezelfde pagina op hetzelfde adres.
Dat is mogelijk nog niet de hele oplossing. Chrome houdt ook een pool van al geopende verbindingen naar het oude IP-adres bij en kan er een hergebruiken in plaats van een nieuwe verbinding te maken, zelfs nadat de DNS-cache leeg is. Open chrome://net-internals/#sockets en gebruik Flush socket pools om die ook te sluiten. Als een site nog steeds de oude versie laadt na beide stappen, probeer dan een privévenster, want dat begint zonder gecachte verbindingen.
Waarom het oude adres nog verschijnt na het wissen
Als u elke cache op de machine heeft gewist en de browser toont nog steeds de oude server, ligt de vertraging meestal niet meer lokaal. Een thuisrouter draait doorgaans een eigen kleine DNS-cache voor elk apparaat op het netwerk, en de router herstarten wist die laag. Voorbij de router houdt ook de resolver van uw provider een eigen cache bij, en u heeft geen directe manier om die te wissen; die maakt zichzelf leeg zodra de TTL van de gecachte vermelding verloopt.
TTL, de time-to-live-waarde op een DNS-record, is de werkelijke grens aan hoe snel een wijziging zich kan verspreiden. Elke resolver tussen u en de autoritatieve nameserver mag een antwoord precies dat aantal seconden vasthouden voordat hij verplicht is opnieuw te vragen. Een record met een TTL van een uur kan legitiem bijna een uur nadat het is gewijzigd nog steeds het oude adres teruggeven aan sommige bezoekers, ongeacht wat u op uw eigen machine wist. Zie hoe DNS-propagatie werkt voor wat die tijdlijn bepaalt en hoe u controleert of een record overal klaar is met bijwerken.
Veelgestelde vragen
Moet ik mijn computer opnieuw opstarten na het wissen van DNS?
Nee. Elk commando hierboven werkt onmiddellijk en wist alleen de cache in het geheugen; een herstart maakt geen deel uit van het proces op Windows, macOS of Linux.
Waarom loste het wissen van DNS het probleem niet op?
Drie dingen houden meestal nog het oude antwoord vast: de eigen cache van de browser (wis die apart op chrome://net-internals/#dns), de router die uw netwerk bedient, of de TTL van het record die simpelweg nog niet is verlopen ergens anders op het internet. Als een opzoeking helemaal mislukt of vastloopt in plaats van een verouderd antwoord te geven, wijst dat op een DNS-server die niet reageert in plaats van een cacheprobleem.
Hoe wis ik DNS op mijn telefoon?
Noch iOS noch Android biedt een handmatig DNS-wiscommando. Vliegtuigmodus aan- en uitzetten, of wisselen van wifi naar mobiele data en terug, dwingt het apparaat om zijn gecachte DNS-status te laten vallen en opnieuw op te lossen bij het volgende verzoek.
Lost het wissen van DNS trage paginaladingen op?
Zelden op zichzelf. Een beschadigde of te grote lokale cache kan een kleine vertraging toevoegen, maar consequent trage opzoekingen worden vaker veroorzaakt door de resolver zelf. Zie waarom DNS-opzoekingen traag zijn voor de waarschijnlijkere oorzaken en hoe u ze test.
Wat is het verschil tussen DNS wissen en browsercache wissen?
Browsercache slaat pagina-inhoud op: HTML, CSS, afbeeldingen en scripts. DNS-cache slaat alleen de koppeling van hostnaam naar IP-adres op die wordt gebruikt om de server om te beginnen te vinden. Het een wissen wist het ander niet, en een verouderde pagina kan door beide worden veroorzaakt.
Hoe bevestig ik dat het wissen werkte?
Voer op Windows direct na het wissen ipconfig /displaydns uit; die zou bijna leeg moeten terugkomen. Op Linux met systemd-resolved rapporteert resolvectl statistics de huidige cachegrootte. macOS heeft geen equivalent inspectiecommando, dus de praktische controle is om het domein opnieuw op te zoeken met dig example.com of een controle uit te voeren van buiten uw eigen netwerk met een tool zoals een DNS-opzoeking die vanaf meerdere locaties tegelijk vraagt, wat ook uitsluit of het verouderde antwoord lokaal bij u vandaan komt of van de eigen nameservers van het domein.