DNS-Cache in Ubuntu leeren
Linux
2024-02-03T13:00:14Z
Schnelle Links
Wichtigste Erkenntnisse
- Das Flushen des DNS-Caches unter Ubuntu mit "resolvectl flush-caches" kann bei der Behebung von Verbindungsproblemen helfen und die Netzwerkleistung verbessern.
- DNS-Caching reduziert die Zeit, die für die Beantwortung von DNS-Anfragen benötigt wird, aber veraltete oder beschädigte Einträge können Probleme verursachen.
- Denken Sie daran, auch den DNS-Cache in Ihren Internet-Browsern zu löschen, um sicherzustellen, dass alle zwischengespeicherten Daten für die Fehlerbehebung gelöscht werden.
Der Dienst zur Auflösung von Domänennamen ist in Ubuntu standardmäßig aktiviert. Das ist auch gut so, denn er leistet einen nützlichen Dienst. Aber es lohnt sich, die Puffer regelmäßig zu leeren, vor allem, wenn die Verbindung unzuverlässig ist.
Was ist DNS-Caching?
Der DNS-Dienst ( Domain Name System ) frisst Namen und spuckt Zahlen aus. Er ist der Dienst, der es uns ermöglicht, über Netzwerknamen oder Internet-Domänennamen zu sprechen, anstatt eine Menge IP-Adressen zu lernen. Der DNS-Dienst übersetzt Internet-Domänennamen in IP-Adressen, damit unsere Verbindungsanfragen und der Netzwerkverkehr an den richtigen Server geleitet werden können. Das Zuordnen von Namen zu IP-Adressen wird als Auflösen bezeichnet.
Internet-DNS-Abfragen werden kaskadenartig über eine Hierarchie von Servern abgewickelt, die als Vorläufer-DNS-Server, Root-Name-Server, Top-Level-Domain-Server und autoritative Name-Server bezeichnet werden. Die Suchvorgänge sind sehr schnell, aber nicht sofort.
Um die Zeit zu verkürzen, die benötigt wird, um eine Antwort auf eine DNS-Anfrage zu geben, speichern die Vorläufer-DNS-Server ihre letzten Anfragen und Antworten im Cache. Wenn jemand vor kurzem dieselbe DNS-Anfrage gestellt hat, kann der Server diesen Wert an Ihren Computer zurückgeben, ohne einen der anderen Server einschalten zu müssen.
Ihr Router zu Hause speichert wahrscheinlich die Namen und IP-Adressen von Geräten im lokalen Netzwerk und möglicherweise auch die Antworten von externen DNS-Servern im Cache.
Wenn die Antwort auf eine DNS-Anfrage im Cache des Vorläuferservers gefunden wird, müssen keine weiteren Server kontaktiert werden. Die Antwort wird aus dem Cache zurückgesendet. Ähnlich verhält es sich, wenn Sie versuchen, über den Gerätenamen eine Verbindung zu einem lokalen Netzwerkgerät herzustellen, und Ihr Router die IP-Adresse bereitstellt.
Die Verwendung von Daten aus dem Zwischenspeicher ist zwar schneller als eine vollständige DNS-Abfrage, setzt aber voraus, dass die gespeicherten Werte noch gültig sind. Wenn sich die IP-Adresse der Website oder des lokalen Netzwerkgeräts geändert hat, kann Ihr Computer nicht mehr mit ihr kommunizieren.
Ubuntu fügt der Mischung seinen eigenen Cache hinzu. Standardmäßig ist der Dienst systemd-resolved aktiviert. Damit werden DNS-Anfragen und -Antworten zwischengespeichert. Wenn ein einzelner Cache-Eintrag (oder der gesamte Cache) beschädigt wird, kann es zu Verbindungsproblemen mit entfernten Servern, Webressourcen und lokalen Geräten kommen.
Was bewirkt das Leeren des DNS-Caches?
Wenn Sie den DNS-Cache leeren, wird Ihr Computer angewiesen, alle gespeicherten Namens- und IP-Adresspaare, die er gesammelt hat, zu vergessen. Das bedeutet, dass Ihr Computer bei jeder Verbindungsanfrage, die eine Auflösung von einem Namen zu einer IP-Adresse erfordert, eine externe Quelle wie Ihren lokalen Router oder einen externen DNS-Dienst abfragen muss. Die Antwort wird im Cache gespeichert.
Im Laufe der Zeit wird Ihr DNS-Cache mit neuen Einträgen aufgefüllt, von denen einige wahrscheinlich aktualisierte Versionen älterer, veralteter Cache-Einträge sind. Das ist ein einfacher und sicherer Vorgang. Wenn Sie jemals Netzwerk- oder Internetprobleme haben, ist das Leeren des DNS-Caches ein guter erster Schritt zur Fehlerbehebung.
Leeren des DNS-Caches unter Ubuntu
Unter Ubuntu ist der DNS-Dienst standardmäßig aktiviert. Wenn es Ihr Computer ist und Sie wissen, dass Sie den aufgelösten Daemon nicht abgeschaltet haben, dann ist DNS eingeschaltet. Das lässt sich leicht überprüfen, was praktisch ist, wenn Sie an einem fremden Computer arbeiten müssen und dieser Ihnen nicht sagen kann, ob DNS ein- oder ausgeschaltet ist.
Der zu verwendende Befehl ist ganz einfach. Wir verwenden den Befehl systemctl, weil wir einen Teil der systemd-Sammlung von Dienstprogrammen überprüfen müssen, nämlich systemd-resolved. Dies ist der systemd-Daemon zur Namensauflösung.
systemctl ist-aktiv systemd-aufgelöst
Die Antwort wird entweder "aktiv" oder "inaktiv" sein
Um zu überprüfen, ob das Flushen der Puffer tatsächlich etwas bewirkt, können wir einen Blick auf die Anzahl der Einträge im Cache werfen. Wir überprüfen dies erneut, nachdem wir die Puffer geleert haben. Diesmal verwenden wir den resolvectl-Befehl, um systemd-resolved direkt zu manipulieren.
resolvectl-Statistiken
Da es sich um eine Neuinstallation von Ubuntu handelt, sind relativ wenige Einträge im Cache vorhanden. Wenn wir die DNS-Puffer leeren, erwarten wir, dass diese Zahl auf Null sinkt.
resolvectl flush-caches
Wir kehren unbemerkt zur Befehlszeile zurück. Keine Ausgabe bedeutet, dass alles gut gelaufen ist. Schauen wir mal, wie groß unser Cache jetzt ist.
resolvectl Statistik
Unsere Cache-Größe ist Null, genau wie wir es vorhergesagt haben.
Vergessen Sie nicht den Cache Ihres Browsers
Ihre Internetbrowser haben ihre eigenen Caches. Wenn Sie Ihre DNS-Puffer leeren, um ein Problem zu beheben, sollten Sie dies auch für Ihre Browser tun.
Leeren des DNS-Caches in Firefox
Öffnen Sie eine neue Registerkarte in Firefox, geben Sie diesen Text in die URL-Adressleiste ein und drücken Sie die Eingabetaste:
about:networking
Klicken Sie in der Seitenleiste auf den Eintrag "DNS".
Firefox zeigt Ihnen die letzten Einträge an, die dem DNS-Cache hinzugefügt wurden. Um den Cache zu löschen, klicken Sie auf die Schaltfläche "DNS-Cache löschen". Ich musste die Seite aktualisieren, um die Änderung zu sehen, aber der Cache wurde definitiv geleert.
Leeren des DNS-Caches in Google Chrome
Um den gleichen Vorgang in Google Chrome auszuführen, geben Sie Folgendes in die URL-Adressleiste ein und drücken Sie die Eingabetaste:
chrome://net-internals/#dns
Klicken Sie auf die Schaltfläche "Host-Cache löschen". Es gibt keine sichtbare Rückmeldung, die Sie darüber informiert, dass tatsächlich etwas passiert ist, aber hinter den Kulissen ist es passiert. Der DNS-Cache von Google Chrome wurde geleert.
Denken Sie daran, Ihren DNS-Cache zu leeren
Beschädigte oder falsche DNS-Einträge können die Ursache für viele unerwünschte Verhaltensweisen im Netzwerk sein. Wenn Sie versuchen, das Problem einzugrenzen, können Sie die DNS-Puffer leeren, um sie von der Liste der möglichen Ursachen zu entfernen.
Das ist einfach zu bewerkstelligen, also ist es sinnvoll, dies als ersten Schritt zu tun. Und mit etwas Glück ist Ihr Problem dann gelöst.