GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So leeren Sie den DNS-Cache unter Linux

DNS, kurz für Domain Name System Protokoll, wird auf Linux-Systemen verwendet, um mit Namen verknüpfte IP-Adressen abzurufen.

Wenn Sie beispielsweise eine Ping-Anfrage ausführen, ist es sehr wahrscheinlich, dass Sie das DNS-Protokoll verwenden um die Server-IP abzurufen.

In den meisten Fällen sind die DNS-Anfragen die Sie ausführen, werden in einem lokalen Cache Ihres Betriebssystems gespeichert.

In einigen Fällen möchten Sie jedoch möglicherweise den DNS-Cache Ihres Servers leeren .

Möglicherweise haben Sie die IP-Adresse eines Servers in Ihrem Netzwerk geändert und möchten, dass die Änderungen sofort übernommen werden.

In diesem Tutorial erfahren Sie, wie Sie den DNS-Cache unter Linux ganz einfach leeren können , egal ob Sie systemd oder dnsmasq verwenden.

Voraussetzungen

Um Ihren DNS-Cache leeren zu können, müssen Sie wissen, wie die DNS-Auflösung auf Ihrem Linux-System funktioniert .

Abhängig von Ihrer Distribution werden Sie möglicherweise mit verschiedenen Linux-Diensten konfrontiert, die als DNS-Resolver fungieren .

Bevor Sie beginnen, ist es sehr wichtig, dass Sie wissen, wie die DNS-Auflösung tatsächlich auf Ihrem Betriebssystem ablaufen wird.

Wenn Sie diesen Artikel lesen, möchten Sie den Cache Ihres lokalen DNS-Resolvers leeren . Aber wie Sie sehen können, gibt es viele verschiedene Caches von Ihrer lokalen Anwendung bis zu den eigentlichen Internet-DNS-Servern.

In diesem Tutorial konzentrieren wir uns auf das gelbe Kästchen, das den lokalen Stub-Resolver bezeichnet, der auf jedem Linux-System implementiert ist.

Ihren lokalen DNS-Resolver finden

Auf den meisten Linux-Systemen ist der DNS-Resolver entweder „systemd-resolved“ oder dnsmasq. Um zu wissen, ob Sie es mit dem einen oder anderen zu tun haben, können Sie den folgenden Befehl ausführen

$ sudo lsof -i :53 -S

Hinweis :Warum führen wir diesen Befehl aus? Da DNS auf Port 53 läuft, suchen wir nach den Befehlen, die mit dem Dienst verbunden sind, der auf Port 53 läuft, was Ihr lokaler DNS-Resolver oder „Stub“ ist.

Wie Sie sehen können, ist bei einer aktuellen Ubuntu 20.04-Distribution der Dienst, der Port 53 überwacht, systemd-aufgelöst. Wenn Sie diesen Befehl jedoch unter Ubuntu 14.04 ausführen, erhalten Sie eine andere Ausgabe.

In diesem Fall sind die in dnsmasq und Befehlen verwendeten lokalen DNS offensichtlich unterschiedlich.

Wenn Sie diese Informationen kennen, können Sie zu dem Kapitel gehen, das Sie interessiert. Wenn Sie eine andere Ausgabe auf Ihrem Server haben sollten, hinterlassen Sie bitte einen Kommentar, damit wir diesen Artikel aktualisieren können.

DNS mit systemd-resolved leeren

Der einfachste Weg, den DNS unter Linux zu leeren, wenn Sie systemd-resolved verwenden, ist die Verwendung des Befehls „systemd-resolve“, gefolgt von „–flush-caches“.

Alternativ können Sie den Befehl „resolvectl“ gefolgt von der Option „flush-caches“ verwenden.

$ sudo systemd-resolve --flush-caches

$ sudo resolvectl flush-caches

Um zu überprüfen, ob Ihr Linux-DNS-Cache tatsächlich geleert wurde, können Sie die „–Statistiken verwenden “-Option, die die „Aktuelle Cache-Größe“ im Abschnitt „Cache“ hervorhebt.

$ sudo systemd-resolve --statistics

Herzlichen Glückwunsch, Sie haben Ihren DNS-Cache unter Linux erfolgreich geleert!

DNS-Cache mithilfe von Signalen leeren

Eine andere Möglichkeit, den DNS-Cache zu leeren, kann erreicht werden, indem ein „USR2“-Signal an den „systemd-resolved“-Dienst gesendet wird, der ihn anweist, seinen DNS-Cache zu leeren.

$ sudo killall -USR2 systemd-resolved

Um zu überprüfen, ob der DNS-Cache tatsächlich geleert wurde, können Sie eine „USR1 ”-Signal an den systemd-aufgelösten Dienst. Auf diese Weise wird es seinen aktuellen Status in das systemd-Journal schreiben.

$ sudo killall -USR1 systemd-resolved

$ sudo journalctl -r -u systemd-resolved

Großartig, Ihr DNS-Cache wurde mithilfe von Signalen korrekt geleert!

DNS mit dnsmasq leeren

Der einfachste Weg, Ihren DNS-Resolver zu leeren, wenn Sie dnsmasq verwenden, besteht darin, mit dem Befehl „killall“ ein „SIGHUP“-Signal an den „dnsmasq“-Prozess zu senden.

$ sudo killall -HUP dnsmasq

Ähnlich wie bei systemd-resolved können Sie eine „USR1 “ an den Prozess, damit dieser seine Statistiken in die Protokolldatei „syslog“ druckt. Mit einem einfachen „Tail“-Befehl können wir überprüfen, ob der DNS-Cache tatsächlich geleert wurde.

Was wäre nun, wenn Sie dnsmasq als Dienst ausführen würden?

Dnsmasq führt einen Dienst aus

In einigen Fällen können Sie „dnsmasq“ als Dienst auf Ihrem Server ausführen. Um zu überprüfen, ob dies der Fall ist, können Sie den Befehl „systemctl“ oder den Befehl „service“ ausführen, wenn Sie sich auf einem SysVinit-System befinden.

$ sudo systemctl is-active dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Wenn Sie feststellen, dass dnsmasq als Dienst ausgeführt wird, können Sie ihn mit dem üblichen „systemctl“ neu starten “ oder „Dienst ” Befehle.

$ sudo systemctl restart dnsmasq

# On SysVinit systems
$ sudo service dnsmasq restart

Stellen Sie nach dem Ausführen dieser Befehle immer sicher, dass Ihre Dienste korrekt neu gestartet wurden.

$ sudo systemctl status dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie Ihren DNS-Cache unter Linux schnell und einfach leeren können.

Mithilfe dieses Artikels können Sie den Cache für lokale Resolver von systemd und dnsmasq ganz einfach löschen. Sie sollten jedoch wissen, dass es einen anderen gemeinsamen DNS namens bind gibt , die in diesem Artikel absichtlich weggelassen wird.

Ein weiterer Artikel über das Einrichten eines lokalen DNS-Cache-Servers mit BIND sollte in naher Zukunft erscheinen.

Wenn Sie sich für DNS-Abfragen und deren Durchführung interessieren, können Sie diesen sehr nützlichen Artikel von „zwischenzugs“ mit dem Namen verwenden Anatomie einer DNS-Abfrage . Der Artikel ist besonders nützlich, wenn Sie DNS-Abfragen debuggen möchten und sich fragen, wie sie ausgeführt werden.

Auch wenn Sie an Linux-Systemadministration interessiert sind , wir haben einen vollständigen Abschnitt darüber auf der Website, also schau ihn dir unbedingt an.


Linux
  1. So löschen Sie den Speichercache in Linux

  2. So leeren Sie den DNS-Cache in Ubuntu und LinuxMint

  3. Linux – Wie überschreibe ich einen VM-Dns-Server?

  4. Wie leert man den CPU-Cache für eine Region des Adressraums in Linux?

  5. So leeren Sie den DNS-Resolver-Cache unter Linux (und FreeBSD)

So leeren Sie den DNS-Cache unter Ubuntu 20.04

So leeren Sie den DNS-Cache unter Ubuntu

So löschen Sie den DNS-Cache unter Ubuntu

Wie lösche ich den DNS-Cache unter Linux?

So leeren Sie den DNS-Cache unter Ubuntu

So installieren und konfigurieren Sie den DNS-Server unter Linux