So leeren Sie den DNS-Cache in OS X Yosemite mit Discoveryutil
Inhaltsverzeichnis:
- DNS-Cache in OS X Yosemite 10.10.4 und OS X 10.10.5 löschen
- DNS-Caches in OS X Yosemite löschen (10.10, 10.10.1, 10.10.2, 10.10.3)
Einige Mac-Benutzer können Situationen erleben, in denen sie den DNS-Cache in OS X leeren müssen, damit ein Nameserver richtig aufgelöst wird oder einige DNS-Adressänderungen von ihrem individuellen Computer bemerkt werden. Dies ist besonders relevant für Systemadministratoren, Netzwerkadministratoren und Webentwickler, aber es gibt sicherlich Situationen, in denen andere Benutzer möglicherweise auch DNS-Caches sichern und zurücksetzen müssen, z. B. wenn ein Benutzer die Datei /etc/hosts geändert hat und sie die Änderungen benötigen wirksam werden, ohne den Mac neu zu starten.
Langjährige Mac-Benutzer werden wissen, dass sich das Zurücksetzen des DNS-Cache in fast jeder Version von Mac OS X geändert hat, und OS X Yosemite ist nicht anders, wahrscheinlich aufgrund der Entdeckung, dass mDNSResponder ersetzt und dann wieder zu mDNSResponder gewechselt wurde wieder mal. Ungeachtet dessen bleibt das Leeren des DNS-Cache in Yosemite ein Terminalbefehl, aber es unterscheidet sich geringfügig je nach der genauen Version, die Sie vom Betriebssystem verwenden, und es ermöglicht Ihnen tatsächlich, entweder Multicast-DNS oder Unicast-DNS oder beides zu löschen. Sie werden wahrscheinlich beide löschen wollen, wenn Sie versuchen, alle DNS-Caches auf dem Mac zurückzusetzen.
DNS-Cache in OS X Yosemite 10.10.4 und OS X 10.10.5 löschen
Von OS X 10.10.4 bis 10.10.5, einschließlich 10.11, hat Apple Discovery verworfen und es durch mDNSResponder ersetzt (oder vielmehr wieder darauf zurückgesetzt). Um DNS-Caches in OS X Yosemite 10.10.4 und 10.11 El Capitan und vermutlich später zu löschen, lautet die Befehlszeichenfolge daher wie folgt:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;sagen Sie, dass der Cache gelöscht wurde
Dieser Befehl leert alle DNS-Caches für OS X 10.10.4+.
Langjährige Mac-Benutzer erinnern sich vielleicht, dass die Befehlszeichenfolge im Wesentlichen das war, was in der Version vor Yosemite funktionierte. Vor diesem Hintergrund verwenden frühere Versionen von OS X Yosemite vor 10.10.4 eine andere unten beschriebene Befehlszeichenfolge.
DNS-Caches in OS X Yosemite löschen (10.10, 10.10.1, 10.10.2, 10.10.3)
Sie müssen das Terminal verwenden, um den Cache zurückzusetzen. Sie finden die Terminal-App unter /Programme/Dienstprogramme/ oder starten Sie sie mit Spotlight. Um alle DNS-Caches in der neuesten Version von OS X vollständig zu löschen, zielen Sie mit zwei verschiedenen Befehlen sowohl auf MDNS (Multicast DNS) als auch auf UDNS (Unicast DNS).
MDNS-Cache löschen
sudo discoveryutil mdnsflushcache
Drücken Sie die Eingabetaste und geben Sie das Admin-Passwort ein, wenn Sie dazu aufgefordert werden.
UDNS-Cache löschen
sudo discoveryutil udnsflushcaches
Drücken Sie erneut die Eingabetaste und geben Sie das Admin-Passwort ein, wenn Sie dazu aufgefordert werden. Beachten Sie, dass Caches bei letzterem Befehl Plural ist, ein subtiler, aber wichtiger Syntaxunterschied.
Alle DNS-Caches in OS X Yosemite leeren und zurücksetzen
Sie können die beiden obigen Befehle auch aneinanderreihen, wenn Sie möchten, die folgenden werden sogar verbal ankündigen, wenn die Caches gelöscht wurden:
sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;sagen Sie gespült
In der Tat sind MDNS- und UDNS-Caches unterschiedlich, aber ich habe festgestellt, dass beide Befehle erforderlich sind, damit der funktionale DNS-Cache in OS X Yosemite tatsächlich gelöscht wird. Es ist durchaus möglich, dass Sie nur das eine oder andere für Ihre eigenen Bedürfnisse löschen müssen.
Für diejenigen, die sich fragen, OS X Yosemite hat mDNSResponder abgeschafft, sodass es nicht nötig ist, diesen mDNSResponder-Prozess zu beenden, um DNS-Caches wie in früheren Versionen von Mac OS X zu aktualisieren.
Überprüfen der DNS-Cache-Details in OS X Yosemite
Wenn Sie DNS ändern oder ändern werden und einige Details darüber sehen möchten, was derzeit im Cache gespeichert ist, können Sie die folgenden Befehle verwenden:
Rufen Sie UDNS-Cache-Statistiken ab:
sudo discoveryutil udnscachestats
Einzelheiten zum Multicast-DNS-Cache können Sie auch folgendermaßen abrufen:
sudo discoveryutil mdnscachestats
Beide bieten Details zur Anzahl der zwischengespeicherten DNS-Einträge und bieten einen Bericht, der wie folgt aussehen sollte:
UDNS-Cache-Statistiken: Zwischengespeichert 962 von 1750
Wenn Sie diese Befehle vor und nach dem Ausführen der Flushcache-Variationen ausführen, werden Sie feststellen, dass sie auf 0 Einträge im Cache zurückgesetzt werden sollten, etwa so:
MDNS-Cache-Statistiken: lo0: Zwischengespeichert 0 von 2000
Woher weißt du, ob es sich geändert hat?
Nachdem Sie den Cache geleert haben und feststellen möchten, ob sich ein Nameserver oder eine IP tatsächlich geändert hat, können Sie den 'dig'-Befehl mit der URL wie folgt verwenden:
dig osxdaily.com
dig ist ähnlich wie nslookup, außer dass es eine bessere Ausgabe und ein paar mehr Details enthält, einschließlich der Abfragezeit, des eingestellten DNS-Servers, der für den Zugriff auf die Domäne verwendet wird, und eines Zeitstempels, die alle sein können wertvoll bei der Fehlersuche bei Nameserver-Problemen. Übrigens, wenn sich die Abfragezeit dafür als träge herausstellt, sollten Sie ein Tool wie namebench verwenden, um einen schnelleren DNS-Server für Sie zu finden, häufig Google DNS oder OpenDNS.
Kennen Sie einen weiteren DNS-Cache-Trick für die neuesten Versionen von OS X? Lass es uns in den Kommentaren wissen.