Wie man den DNS-Cache in Windows, macOS und Chrome leert
Das Leeren Ihres DNS-Cache zwingt Ihr Betriebssystem oder Ihren Browser, lokal gespeicherte DNS-Einträge zu verwerfen und aktuelle Zuordnungen von autoritativen Nameservern abzurufen. Diese einzelne Operation löst eine überraschend große Anzahl von Verbindungsfehlern – von ERR_NAME_NOT_RESOLVED-Fehlern bis hin zu veralteten IP-Einträgen, die nach einer Servermigration zurückgeblieben sind.
Was ist ein DNS-Cache? Es handelt sich um eine temporäre, lokale Datenbank, die von Ihrem Betriebssystem (und separat von einigen Browsern) verwaltet wird und die Ergebnisse früherer DNS-Abfragen speichert. Jedes Mal, wenn Sie einen Hostnamen wie example.com auflösen, wird die resultierende IP-Adresse zusammen mit einem TTL (Time To Live)-Zähler gespeichert. Bis dieser TTL abläuft, überspringt Ihr System den vorgelagerten Resolver vollständig und verwendet den zwischengespeicherten Eintrag – was zwar schnell ist, aber zu einem Problem wird, sobald dieser Eintrag veraltet ist, manipuliert wurde oder auf einen stillgelegten Server verweist.
Warum der DNS-Cache zum Problem wird
Das Verständnis der Fehlermodi macht deutlich, warum das Leeren des Caches manchmal die einzig richtige Lösung ist:
- Servermigration oder IP-Änderung: Wenn eine Website auf eine neue Infrastruktur umzieht, werden ihre DNS-Einträge mit einem neuen A- oder AAAA-Eintrag aktualisiert. Wenn Ihr lokaler Cache noch die alte IP enthält, geht jede Anfrage an den falschen Host – was häufig zu einem Verbindungs-Timeout oder einem TLS-Zertifikat-Fehler führt.
- DNS-Cache-Poisoning: Malware und Man-in-the-Middle-Angriffe können gefälschte Einträge in Ihren lokalen Cache einschleusen und den Datenverkehr stillschweigend auf von Angreifern kontrollierte Server umleiten. Das Leeren des Caches entfernt die manipulierten Einträge sofort.
- Negatives Caching: Eine fehlgeschlagene DNS-Abfrage (NXDOMAIN-Antwort) wird ebenfalls zwischengespeichert. Wenn eine Domain vorübergehend nicht erreichbar war und das negative Ergebnis zwischengespeichert wurde, weigert sich Ihr System, sie erneut aufzulösen, bis der negative TTL abläuft – selbst nachdem die Domain wieder online ist.
- Split-Horizon-DNS-Konflikte: Entwickler, die mit lokalen
/etc/hosts-Überschreibungen oder VPN-zugewiesenen Resolvern arbeiten, stoßen häufig auf veraltete Cache-Einträge, die ihr beabsichtigtes Routing überschreiben. - Artefakte nach der VPN-Trennung: Verbleibende DNS-Einträge aus einer VPN-Sitzung können nach der Trennung bestehen bleiben und DNS-Lecks oder Routing-Fehler im lokalen Netzwerk verursachen.
So leeren Sie den DNS-Cache unter Windows
Das Verfahren ist unter Windows 7, 8, 10 und 11 identisch. Der einzige wesentliche Unterschied besteht darin, ob Sie die Eingabeaufforderung oder PowerShell bevorzugen.
Methode 1: Eingabeaufforderung (ipconfig /flushdns)
- Drücken Sie
Win + R, geben Siecmdein und drücken Sie dannCtrl + Shift + Enter, um die Eingabeaufforderung mit Administratorrechten zu starten. Alternativ können Sie im Startmenü nach Eingabeaufforderung suchen, mit der rechten Maustaste darauf klicken und Als Administrator ausführen auswählen. - Führen Sie den Flush-Befehl aus:
ipconfig /flushdns- Ein erfolgreicher Flush gibt folgendes zurück:
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.Wenn stattdessen ein Fehler angezeigt wird, stellen Sie sicher, dass Sie die Eingabeaufforderung mit erhöhten Rechten geöffnet haben. Standard-Benutzersitzungen haben keinen Schreibzugriff auf den Cache des DNS-Client-Dienstes.
Methode 2: Windows PowerShell
PowerShell stellt ein dediziertes Cmdlet bereit, das direkt mit dem DNS-Client-Dienst interagiert, anstatt über die veraltete ipconfig-Schnittstelle zu gehen.
- Drücken Sie
Win + Xund wählen Sie Windows PowerShell (Admin) oder Terminal (Admin) unter Windows 11. - Führen Sie aus:
Clear-DnsClientCacheBei Erfolg gibt es keine Bestätigungsausgabe – der Befehl kehrt lautlos zurück. Um zu überprüfen, ob der Cache leer ist, führen Sie unmittelbar danach Get-DnsClientCache aus; es sollten keine Ergebnisse zurückgegeben werden.
Methode 3: Neustart des DNS-Client-Dienstes
In seltenen Fällen, in denen die obigen Befehle fehlschlagen – typischerweise aufgrund eines beschädigten Zustands des DNS-Client-Dienstes – löscht ein Neustart des Dienstes selbst den Cache als Nebeneffekt:
Stop-Service -Name Dnscache -Force
Start-Service -Name DnscacheWichtiger Hinweis: Bei einigen Windows-Konfigurationen ist der DNS-Client-Dienst als Abhängigkeit für andere Netzwerkdienste festgelegt. Das Beenden kann die Netzwerkkonnektivität kurzzeitig unterbrechen. Führen Sie dies nicht auf einem Produktionsserver ohne ein Wartungsfenster aus.
Anzeigen des aktuellen DNS-Cache (Windows)
Vor dem Leeren ist es oft nützlich, den Cache zu überprüfen, um zu bestätigen, ob ein veralteter Eintrag tatsächlich die Ursache Ihres Problems ist:
Get-DnsClientCacheDies gibt alle zwischengespeicherten Einträge mit ihrem TTL, Eintragstyp und aufgelösten Daten aus – weitaus mehr diagnostischen Wert als blindes Leeren.
So leeren Sie den DNS-Cache unter macOS
macOS verwendet mDNSResponder als DNS-Dienst-Daemon auf allen modernen Versionen. Der Flush-Mechanismus ist seit macOS Sierra konsistent geblieben, ältere Versionen erforderten jedoch andere Befehle.
macOS Ventura, Monterey, Big Sur, Catalina, Mojave, High Sierra, Sierra (10.12 und später)
- Öffnen Sie das Terminal über
Applications > Utilities > Terminaloder drücken SieCmd + Spaceund geben SieTerminalein. - Führen Sie aus:
sudo killall -HUP mDNSResponder- Geben Sie Ihr Administratorpasswort ein, wenn Sie dazu aufgefordert werden. Das Passwortfeld zeigt keine Zeichen an – dies ist ein erwartetes Verhalten. Drücken Sie
Enterzur Bestätigung.
Es gibt keine Erfolgsmeldung. Das -HUP-Signal weist mDNSResponder an, seine Konfiguration neu zu laden und seinen Cache zu leeren, ohne einen vollständigen Neustart durchzuführen.
macOS El Capitan und Yosemite (10.11 / 10.10)
El Capitan verwendet denselben mDNSResponder-Befehl wie oben. Yosemite ersetzte mDNSResponder vorübergehend durch discoveryd und erforderte einen anderen Ansatz:
sudo discoveryutil udnsflushcachesmacOS Mavericks, Mountain Lion und Lion (10.9 und früher)
sudo killall -HUP mDNSResponderLeeren der zusätzlichen DNS-Cache-Ebenen unter macOS
macOS verwaltet mehr als einen DNS-Cache. Für ein gründliches Leeren – besonders relevant beim Debuggen von Split-DNS- oder mDNS-Problemen – führen Sie alle drei Befehle nacheinander aus:
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcachedscacheutil -flushcache löscht den Directory Services-Cache, der zusätzliche Namensauflösungsdaten speichert, die von Prozessen auf Systemebene verwendet werden. Das Weglassen kann verbleibende Einträge hinterlassen, die mDNSResponder allein nicht berührt.
So leeren Sie den DNS-Cache in Google Chrome
Chrome verwaltet seinen eigenen internen DNS-Cache, der vollständig unabhängig vom Resolver auf Betriebssystemebene funktioniert. Dies ist eine bewusste architektonische Entscheidung – Chromes Netzwerk-Stack (aufgebaut auf Chromiums net::-Bibliothek) löst Domains vorab auf, die es voraussichtlich besuchen wird, und speichert diese Ergebnisse prozessintern. Das bedeutet, dass Sie den DNS-Cache des Betriebssystems leeren können und Chrome trotzdem veraltete Einträge aus seinem eigenen Speicher liefert.
Schritt-für-Schritt: Leeren des DNS-Cache von Chrome
- Öffnen Sie Google Chrome.
- Navigieren Sie in der Adressleiste zu:
chrome://net-internals/#dns- Klicken Sie auf die Schaltfläche Host-Cache leeren. Dadurch werden sofort alle DNS-Einträge aus dem prozessinternen Cache von Chrome gelöscht.
Zurücksetzen der Socket-Pools von Chrome
DNS-Cache-Einträge und offene TCP/TLS-Verbindungen sind separate Angelegenheiten. Wenn Sie den DNS-Cache geleert haben, Chrome aber immer noch Datenverkehr über eine alte Verbindung leitet (z. B. nach einer Server-IP-Änderung), müssen Sie auch den Socket-Pool leeren:
- Navigieren Sie zu:
chrome://net-internals/#sockets- Klicken Sie auf Socket-Pools leeren.
Dadurch werden alle inaktiven und aktiven Keep-Alive-Verbindungen geschlossen, sodass Chrome gezwungen wird, neue TCP-Verbindungen mit den neu aufgelösten IP-Adressen aufzubauen.
Chrome nach dem Leeren neu starten
Schließen Sie alle Chrome-Fenster vollständig und öffnen Sie den Browser erneut. Stellen Sie unter macOS sicher, dass Chrome nicht noch im Hintergrund über das Dock läuft – klicken Sie mit der rechten Maustaste auf das Symbol und wählen Sie Beenden, anstatt nur das Fenster zu schließen.
DNS-Cache-Vergleich: Betriebssystemebene vs. Browserebene
| Eigenschaft | Betriebssystem-DNS-Cache | Chrome-DNS-Cache |
|---|---|---|
| — | — | — |
| Geltungsbereich | Alle Anwendungen systemweit | Nur Chrome-Browser |
| Flush-Befehl (Windows) | `ipconfig /flushdns` | `chrome://net-internals/#dns` |
| Flush-Befehl (macOS) | `sudo killall -HUP mDNSResponder` | `chrome://net-internals/#dns` |
| Respektiert OS-TTL-Einstellungen | Ja | Teilweise (verwendet eigene TTL-Logik) |
| Betroffen von VPN-DNS-Änderungen | Ja | Nicht sofort |
| Für Diagnosetools sichtbar | `Get-DnsClientCache`, `dscacheutil -cachedump` | Nur über Chrome-Interna |
| Beim Systemneustart geleert | Ja | Ja (prozessinterner Speicher) |
| Beim Browser-Neustart geleert | Nein | Ja |
Plattformspezifische Flush-Befehle auf einen Blick
| Plattform / Version | Befehl |
|---|---|
| — | — |
| Windows (alle Versionen) | `ipconfig /flushdns` |
| Windows PowerShell | `Clear-DnsClientCache` |
| macOS 10.12 und später | `sudo killall -HUP mDNSResponder` |
| macOS Yosemite (10.10) | `sudo discoveryutil udnsflushcaches` |
| macOS (vollständiger Flush) | `sudo killall -HUP mDNSResponder && sudo dscacheutil -flushcache` |
| Google Chrome (alle Betriebssysteme) | `chrome://net-internals/#dns` > Host-Cache leeren |
| Linux (systemd-resolved) | `sudo systemd-resolve –flush-caches` |
| Linux (nscd) | `sudo service nscd restart` |
Linux ist hier aufgeführt, weil Administratoren, die VPS Hosting-Umgebungen verwalten, häufig DNS-Caches sowohl auf ihrer lokalen Workstation als auch auf dem Remote-Server gleichzeitig leeren müssen, wenn DNS-Änderungen propagiert werden.
Häufige Fehler, die durch das Leeren des DNS-Cache behoben werden
ERR_NAME_NOT_RESOLVED– Chrome kann den Hostnamen nicht auflösen. Fast immer ein DNS-Problem; leeren Sie sowohl den Betriebssystem- als auch den Chrome-Cache.DNS_PROBE_FINISHED_NXDOMAIN– Der Resolver hat eine Antwort für eine nicht existierende Domain zurückgegeben. Kann ein veralteter negativer Cache-Eintrag sein.ERR_CONNECTION_TIMED_OUTnach einer Servermigration – Die alte IP ist noch zwischengespeichert. Leeren Sie den Betriebssystem-Cache und überprüfen Sie mitnslookupoderdig, ob die neue IP zurückgegeben wird.- TLS/SSL-Zertifikat-Fehler – Wenn die zwischengespeicherte IP auf einen anderen Server verweist als den, der das korrekte Zertifikat enthält, erhalten Sie einen Zertifikat-Namenskonflikt. Dies ist häufig der Fall, wenn eine Domain zwischen Hosting-Anbietern wechselt. Wenn Sie SSL-Infrastruktur verwalten, stellen Sie sicher, dass Ihre SSL-Zertifikate auf dem richtigen Ursprungsserver bereitgestellt sind, bevor der DNS-TTL abläuft.
- Intermittierende 404-Fehler nach einer CMS-Migration – Die Website lädt, aber Assets oder Seiten geben 404 zurück. Häufig verursacht durch das CDN oder den Reverse-Proxy, der noch auf den alten Ursprung auflöst. Leeren Sie Caches auf jeder Ebene.
DNS-Propagierung vs. lokaler Cache: Ein wichtiger Unterschied
Ein häufiges Missverständnis ist, dass das Leeren des lokalen DNS-Cache einen neu veröffentlichten DNS-Eintrag sofort sichtbar macht. Das ist nicht der Fall – wenn der vorgelagerte rekursive Resolver (der DNS-Server Ihres ISP oder ein öffentlicher Resolver wie 8.8.8.8) den alten Eintrag ebenfalls zwischengespeichert hat, erhalten Sie weiterhin die alte IP, bis der Cache dieses Resolvers abläuft.
Der korrekte Diagnose-Workflow ist:
- Überprüfen Sie den autoritativen Eintrag direkt mit
dig @8.8.8.8 example.com Aodernslookup example.com 1.1.1.1. - Wenn der autoritative Eintrag korrekt ist, Ihre lokale Auflösung aber falsch ist, leeren Sie den lokalen Betriebssystem-Cache.
- Wenn der autoritative Eintrag selbst noch falsch ist, liegt das Problem auf der Ebene des DNS-Registrars oder des Hosting-Kontrollpanels – nicht im lokalen Cache.
Bei der Verwaltung von DNS für Domains, die auf Dedizierten Servern gehostet werden, setzen Sie immer mindestens 24 Stunden vor einer geplanten Migration einen niedrigen TTL (300 Sekunden). Dies minimiert das Propagierungsfenster und reduziert die Auswirkungen veralteter Cache-Einträge im Internet.
Sicherheitsimplikationen des DNS-Cache-Managements
DNS-Cache-Poisoning (auch bekannt als DNS-Spoofing) ist eine Angriffskategorie, bei der ein Angreifer bösartige A- oder CNAME-Einträge in den Cache eines Resolvers einschleust und Benutzer auf betrügerische Server umleitet. Während DNSSEC kryptografische Validierung auf Protokollebene bietet, bleibt die lokale Cache-Hygiene eine praktische Erstmaßnahme.
Wenn Sie vermuten, dass Ihr DNS-Cache manipuliert wurde:
- Leeren Sie den lokalen Cache sofort mit dem entsprechenden Befehl für Ihr Betriebssystem.
- Wechseln Sie zu einem DNSSEC-validierenden Resolver wie Cloudflare (
1.1.1.1) oder Google (8.8.8.8). - Überprüfen Sie laufende Prozesse auf Malware, die möglicherweise die
hosts-Datei modifiziert (C:WindowsSystem32driversetchostsunter Windows,/etc/hostsauf Unix-Systemen). - Überprüfen Sie die DNS-Einstellungen Ihres Routers – Angreifer, die einen Router kompromittieren, können alle DNS-Abfragen im Netzwerk umleiten, unabhängig vom lokalen Cache-Zustand.
Für Unternehmen, die ihre eigene Mail-Infrastruktur betreiben, ist die DNS-Integrität besonders kritisch. Falsch konfigurierte oder manipulierte DNS-Einträge wirken sich direkt auf die SPF-, DKIM- und DMARC-Validierung aus. Wenn Sie auf E-Mail-Hosting-Dienste angewiesen sind, überprüfen Sie, ob MX-, SPF- und DKIM-Einträge nach einer DNS-Änderung korrekt aufgelöst werden.
Automatisierung von DNS-Cache-Leerungen
Für Entwickler und Systemadministratoren, die regelmäßig mit DNS-Änderungen arbeiten – insbesondere bei der Konfiguration von VPS-Kontrollpanels, Wechseln von Staging-Umgebungen oder Domain-Migrationen – entfernt die Automatisierung der Leerung den manuellen Schritt vollständig.
Geplante Windows-Aufgabe (PowerShell):
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-Command Clear-DnsClientCache"
$trigger = New-ScheduledTaskTrigger -Daily -At "03:00AM"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "FlushDNSCache" -RunLevel HighestmacOS launchd plist (tägliche Leerung um 3 Uhr morgens):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.local.flushdns</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>killall -HUP mDNSResponder</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>Speichern Sie diese Datei unter ~/Library/LaunchAgents/com.local.flushdns.plist und laden Sie sie mit launchctl load ~/Library/LaunchAgents/com.local.flushdns.plist.
Automatisierte Leerungen sind am nützlichsten in CI/CD-Pipelines, bei denen DNS-Einträge programmatisch als Teil eines Deployment-Workflows aktualisiert werden und Build-Agenten die neuen Einträge unmittelbar nach der Änderung auflösen müssen.
Technische Entscheidungsmatrix: Wann und wo geleert werden soll
| Symptom | Betriebssystem-Cache leeren | Chrome-Cache leeren | Router-Cache leeren | Vorgelagerten Resolver prüfen |
|---|---|---|---|---|
| — | — | — | — | — |
| Website lädt in Firefox, aber nicht in Chrome | Nein | Ja | Nein | Nein |
| Website in allen Browsern nicht erreichbar | Ja | Ja | Nein | Ja |
| Website auf allen Geräten im Netzwerk nicht erreichbar | Ja | Ja | Ja | Ja |
| Korrekte IP von `nslookup` angezeigt, aber Website schlägt fehl | Nein | Ja (Sockets) | Nein | Nein |
| Website lädt für Kollegen, aber nicht für Sie | Ja | Ja | Nein | Ja |
| Servermigration gerade abgeschlossen | Ja | Ja | Nein | Ja |
| Verdacht auf DNS-Poisoning | Ja | Ja | Ja | Ja |
Praktische Checkliste vor und nach dem Leeren
- Bestätigen Sie, dass die DNS-Änderung zu den autoritativen Servern propagiert wurde, indem Sie
digoder ein Online-Tool wiewhatsmydns.netverwenden, bevor Sie lokal leeren. - Beachten Sie den aktuellen TTL des Eintrags, den Sie debuggen – wenn er 86400 Sekunden (24 Stunden) beträgt, hilft das lokale Leeren nur Ihnen; andere Benutzer sehen den alten Eintrag noch bis zu 24 Stunden lang.
- Führen Sie unter Windows
ipconfig /displaydnsvor dem Leeren aus, um einen Snapshot des aktuellen Cache-Zustands für Diagnosezwecke zu erfassen. - Verwenden Sie nach dem Leeren
nslookup example.comoderping example.com, um zu bestätigen, dass die neue IP zurückgegeben wird, bevor Sie den Browser öffnen. - Wenn Sie in einer Shared Web Hosting-Umgebung arbeiten, denken Sie daran, dass die Nameserver des Hosting-Anbieters ebenfalls Einträge zwischenspeichern – wenden Sie sich an den Support, wenn die Propagierung auf Serverebene feststeckt.
- Leeren Sie für Chrome nach dem Leeren des DNS-Cache auch den Socket-Pool und führen Sie einen Hard-Reload durch (
Ctrl + Shift + Runter Windows/Linux,Cmd + Shift + Runter macOS), um auch den HTTP-Cache des Browsers zu umgehen. - Dokumentieren Sie die Leerung in einem Änderungsprotokoll, wenn sie in einer Produktionsumgebung durchgeführt wird – DNS-Änderungen und Cache-Leerungen werden häufig übersehen, wenn Tage später Post-Deployment-Probleme diagnostiziert werden.
FAQ
Beeinflusst das Leeren des DNS-Cache die Surfgeschwindigkeit?
Vorübergehend ja. Nach einer Leerung muss Ihr System für jeden Hostnamen, den es kontaktiert, neue DNS-Abfragen durchführen, was einen kleinen Latenz-Overhead (typischerweise 20–100 ms pro Abfrage) hinzufügt, bis der Cache wieder aufgefüllt ist. Für die meisten Benutzer ist dies kaum wahrnehmbar. Der Cache wird automatisch innerhalb von Minuten normalem Surfens wieder aufgebaut.
Werde ich durch das Leeren des DNS-Cache von Websites abgemeldet?
Nein. DNS-Cache-Einträge sind vollständig von Browser-Cookies, Sitzungstoken und Authentifizierungsstatus getrennt. Das Leeren des DNS berührt nichts davon.
Wie unterscheidet sich ipconfig /flushdns von Clear-DnsClientCache?
Beide Befehle weisen den Windows-DNS-Client-Dienst an, seinen Cache zu leeren. ipconfig /flushdns ist eine veraltete Schnittstelle, die über das ipconfig-Dienstprogramm mit dem Dienst kommuniziert; Clear-DnsClientCache ist ein natives PowerShell-Cmdlet, das die WMI/CIM-Schnittstelle direkt verwendet. Das Endergebnis ist identisch, aber Clear-DnsClientCache ist skriptfähig und gibt strukturierte Objekte zurück, was es in Automatisierungskontexten vorzuziehen macht.
Warum zeigt Chrome noch die alte Website an, nachdem ich den Betriebssystem-DNS-Cache geleert habe?
Chrome verwaltet seinen eigenen prozessinternen DNS-Cache, der nicht von Leerungen auf Betriebssystemebene betroffen ist. Sie müssen den Cache von Chrome separat über chrome://net-internals/#dns leeren. Wenn die alte TCP-Verbindung außerdem noch im Socket-Pool von Chrome aktiv ist, müssen Sie auch die Socket-Pools über chrome://net-internals/#sockets leeren.
Wie oft sollte ich meinen DNS-Cache leeren?
Es gibt keinen universellen Zeitplan. Leeren Sie ihn reaktiv – wenn Sie DNS-bezogene Fehler feststellen, nach einer Server- oder Domain-Migration, nach einem vermuteten Sicherheitsvorfall oder beim Wechsel zwischen VPN- und Nicht-VPN-Netzwerkkonfigurationen. Routinemäßige geplante Leerungen sind nur in Entwicklungs- oder Staging-Umgebungen gerechtfertigt, in denen sich DNS-Einträge häufig ändern.
