Frage Wie lösche ich den DNS-Cache?


Ich habe gerade den DNS-Eintrag aktualisiert (ns1, ns2, ns3.myhostingcompany.com) für eine Seite, die ich gehostet habe, aber ich bekomme immer noch die Domain-Registrar-Parkseite.

Ich würde gerne sehen, ob das Problem die zwischengespeicherten DNS-Einträge von Ubuntu ist. Gibt es eine Möglichkeit, den DNS-Cache von Ubuntu zu löschen? (Wenn so etwas existiert?)


153
2017-08-13 21:23


Ursprung


Überprüfen Sie auch /etc/hosts. Ich war nur sicher, dass die alte IP-Adresse meiner Domain zwischengespeichert wurde, aber nur strace ping example.com enthüllt, dass ich vergessen habe, das zu entfernen /etc/hosts aufnehmen, die ich vor einiger Zeit wegen mangelnder Geduld für die DNS-Verbreitung hinzugefügt habe. - ulidtko
Viele dieser Antworten schlagen vor, dass das Caching standardmäßig deaktiviert ist, sie beziehen sich jedoch auch auf ältere Versionen. Es scheint auf meiner Maschine sicher eingeschaltet zu sein (18.04) und verschiedene Antworten unten zeigen Ihnen, wie man es spült, scrollen Sie einfach nach unten - Madivad


Antworten:


Für 18.04 und höher

Ansehen Mike Shultz 'Antwort.

Für 11.10 und darunter

Ubuntu speichert standardmäßig keine DNS-Datensätze. Wenn Sie also keinen DNS-Cache installiert haben, ist nichts zu löschen.

DNS-Einträge werden wahrscheinlich von den DNS-Servern Ihres Providers zwischengespeichert. Wenn Sie also überprüfen möchten, ob die von Ihnen vorgenommenen DNS-Änderungen erfolgreich waren, können Sie mit dig einen DNS-Server von Ihrem Domain-Hosting-Dienst abfragen:

dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server

Es soll Ubuntu mit dem Cachen von DNS beginnen Ich empfehle die Installation pdnsd zusammen mit resolvconf. nscd ist fehlerhaft und nicht ratsam.


52
2017-08-14 00:13



Irgendwelche Hinweise, warum nscd fehlerhaft ist? Ist es heute noch buggy (2012-10)? - jjmontes
Können Sie Ihre Antwort-ATM aktualisieren, es klingt wie Ubuntu-Versionen 11.10 und Cache-DNS-Einträge. - Martin Konecny


12.04

Ubuntu 12.04 verwendet dnsmasq in die eingebaut ist network-manager, aber es nicht Cache-DNS, so dass es nicht notwendig ist, es zu leeren. Hier ist eine Beispielzeile von meinem syslog um diesen Punkt zu beweisen:

dnsmasq[2980]: started, version 2.59 cache disabled

Es besteht auch keine Notwendigkeit für eine Konfiguration von dnsmasq. Wenn Sie mit den Lagereinstellungen arbeiten, werden keine DNS-Dateien zwischengespeichert, da Sie dies explizit tun müssen Ubuntu-Artikel beschreibt.

Wenn Sie Ihre Einstellungen aktualisieren möchten, können Sie das Netzwerk deaktivieren oder aktivieren und ausführen

sudo service network-manager restart

Dies startet neu dnsmasq weil es eingebaut ist network-manager; überprüfe dein syslog für den Beweis dafür.

Wenn Sie eine kabelgebundene Verbindung mit dhcp verwenden network manager nimmt die Einstellungen direkt von Ihrem Router und Ihre Verbindung wird automatisch hergestellt, wenn Sie sich bei Ubuntu anmelden. Sie können überprüfen, ob die Einstellungen in Ihrem Router korrekt sind, wenn Sie über die Webschnittstelle darauf zugreifen können, und wenn nötig, booten Sie sie gegebenenfalls neu.  Wenn es sich um ein generelles Problem mit DNS handelt, könnten Sie versuchen, Google-DNS statt Ihrer ISP-DNS zu verwenden, und weitere Informationen dazu finden Sie hier detailliert hier.


69
2017-09-14 20:39



sudo service network-manager restart hat den Trick für mich mit Debian gemacht - Pierre de LESPINAY


Beachten Sie, dass Ubuntu ab 17.04 systemd-resolve verwendet, so dass diese Antwort nicht mehr auf neuere Ubuntu-Versionen zutrifft. Sehen "DNS-Cache in Ubuntu 17.04 und höher leeren (18.04)"

Standardmäßig wird DNS nicht in Ubuntu <17.04 zwischengespeichert (aber es wird möglicherweise im Netzwerk oder in der Anwendung zwischengespeichert)

Auf die eine oder andere Weise zu bestätigen, ob dnsmasq ist Caching, lauf ps ax | grep dnsmasq und schau dir den laufenden Befehl an. Hier ist eine Aufschlüsselung meiner Standard 13.10-Maschine:

/ usr / sbin / dnsmasq \
  --no-resolv
  --Halten-im-Vordergrund \
  - keine-Hosts \
  --bind-interfaces \
  --pid-file = / var / run / Netzwerkmanager / dnsmasq.pid \
  --listen-Adresse = 127.0.1.1 \
  --conf-file = / var / run / Netzwerkmanager / dnsmasq.conf \
   - Cache-Größe = 0 \
  --proxy-dnssec \
  --enable-dbus = org.freedesktop.NetworkManager.dnsmasq \
  --conf-Verzeichnis = / etc / NetworkManager / dnsmasq.d

/etc/NetworkManager/dnsmasq.d ist standardmäßig leer. Es gibt also keine Overrides, die reinkommen und überprüfen --cache-size=0bedeutet, was wir denken, dass es bedeutet (anstelle von einem unbegrenzt Zwischenspeicher), man dnsmasq zeigt an:

-c, --cache-size=<cachesize>
  Set the size of dnsmasq's cache. The default is 150 names. 
  Setting the cache size to zero disables caching.

Also, während dnsmasq  kann Cache-DNS, es wird die Box nicht zwischengespeichert. Sie können Ihren Computer und verschiedene Konfigurationsverzeichnisse überprüfen, um zu überprüfen, ob Sie sich auf derselben Seite befinden.

Wenn Probleme mit dem Cache auftreten, geschieht dies wahrscheinlich an einem der folgenden Orte:

  • Stromaufwärts von Ihrem Computer. Einige Router cachen. Viele Unternehmensnetzwerke cachen DNS. Viele ISP-DNS-Server führen eigene Caches aus. Die einzige Möglichkeit, gegen einen Netzwerkcache zu garantieren, besteht darin, einen Cache zu verwenden, den Sie manuell aktualisieren können. Deshalb mag ich OpenDNS.
  • In der Client-Anwendung (insbesondere Browser). Anwendungen können alle Arten von Caching durchführen, auf die Ubuntu keinen Einfluss hat. Wie Firefox DNS speichert. So löschen Sie den DNS-Cache von Chrome. Andere Browser (und Anwendungen) können ihre eigenen Mechanismen haben.
  • Ich kratze hier das Fass, aber vielleicht haben Sie einen nicht standardmäßigen DNS-Server in Ubuntu installiert, anstatt das Caching einzuschalten dnsmasq. Da sind viele: nscd, DJBDNS dnscache (aka TinyDNS), pdns, pdnsdBind9 (und seine Varianten), und noch mehr kann ich mich nicht erinnern. Diese werden wahrscheinlich nachgewiesen werden in /etc/resolv.conf (mit config in / etc / resolvconf / `um diese Datei automatisch zu erstellen). Im Folgenden wird eine lokal abgefangene DNS-Abfrage angezeigt:

    $ nslookup askubuntu.com
    Server:     127.0.1.1
    Address:    127.0.1.1#53
    
    Non-authoritative answer:
    Name:   askubuntu.com
    Address: 198.252.206.24
    

    Wenn Sie nicht 8.8.8.8 (oder wie auch immer Sie Ihren DNS-Server erwarten) schlagen, überprüfen Sie stattdessen, was Sie treffen. In meinem Fall kann ich sehen, dass das gerecht ist dnsmasq eingerichtet, um DNS-Abfragen für LXC zurückzuspiegeln, aber in Ihrem Fall könnte es schlechte Cache-Sachen machen.

    Wenn Sie die aufgeführten Caches erledigt haben, variiert der Prozess zum Löschen der einzelnen Caches:

    sudo /etc/init.d/nscd reload    # nscd
    sudo /etc/init.d/named restart  # bind9
    

Auf eine etwas verwandte Anmerkung, sieh dir das an, um das Caching zu aktivieren dnsmasq.


59
2018-03-17 10:40



Meine Ausgabe von ps aux | grep ist die gleiche wie Ihre, aber etwas speichert DNS auf meinem Rechner. Wenn es nicht dnsmasq ist, ist es etwas anderes. Beweis: Ich habe eine Subdomain auf meinem Server erstellt, aber ich konnte sie nicht pingen, Host nicht erreichbar. Ich überprüfte auf downforeveryonejustme.com und es war auf, so Propagation Problem verworfen. Nicht mein Router oder mein ISP, weil ich die DNS 8.8.8.8 von Google benutze. Dann habe ich den Computer neu gestartet (und NICHT den Router) und ich konnte die Domain erreichen. Ich hatte ein Dutzend Mal vor dem Neustart versucht, ohne Glück. Erster Versuch nach Neustart erreicht den Host. - matteo
Und das war übrigens nicht das erste Mal, dass ich das gleiche erlebt habe. Vor Monaten passierte das Gleiche und die einzige Möglichkeit, die Domain zu erreichen, war das Neustarten des Computers, aber dann hatte ich eine ältere Ubuntu-Version. - matteo
@matteo Der Browser? - Oli♦
nein, wie gesagt ich habe mit ping getestet, nicht (nur) den browser (n). - matteo
@matteo Ich habe mehr hinzugefügt, aber mir sind die Ideen ausgegangen. Es gibt einfach nicht so viele Orte mehr könnte Cache-DNS :) - Oli♦


Für 12.04:

Ubuntu 12.04 Cache DNS mit dnsmasq (siehe man dnsmasq). Verwenden Sie Folgendes, um den Cache zu löschen:

sudo kill -HUP $(pgrep dnsmasq)

40
2017-07-21 21:32



Vielen Dank! Du bist der Erste, der etwas über das Standard-Caching von 12.04 erwähnt hat! - Tarka
12.04 speichert keine DNS standardmäßig - überprüfen Sie Ihr Syslog nach dem Neustart von Network-Manager; es wird einen Eintrag haben, der zeigt, dass dnsmasq mit cache-disabled gestartet wird.
Ich weiß nicht, ob der Cache standardmäßig aktiviert ist, aber diese Antwort funktionierte für mich. - jeyk
Warum nicht einfach sudo killall -HUP dnsmasq? - James Haigh
benutzen pkill Anstatt von kill und pgrep - Robert Siemer


sudo /etc/init.d/nscd restart

http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html

Außerdem können Sie überprüfen, ob Ihre DNS-Änderungen mithilfe von dig weitergegeben wurden und sich mit anderen Personen als Ihren Standard-DNS-Servern in Verbindung setzen. In diesem Fall google DNS.

dig @8.8.8.8 example.com


16
2017-08-13 21:25



Beachten Sie, dass nscd nicht standardmäßig installiert ist. - Scaine


Ubuntu 17.04 und höher (18.04)

Ab Ubuntu 17.04 wird systemd-resolve für DNS verwendet. Sie können systemd's Caches wie folgt spülen:

sudo systemd-resolve --flush-caches

12
2018-06-27 04:09



OMG, willst du mich heiraten? Gelöst mein Problem mit 18.04 too \ o / - NiKo
Das hat bei 16.04 LTS nicht funktioniert - aber es war nützlich, noch einen anderen Weg zu sehen, den es hätte cachen können: sudo systemd-resolve --statistics - Phil


Persönlich würde ich Verwenden Sie OpenDNS und benutze ihre Cache-Check-Funktion um eine Aktualisierung zu erzwingen, nur um sicherzustellen, dass die Änderungen funktionieren, aber Sie können nicht Garantie Sie werden innerhalb von 48 Stunden für Ihre Benutzer aktualisiert.

DNS ist ein langsames Biest. Geduld wird dich gesund halten.


11
2017-08-13 21:26



+1 Ich benutze OpenDNS auch Clear Cache ist sehr nützlich. - Mark Davidson
Ich bin misstrauisch gegenüber OpenDNS. Ich war zuerst damit zufrieden, aber dann wurde ich misstrauisch; obwohl ich denke, wenn es eine Wahl zwischen ISP und OpenDNS ist, bin ich mit OpenDNS besser dran, oder? - Jono
Ich würde sagen OpenDNS ist das kleinere Übel. Sie möchten Ihren Traffic monetarisieren, aber nur bei schlechten Domain-Hits. - Oli♦