Zum Hauptinhalt springen

Anleitungen / Beheben: Anleitungen zu den Fehlern, die wirklich vorkommen

So leeren Sie den DNS-Cache unter Windows, macOS und Linux

Um DNS zu leeren, führen Sie ipconfig /flushdns unter Windows, sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder unter macOS oder resolvectl flush-caches unter Linux mit systemd-resolved aus. Der genaue Befehl hängt von Ihrem Betriebssystem ab und, unter Linux, davon, welchen Resolver es einsetzt.

Was der DNS-Cache ist und warum Leeren hilft

Jedes Mal, wenn ein Gerät einen Hostnamen in eine IP-Adresse auflöst, speichert es die Antwort eine Weile, statt bei der nächsten Anfrage erneut zu fragen. Diese gespeicherte Antwort liegt im DNS-Cache des Betriebssystems, getrennt von dem DNS-Cache, den Ihr Browser obendrauf führt. Caching macht Browsen schnell: ohne es würde jede Anfrage nach jeder Ressource einer Seite eine frische Abfrage auslösen.

Der Cache wird zum Problem, sobald sich ein Eintrag ändert. Ist eine Website auf eine neue IP-Adresse umgezogen, hat den Hosting-Anbieter gewechselt oder einen CNAME aktualisiert, kann Ihre Maschine weiter mit dem alten Wert antworten, bis der zwischengespeicherte Eintrag abläuft. Resolver cachen auch negative Antworten, also „dieser Name existiert nicht", für einen Zeitraum, den der SOA-Eintrag der Domain festlegt, sodass ein Name, der gerade erst funktioniert hat, lokal trotzdem noch mehrere Minuten fehlschlagen kann. Das Leeren des Caches erzwingt, dass die nächste Abfrage frisch hinausgeht, statt das Gespeicherte weiterzuverwenden.

So leeren Sie DNS unter Windows

  1. Öffnen Sie die Eingabeaufforderung. Microsofts eigene Schritte zur Fehlerbehebung nutzen eine erhöhte Eingabeaufforderung (Rechtsklick, Als Administrator ausführen) für DNS-Befehle, starten Sie also dort, wenn die normale Version sich seltsam verhält.
  2. Führen Sie ipconfig /flushdns aus. Laut der Dokumentation von Microsoft Learn zu diesem Befehl „leert und setzt den Inhalt des DNS-Client-Resolver-Caches zurück" und verwirft dabei sowohl negative Einträge als auch alles dynamisch Zwischengespeicherte.
  3. Bestätigen Sie es mit ipconfig /displaydns, das alles auflistet, was aktuell im Resolver-Cache steht. Direkt nach einem Leeren sollte das eine fast leere Liste liefern; besuchen Sie ein paar Websites und führen Sie es erneut aus, um zu sehen, wie sich frische Einträge wieder ansammeln.

Taucht eine veraltete Adresse immer wieder auf, sind vielleicht die per DHCP zugewiesenen DNS-Server selbst mit dem Lease zwischengespeichert. Den Adapter freizugeben und neu anzufordern erfasst beides:

ipconfig /release
ipconfig /renew

So leeren Sie DNS unter macOS

Der Befehl hängt davon ab, wie alt die macOS-Version der Maschine ist, und der falsche Befehl für einen modernen Mac tut bei Ausführung still gar nichts.

  • Yosemite 10.10.4 und jede Version seither (das deckt alle aktuell unterstützten macOS-Versionen ab, einschließlich Sequoia, Sonoma, Ventura, Monterey und Big Sur): sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. Der erste Befehl leert den Directory-Service-Cache; der zweite schickt mDNSResponder ein HUP-Signal, sodass es neu startet und alles Gehaltene fallen lässt.
  • Nur Yosemite 10.10 bis 10.10.3 nutzte ein anderes Werkzeug: sudo discoveryutil mdnsflushcache.
  • Mavericks, Mountain Lion und Lion: sudo killall -HUP mDNSResponder allein reichte aus.
  • Snow Leopard (10.6 bis 10.6.8): sudo dscacheutil -flushcache allein, ohne killall-Schritt.

Solange Sie nicht auf einem Mac arbeiten, der älter als das Yosemite-Update von 2014 ist, nutzen Sie den ersten Befehl. Beide Teile verlangen Ihr Kontopasswort, und der Befehl erzeugt bei Erfolg keine Ausgabe.

So leeren Sie DNS unter Linux

Linux hat keinen einzelnen DNS-Cache zum Leeren, weil Distributionen unterschiedliche Resolver-Stacks ausliefern. Prüfen Sie, welcher aktiv ist, bevor Sie einen Befehl wählen.

Führen Sie zuerst resolvectl status aus. Liefert es DNS-Einstellungen pro Schnittstelle, läuft auf der Maschine systemd-resolved, die Vorgabe bei aktuellem Ubuntu, Fedora und den meisten anderen modernen Distributionen. Wird der Befehl nicht gefunden, prüfen Sie stattdessen auf die beiden anderen gängigen Dienste: systemctl status nscd oder systemctl status dnsmasq (oder, falls systemd nicht genutzt wird, suchen Sie den Prozess mit ps aux | grep -E 'nscd|dnsmasq').

  • systemd-resolved (systemd 239 und neuer): resolvectl flush-caches. Das systemd-Handbuch beschreibt es als das Leeren „aller vom Dienst lokal gehaltenen DNS-Resource-Record-Caches". Sie können prüfen, ob es funktioniert hat, mit resolvectl statistics, das die aktuelle Cache-Größe meldet.
  • systemd-resolved auf älterem systemd (vor der Umbenennung in Version 239): sudo systemd-resolve --flush-caches. Manche aktuellen Distributionen behalten dies auch nach Einführung von resolvectl als Kompatibilitäts-Alias, ein Versuch lohnt sich also, wenn resolvectl fehlt, systemd-resolve aber nicht.
  • nscd: sudo systemctl restart nscd startet den gesamten Dienst neu und leert damit seinen Cache. Um nur den Hosts-Cache ohne Neustart zu invalidieren, funktioniert sudo nscd -i hosts auf Distributionen, die diese Option mitbringen.
  • dnsmasq: Ihm ein HUP-Signal zu senden, leert den Cache, ohne den Dienst zu stoppen, laut eigener Man-Page: sudo killall -HUP dnsmasq. Ein einfaches sudo systemctl restart dnsmasq funktioniert ebenfalls und lädt zusätzlich seine Konfiguration neu.

So leeren Sie den eigenen DNS-Cache des Browsers

Chrome führt einen eigenen DNS-Cache, getrennt vom Betriebssystem, sodass das Leeren des Betriebssystem-Caches allein oft nicht ausreicht, um eine Änderung wirksam werden zu sehen. Öffnen Sie chrome://net-internals/#dns und klicken Sie auf Clear host cache. Chromium-basierte Browser (Edge, Brave, Opera und andere) bieten dieselbe Seite unter derselben Adresse.

Das ist womöglich noch nicht die ganze Lösung. Chrome hält außerdem einen Pool bereits geöffneter Verbindungen zur alten IP-Adresse und kann eine davon wiederverwenden, statt eine neue Verbindung aufzubauen, selbst nachdem der DNS-Cache leer ist. Öffnen Sie chrome://net-internals/#sockets und nutzen Sie Flush socket pools, um auch diese zu schließen. Lädt eine Website nach beiden Schritten weiterhin die alte Version, probieren Sie ein privates Fenster, da es ganz ohne zwischengespeicherte Verbindungen startet.

Warum die alte Adresse nach dem Leeren weiter erscheint

Haben Sie jeden Cache auf der Maschine geleert und der Browser zeigt weiter den alten Server, liegt die Verzögerung meist nicht mehr lokal. Ein Heimrouter betreibt für gewöhnlich seinen eigenen kleinen DNS-Cache für jedes Gerät im Netzwerk, und ihn neu zu starten leert diese Schicht. Über den Router hinaus hält auch der Resolver Ihres Internetanbieters seinen eigenen Cache, und Sie haben keine direkte Möglichkeit, den zu leeren; er leert sich selbst, sobald die TTL seines zwischengespeicherten Eintrags abläuft.

Die TTL, der Time-to-live-Wert eines DNS-Eintrags, ist die eigentliche Grenze dafür, wie schnell sich eine Änderung verbreiten kann. Jeder Resolver zwischen Ihnen und dem autoritativen Nameserver darf eine Antwort genau so viele Sekunden lang halten, bevor er erneut fragen muss. Ein Eintrag mit einer TTL von einer Stunde kann manchen Besuchern legitim fast eine Stunde nach der Änderung noch die alte Adresse liefern, egal was Sie auf Ihrer eigenen Maschine leeren. Siehe wie DNS-Propagation funktioniert für das, was diesen Zeitrahmen bestimmt und wie Sie prüfen, ob ein Eintrag sich überall aktualisiert hat.

Häufig gestellte Fragen

Muss ich meinen Computer nach dem Leeren von DNS neu starten?

Nein. Jeder Befehl oben wirkt sofort und leert nur den Cache im Arbeitsspeicher; ein Neustart ist bei Windows, macOS oder Linux kein Teil des Vorgangs.

Warum hat das Leeren von DNS das Problem nicht behoben?

Drei Dinge halten üblicherweise noch die alte Antwort fest: der eigene Cache des Browsers (leeren Sie ihn separat unter chrome://net-internals/#dns), der Router, der Ihr Netzwerk bedient, oder die TTL des Eintrags, die einfach noch nicht anderswo im Internet abgelaufen ist. Schlägt eine Abfrage komplett fehl oder läuft in ein Timeout, statt eine veraltete Antwort zu liefern, deutet das eher auf einen DNS-Server, der nicht antwortet, als auf ein Caching-Problem.

Wie leere ich DNS auf meinem Handy?

Weder iOS noch Android bietet einen manuellen DNS-Leeren-Befehl. Flugmodus ein- und wieder auszuschalten, oder von WLAN auf Mobilfunkdaten und zurück zu wechseln, zwingt das Gerät, seinen zwischengespeicherten DNS-Zustand fallen zu lassen und bei der nächsten Anfrage neu aufzulösen.

Behebt das Leeren von DNS langsame Seitenladezeiten?

Selten von allein. Ein beschädigter oder überfüllter lokaler Cache kann eine kleine Verzögerung hinzufügen, aber durchgängig langsame Abfragen liegen häufiger am Resolver selbst. Siehe warum DNS-Abfragen langsam sind für die wahrscheinlicheren Ursachen und wie Sie sie testen.

Was ist der Unterschied zwischen DNS leeren und Browser-Cache leeren?

Der Browser-Cache speichert Seiteninhalt: HTML, CSS, Bilder und Skripte. Der DNS-Cache speichert nur die Zuordnung von Hostname zu IP, die genutzt wird, um den Server überhaupt erst zu finden. Das eine zu leeren, leert das andere nicht, und eine veraltete Seite kann durch beides verursacht sein.

Wie bestätige ich, dass das Leeren funktioniert hat?

Führen Sie unter Windows direkt nach dem Leeren ipconfig /displaydns aus; es sollte fast leer zurückkommen. Unter Linux mit systemd-resolved meldet resolvectl statistics die aktuelle Cache-Größe. macOS hat keinen entsprechenden Inspektionsbefehl, die praktische Prüfung ist also, die Domain erneut mit dig example.com nachzuschlagen oder eine Prüfung von außerhalb des eigenen Netzwerks mit einem Werkzeug wie einer DNS-Abfrage auszuführen, die von mehreren Standorten gleichzeitig abfragt, was auch klärt, ob die veraltete Antwort lokal bei Ihnen liegt oder von den eigenen Nameservern der Domain kommt.

Jetzt prüfen

Führen Sie die kostenlose Prüfung für Ihre eigene Website aus - ganz ohne Konto.

Dns query

Dauerhaft überwachen

Werden Sie benachrichtigt, sobald etwas ausfällt: HostTracker prüft von über 300 Standorten aus und benachrichtigt Sie per E-Mail, SMS, Slack, Telegram und mehr.

HostTracker Funktionen

Mehr in diesem Bereich: Beheben: Anleitungen zu den Fehlern, die wirklich vorkommen