Immer wenn wir versuchen, auf eine Website zuzugreifen, wird eine DNS-Namensauflösungsabfrage ausgeführt, um ihre IP-Adresse aufzulösen. Die Betriebssysteme cachen diese Daten, um zu vermeiden, dass jedes Mal Nameserver kontaktiert werden.
Warum DNS-Cache löschen?
Manchmal wird die IP-Adresse einer Website geändert, wenn sie auf einen anderen Server verschoben wird. Wenn wir in diesem Fall auf die zwischengespeicherte IP-Adresse zugreifen, funktioniert die Website nicht.
DNS-Einträgen ist der Wert „Time To Live (TTL)“ zugeordnet, der dem Namensauflösungsdienst des Betriebssystems mitteilt, wann der DNS-Cache ungültig gemacht werden soll.
Wenn Sie jedoch die neue IP-Adresse erreichen möchten, bevor TTL abläuft, besteht die einzige Lösung darin, den DNS-Cache zu leeren.
Ubuntu-Dienst für DNS-Namensauflösung
Der systemd-resolved.service
wird verwendet, um die DNS-Abfragen auszuführen und den DNS-Cache zu verwalten.
Wir können den folgenden Befehl verwenden, um seinen Status zu überprüfen.
# sudo systemctl status systemd-resolved
Wir können den folgenden Befehl ausführen, um die DNS-Cache-Statistiken zu überprüfen.
# sudo systemd-resolve --statistics
Es gibt einen kleinen Unterschied im Dienst- und Befehlsnamen. Der Befehlsname hat nicht das letzte Zeichen „d“.
Wie lösche ich den DNS-Cache auf Ubuntu?
Wir können den folgenden Befehl ausführen, um den DNS-Cache auf Ubuntu zu löschen.
# sudo systemd-resolve --flush-caches
Überprüfen Sie dann erneut die Statistiken, um zu bestätigen, dass die „Aktuelle Cache-Größe“ 0 ist.
Neustart des vom System aufgelösten Dienstes, um alle DNS-Cache-Statistiken zu löschen
Der DNS-Flush-Befehl löscht die Cache-Hit- und Miss-Statistiken nicht. Wenn Sie alle Cache-Statistiken löschen möchten, müssen Sie den systemd-aufgelösten Dienst neu starten.
# sudo systemctl restart systemd-resolved
Schlussfolgerung
Es ist sehr einfach, den Cache unter Ubuntu zu leeren. Der Befehl zum Leeren des DNS kann vom Root-Benutzer oder einem Benutzer mit sudo-Berechtigungen ausgeführt werden.