Beachten 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 ist ps ax | grep dnsmasq
. Hier ist eine Aufschlüsselung meiner Standard-13.10-Maschine:
/ usr / sbin / dnsmasq \
--no-resolv \
--Halte im Vordergrund \
--no-hosts \
--bind-interfaces \
--pid-file = / var / run / NetworkManager / dnsmasq.pid \
--listen-address = 127.0.1.1 \
--conf-file = / var / run / NetworkManager / dnsmasq.conf \
--cache-size = 0 \
--proxy-dnssec \
--enable-dbus = org.freedesktop.NetworkManager.dnsmasq \
--conf-dir = / etc / NetworkManager / dnsmasq.d
/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:
-c, --cache-size=<cachesize>
Set the size of dnsmasq's cache. The default is 150 names.
Setting the cache size to zero disables caching.
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:
- Upstream von Ihrem Computer. Einige Router zwischenspeichern. In vielen Unternehmensnetzwerken wird DNS zwischengespeichert. Viele ISP-DNS-Server verwenden eigene Caches. Die einzige Möglichkeit, einen Netzwerkcache zu schützen, besteht darin, einen Cache zu verwenden, den Sie manuell aktualisieren können. Deshalb mag ich OpenDNS.
- In der Client-Anwendung (insbesondere in Browsern). Anwendungen können alle Arten von Caching durchführen, auf die Ubuntu keinen Einfluss hat. Wie Firefox DNS zwischenspeichert . So leeren Sie den DNS-Cache von Chrome . Andere Browser (und Anwendungen) verfügen möglicherweise über eigene Mechanismen.
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
, DJBDNS dnscache
(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:
$ 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 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:
sudo /etc/init.d/nscd reload # nscd
sudo /etc/init.d/named restart # bind9
In einem leicht verwandten Hinweis sehen Sie dies, um das Caching zu aktivierendnsmasq
.
/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.