Ich aktualisierte nur den DNS - Eintrag ( ns1
, ns2
, ns3.myhostingcompany.com
) für eine Seite , die ich habe gehostet haben, aber ich habe immer noch die Domain - Registrar Parkseite.
Ich würde gerne sehen, ob das Problem die zwischengespeicherten DNS-Einträge von Ubuntu sind. Gibt es eine Möglichkeit, den DNS-Cache von Ubuntu zu löschen? (Wenn so etwas existiert?)
networking
dns
Jono
quelle
quelle
/etc/hosts
. Ich war mir nur sicher, dass die alte IP-Adresse meiner Domain zwischengespeichert wurde, habe jedochstrace ping example.com
festgestellt, dass ich vergessen habe, den vor einiger/etc/hosts
Zeit hinzugefügten Eintrag zu entfernen, da ich keine Geduld für die DNS-Weitergabe habe.Antworten:
Für 18.04 und höher
Schau dir die Antwort von Mike Shultz an .
Für 11.10 und darunter
Ubuntu speichert DNS-Einträge standardmäßig nicht im Cache. Wenn Sie also keinen DNS-Cache installiert haben, müssen Sie nichts 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 einen DNS-Server von Ihrem Domain-Hosting-Dienst mit dig abfragen:
dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
Wenn Ubuntu DNS zwischenspeichern soll, empfehle ich die Installation
pdnsd
zusammen mitresolvconf
.nscd
ist fehlerhaft und nicht ratsam.quelle
Ubuntu 17.04 und höher (18.04)
Ab Ubuntu 17.04 wird die Systemauflösung für DNS verwendet. Sie können die Caches von systemd folgendermaßen leeren:
quelle
sudo systemd-resolve --statistics
systemctl restart systemd-resolved.service
hat auch am 18.04 gearbeitet.12.04
Ubuntu 12.04 verwendet
dnsmasq
das, in das es eingebaut istnetwork-manager
, aber es speichert keine DNS zwischen, so dass es nicht notwendig ist, es zu leeren. Hier ist eine Beispielzeile von mirsyslog
, um diesen Punkt zu beweisen:Es ist auch keine Konfiguration von erforderlich
dnsmasq
. Wenn Sie mit Standardeinstellungen arbeiten, werden DNS nicht zwischengespeichert. Dazu müssen Sie sie explizit einrichten, wie in diesem Ubuntu-Artikel beschrieben.Wenn Sie Ihre Einstellungen aktualisieren möchten, können Sie das Netzwerk deaktivieren und dann aktivieren oder ausführen
Dies wird neu gestartet,
dnsmasq
weil es eingebaut istnetwork-manager
. Überprüfen Sie Ihresyslog
für die Beweise dafür.Wenn Sie eine Kabelverbindung mit DHCP verwenden
network manager
, werden die Einstellungen direkt von Ihrem Router übernommen 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 Weboberfläche darauf zugreifen können, und ihn ggf. neu starten. Wenn es sich um ein allgemeines Problem mit DNS handelt, können Sie versuchen, Google DNS anstelle Ihres ISP DNS zu verwenden. Weitere Informationen hierzu finden Sie hier .quelle
sudo service network-manager restart
habe den Trick für mich mit Debian gemachtBeachten Sie, dass Ubuntu ab 17.04 systemd-resolve verwendet, sodass diese Antwort nicht mehr auf neuere Ubuntu-Versionen zutrifft. Siehe " DNS-Cache in Ubuntu 17.04 und höher leeren (18.04) "
Standardmäßig wird DNS in Ubuntu <17.04 nicht zwischengespeichert (möglicherweise jedoch im Netzwerk oder in der Anwendung).
Führen Sie den Befehl running aus, um auf die eine oder andere Weise zu bestätigen, ob der
dnsmasq
Cache aktiv istps ax | grep dnsmasq
. Hier ist eine Aufschlüsselung meiner Standard-13.10-Maschine:/etc/NetworkManager/dnsmasq.d
ist standardmäßig leer. Es kommen also keine Overrides rein und nur zu überprüfen--cache-size=0
bedeutet, was wir denken, dass es bedeutet (anstelle eines unbegrenzten Caches),man dnsmasq
zeigt:Während also
dnsmasq
kann DNS - Cache, wird die Box nicht das Caching aus. Sie können Ihr Gerät und verschiedene Konfigurationsverzeichnisse überprüfen, um sicherzustellen, dass Sie sich auf derselben Seite befinden.Wenn Cache-Probleme auftreten, geschieht dies wahrscheinlich an einer der folgenden Stellen:
Ich schabe hier am Lauf herum, aber vielleicht haben Sie in Ubuntu einen nicht standardmäßigen DNS-Server installiert, anstatt das Caching einzuschalten
dnsmasq
. Es gibt viele:nscd
, DJBDNSdnscache
(aka tinydns)pdns
,pdnsd
, Bind9 (und seine Varianten), und mehr kann ich nicht einmal erinnern. Diese werden wahrscheinlich in/etc/resolv.conf
(mit config in / etc / resolvconf / `, um diese Datei automatisch zu erzeugen) angezeigt. Das Folgende zeigt eine lokal abgefangene DNS-Abfrage:Wenn Sie 8.8.8.8 nicht treffen (oder was auch immer Sie von Ihrem DNS-Server erwarten), überprüfen Sie stattdessen, was Sie treffen. In meinem Fall sehe ich, dass dies nur
dnsmasq
eingerichtet ist, um DNS-Abfragen für LXC zurückzuspiegeln, aber in Ihrem Fall kann es sein, dass es schlechte Cachey-Dinge tut.Wenn Sie die aufgelisteten Caches gelöscht haben, ist der Löschvorgang unterschiedlich:
In einem leicht verwandten Hinweis sehen Sie dies, um das Caching zu aktivieren
dnsmasq
.quelle
Für den 12.04 .:
Ubuntu 12.04 cacht DNS mit dnsmasq (siehe
man dnsmasq
). Verwenden Sie Folgendes, um den Cache zu leeren:quelle
sudo killall -HUP dnsmasq
?pkill
anstelle vonkill
undpgrep
sudo /etc/init.d/nscd restart
http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html
Als Hinweis können Sie auch überprüfen, ob sich Ihre DNS-Änderungen mithilfe von dig verbreitet haben, und sich mit einer anderen Person als Ihren Standard-DNS-Servern messen. In diesem Fall Google DNS.
dig @8.8.8.8 example.com
quelle
Persönlich würde ich OpenDNS verwenden und die Cache-Prüffunktion verwenden , um eine Aktualisierung zu erzwingen, um sicherzustellen, dass die Änderungen funktionieren. Sie können jedoch nicht garantieren, dass sie für Ihre Benutzer innerhalb von 48 Stunden aktualisiert werden.
DNS ist eine langsame Bestie. Geduld wird dich gesund halten.
quelle
Wenn Sie nscd verwenden:
Erwähnenswert ist, dass es möglicherweise nicht das Betriebssystem ist, das es zwischenspeichert. Jeder mag es, DNS zwischenzuspeichern ... Einige Tests:
Überprüfen Sie, ob es sich um die neue oder die alte IP handelt. In den meisten Browsern wird auch DNS zwischengespeichert. Wenn Sie also Chromium oder etwas anderes nicht neu gestartet haben, wird möglicherweise nicht die neueste Version angezeigt.
Wechseln Sie Ihren lokalen Nameserver in der /etc/resolv.conf zu einem anderen Provider, Google oder Level, Beispiele:
Und dann nochmal pingen.
Stellen Sie sicher, dass Ihr Router kein DNS in irgendeiner Form zwischenspeichert. (Variiert je nach Router / Firmware / usw.)
Endlich Geduld. Die Verbreitung von DNS im Internet kann einige Zeit in Anspruch nehmen.
quelle
Bei allen obigen Antworten wurde eines bei der Namensauflösung vergessen: Im Allgemeinen sind die DNS-Server, zu denen Sie die Namensauflösung anfordern, nicht die, auf denen die Datensätze selbst gespeichert sind (der autorisierende Server). Da jeder DNS-Eintrag einen Time To Live-Wert enthält, muss jeder DNS-Server in der Auflösungskette während der in diesem Wert angegebenen Anzahl von Sekunden einen Cachevorgang durchführen. Sie können also nicht nur in Ihrem Computer einen Cache speichern, sondern das Ergebnis der Namenssuche wird BESTIMMT auf einem Server zwischengespeichert, den Sie nicht steuern können.
Die einzige Lösung, die bei einer Änderung des Namensdatensatzes sofort benachrichtigt wird, ist die Verwendung des TTL-Werts 0 beim Erstellen / Aktualisieren des Eintrags auf dem autorisierenden Namensserver. Dies bedeutet jedoch, dass bei jeder Namensauflösung der Server betroffen ist, was normalerweise von den Registraren nicht zugelassen wird. Sie können beispielsweise eine Liste vordefinierter TTL-Werte bereitstellen, aus denen Sie auswählen können.
Ich verwalte verschiedene Domain-Namen und um sicherzugehen, dass die Änderungen auf den autorisierenden Nameservern gut angewendet werden, verwende ich ein Tool namens
dnstracer
, das die Suchergebnisse auf jedem Server aus dem DNS-Stammverzeichnis anzeigen kann.Selbst wenn keine DNS-Caching-Lösung vorhanden ist, gibt es eine Verzögerung zwischen dem Zeitpunkt, an dem Sie die DNS-Einträge ändern, und dem Zeitpunkt, an dem die Änderung auf einem PC angezeigt wird. Diese Verzögerung hängt stark von der TTL der Datensätze und der Anzahl der DNS-Server zwischen Ihrem PC und dem maßgeblichen Nameserver ab.
quelle
Für Ubuntu 14.04 empfehle ich diesen Befehl:
quelle
Ich habe den folgenden Befehl verwendet, um den DNS-Cache auf meiner 12.10 Ubuntu-Box zu leeren, und es hat fantastisch funktioniert.
Ein weiteres hilfreiches Signal ist der SIGUSR1, der eine kleine Statistik an syslog ausgibt, oder wie aus folgender Anmerkung hervorgeht
man dnsmasq
:quelle
pkill
anstelle vonkill
undpgrep
Unter Ubuntu 16.04 konnte ich den Cache nur löschen, wenn ich Folgendes tat:
quelle
Ich habe auch Widersprüche gefunden, aber diese: https://superuser.com/a/521562 Woks für mich (Ubuntu 13.10 mit den neuesten Updates, keine speziellen Netzwerkpakete installiert).
Kurz gesagt, benutze dies einfach
sudo /etc/init.d/dns-clean
quelle
Ich empfehle openDNS speziell in entfernten Ubuntu-Servern, es lindert viele Schmerzen ...
Wie es geht? Gut...
Fügen Sie dies VOR der Zeile "Subnetzmaske anfordern ..." ein
Dadurch wird die Schnittstelle so schnell neu gestartet, dass Sie nicht einmal Ihre SSH-Verbindung verlieren sollten
Überprüfen Sie dies, um festzustellen, ob Ihr brandneues openDNS korrekt installiert ist
quelle