Flush DNS unter Linux: systemd-aufgelöst, NetworkManager und NSCD
Veröffentlicht: 2025-09-26Wenn sich Ihr Linux -System seltsam verhält, während Sie auf Websites zugreifen - oder falsche Domänen auflöst - ist es möglicherweise Zeit, den DNS -Cache zu spülen. Wie der Cache Ihres Browsers speichert der DNS -Cache temporäre Daten, mit denen die Geschwindigkeit des Webbrows verbessert und die Latenz verringert wird. Wenn dieser Cache jedoch veraltet oder beschädigt wird, kann er zu Konnektivitätsproblemen führen. Dies ist besonders wichtig in Entwicklungs- oder Netzwerkszenarien, in denen sich Domainnamen häufig ändern. In diesem Artikel werden wir untersuchen, wie Sie den DNS-Cache in Linux-Systemen spülen, diesystemd-aufgelöst,networkManageroderNSCD(Name Service Cache Daemon) verwenden.
DNS -Caching unter Linux verstehen
DNS Caching ist ein Mechanismus, der DNS -Lookups lokal speichert. Dies verhindert, dass wiederholte Abfragen nach demselben Domänennamen sich zu DNS -Servern ärgern, was die Leistung verbessern kann. Linux verteilt jedoch die Verantwortlichkeiten der DNS -Auflösung je nach den verwendeten Systemkomponenten oder -diensten unterschiedlich.
In modernen Verteilungen stoßen Sie am wahrscheinlichsten auf einen der folgenden Resolver -Systeme:
- systemd-aufgelöst: häufig in neueren Verteilungen wie Ubuntu 18.04+ und Fedora.
- NetworkManager: Arbeitet häufig mit systemd-aufgelöster oder einem anderen Backend.
- NSCD(Name Service Cache Daemon): In einigen herkömmlichen Unix- und Enterprise -Linux -Systemen zu finden.
Jedes dieser Systeme behandelt das DNS -Caching unterschiedlich, was bedeutet, dass die Methode zum Spülen des Cache auch variiert. Gehen wir im Detail durch jeden.
Flushing DNS-Cache in systemd-aufgelöstem DNS-Cache
Systemd-aufgelöstist ein vonSystemdzur Verwaltung von DNS-Abfragen und Caching bereitgestellter Dienst. Es wird in vielen Mainstream -Linux -Verteilungen zum Standard. Sie können überprüfen, ob Ihr System systemd-aufgelöst wird, indem Sie ausgeführt werden:
systemctl is-active systemd-resolved
Wenn es aktiv ist, spülen Sie den DNS -Cache mit dem folgenden Befehl aus:
sudo systemd-resolve --flush-caches
Um zu bestätigen, dass der Cache gelöscht wurde, oder aktuelle Statistiken anzeigen können Sie verwenden:
systemd-resolve --statistics
Dieser Befehl zeigt Metriken wie die Anzahl der Cache -Einträge, Hits und Misses an, wodurch Sie sicherstellen, dass der Cache -Spülen erfolgreich war.

Systemd-aufgelöste Konfiguration und Debugging
Für erweiterte Benutzer liegt die Konfiguration des Dienstes in /etc/systemd/resolved.conf
. Sie können Einstellungen wie DNS -Server oder Fallback -Verhaltensweisen einstellen. Wenn Sie anhaltende DNS-Probleme auftreten, sollten Sie journalctl
Protokolle fürsystemd-aufgelösteüberprüfen:
journalctl -u systemd-resolved
Dies kann unglaublich hilfreich sein, wenn Probleme mit Domänenauflösung durch DNS -Misskonfiguration oder Cache -Vergiftung durch DNS -Fehlkonfiguration behoben werden.
Verwenden von NetworkManager, um DNS zu aktualisieren
NetworkManager ist ein Dienstprogramm, das die Netzwerkkonfiguration automatisch über viele Linux -Verteilungen handelt, einschließlich Desktop -Umgebungen wie Gnome und KDE. Während NetworkManager selbst DNS nicht kann, bestimmt es häufig, welchen Service (wie systemd-aufgelöst) DNS behandelt.
Um die DNS -Einstellungen mithilfe von NetworkManager zu aktualisieren, können Sie den Dienst neu starten:
sudo systemctl restart NetworkManager
Diese Methode erzwingt indirekt eine DNS-Neuauflösung durch Neustart von Verbindungen und verwandten Diensten. Wenn Sie körniger werden möchten, können Sie spezifische Netzwerkschnittstellen auch deaktivieren und wieder aufnehmen. Zum Beispiel:
nmcli networking off nmcli networking on
Oder für ein bestimmtes Gerät:
nmcli device disconnect eth0 nmcli device connect eth0
Diese Methode ist besonders nützlich, wenn Sie nach DNS -Änderungen zwischen Netzwerken wechseln oder Probleme mit Domänenausbreitung auflösen.
DNS -Einstellungen mit NMCLI inspizieren
Wenn Sie untersuchen möchten, welchen DNS Ihr NetworkManager verwendet, den Befehl:
nmcli dev show | grep DNS
listet die aktuell aktiven DNS -Adressen auf. Dies ist nützlich, wenn die Überprüfung der DNS -Einstellungen von DHCP oder statischer Adressierung korrekt angewendet werden.

Flushing DNS mit NSCD (Name Service Cache Daemon)
Während es in modernen Desktop -Linux -Systemen weniger verbreitet ist, wirdNSCDweiterhin in Unternehmens- und Legacy -Umgebungen verwendet. Es zwischen den Namensdienstanfragen nachgedacht, um die Auflösung für Hostnamen, Passwörter und andere Datenbankobjekte zu beschleunigen. Stellen Sie zunächst sicher, dass es installiert und ausgeführt wird:

sudo systemctl status nscd
Wenn es aktiv ist, ist es unkompliziert, den DNS -Cache zu spülen:
sudo nscd -i hosts
Dieser Befehl sagt NSCD, seine Cache -Einträge für Hostnamen zu ungültig machen (-i). Wenn Sie alles spülen möchten, nicht nur DNS -Einträge, verwenden Sie:
sudo nscd -I
Dadurch werden die gesamten Konfiguration neu geladen und zwischengespeicherte Daten für alle unterstützten Datenbanken gelöscht.
Konfigurieren und Überwachung von NSCD
NSCD wird über /etc/nscd.conf
konfiguriert. Sie können das Caching für verschiedene Datentypen wie folgt aktivieren oder deaktivieren:
- Passwd
- Gruppe
- Gastgeber
Die Datei ist gut gefördert, was sie vernünftigerweise zugänglich macht. Durch die Überwachung von Protokollen über journalctl -u nscd
können Sie sein Verhalten im Auge behalten und potenzielle Probleme identifizieren.
So bestimmen Sie, welchen Caching -Mechanismus Sie verwenden
Sie sind sich nicht sicher, auf welchem System Ihr Linux -Computer für DNS -Caching angewiesen ist? Hier sind ein paar kurze Schecks:
- Gibt
systemd-resolve --status
eine sinnvolle Ausgabe zurück? Wenn ja, verwendet Ihr System wahrscheinlich systemd-aufgelöst. - Bietet
nscd -g
Tabelleneinträge? Möglicherweise verwenden SieNSCD. - Funktioniert
resolvectl
in Ihrem System? Das ist ein guter Stichwort fürsystemd-aufgelöste. - Ist
dnsmasq
oderBIND
installiert? Dies weist auf fortgeschrittenere Setups hin, die separate Schritte erfordern.
Das Identifizieren des verwendeten DNS -Resolvers ist entscheidend, bevor versucht wird, den DNS -Cache zu spülen oder zu debuggen, da das Spülen des falschen Cache Ihr Problem nicht löst.
Warum regelmäßig DNS spülen
Während DNS Caching die Leistung verbessert, kann es auch problematisch sein. Hier ist der Grund, warum und wenn Sie es vielleicht spülen möchten:
- Nach dem Ändern von DNS-Einträgen:Nicht fließende Caches können auf alte IPS- oder DNS-Server verweisen.
- Fehlerbehebung mit Konnektivitätsproblemen:Korruptischer oder vergifteter Cache führt zu fehlgeschlagenen Auflösungen.
- Szenarien der Entwicklung der Zeit:Beim Testen einer Domänenmigration oder beim Wechsel zwischen Staging- und Produktionsservern.
Das regelmäßige Spülen des DNS -Cache hilft bei der Aufrechterhaltung der Systemgesundheit und vermeidet unerwartete Zugriffsprobleme vor Ort - insbesondere für Stromnutzer, Systemadministratoren und Entwickler.
Erweiterte Tipps und Werkzeuge
Wenn Sie in einer komplexen Umgebung arbeiten oder mehr Kontrolle über die DNS -Auflösung benötigen, finden Sie hier einige Bonuswerkzeuge und Tipps:
- DNSMASQ:fungiert als leichter DNS -Spediteur mit Caching -Funktionen.
- Bind (benannt):DNS-Server für Unternehmensqualität mit einstellbarer Zone-Caching und benutzerdefinierter Ablauf.
dig
undnslookup
:Debugging-Tools zum Testen von Echtzeit-DNS-Datensätzen.host
:Einfach und direkt für die Abfrage von DNS -Datensätzen ohne Cache -Störung.

Letzte Gedanken
Das Spülen Ihres DNS -Cache in Linux ist eine einfache Aufgabe - sobald Sie wissen, welches Tool oder der Service die DNS -Auflösung Ihres Systems erledigen. Unabhängig davon, ob Siesystemd-aufgelöst,NetworkManageroderNSCDverwenden, wird Sie mit den Fähigkeiten, um alle DNS-bezogenen Fehlerbehebungsszenario mit DNS-bezogenen Fehlerbehebungsszenario zu beheben. Wenn Sie Ihren DNS -Cache sauber halten, ist dies nicht nur eine gute Hygiene, sondern für eine zuverlässige und genaue Auflösung des Domain -Namens in der heutigen dynamischen Netzwerklandschaft.