Wie man DNS-Cache in OS X Yosemite mit discoveryutil entleert

Einige Mac-Benutzer können Situationen feststellen, in denen sie den DNS-Cache in OS X leeren müssen, damit ein Nameserver sie ordnungsgemäß auflösen kann, oder wenn einige DNS-Adressänderungen von ihrem jeweiligen Computer bemerkt werden. Dies ist besonders für Systemadministratoren, Netzwerkadministratoren und Webentwickler relevant, aber es gibt sicherlich Situationen, in denen andere Benutzer möglicherweise DNS-Caches löschen und zurücksetzen müssen, etwa wenn ein Benutzer die Datei / etc / hosts geändert hat und die Änderungen benötigt werden 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 unterscheidet sich nicht, wahrscheinlich weil mDNSResponder den mdSResponder ersetzt und dann wieder zu mDNSResponder zurückwechselt. Unabhängig davon bleibt das Leeren des DNS-Caches in Yosemite ein Terminal-Befehl, unterscheidet sich jedoch geringfügig je nach der genauen Version des Betriebssystems und ermöglicht Ihnen, entweder Multicast-DNS oder Unicast-DNS oder beides zu löschen. Wahrscheinlich möchten Sie beide für eine gute Maßnahme löschen, wenn Sie versuchen, alle DNS-Caches auf dem Mac zurückzusetzen.

Löschen Sie den DNS-Cache in OS X Yosemite 10.10.4 und OS X 10.10.5

Nachdem OS X 10.10.4 auf 10.10.5, einschließlich 10.11, übergegangen ist, hat Apple Discovery gelöscht und es durch mDNSResponder ersetzt (oder eher zurückverwandelt). Um also DNS-Caches in OS X Yosemite 10.10.4 und 10.11 El Capitan zu löschen, und vermutlich auch danach, lautet die Befehlszeichenfolge wie folgt:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;say cache flushed

Dieser Befehl löscht alle DNS-Caches für OS X 10.10.4+.

Langjährige Mac-Benutzer erinnern sich vielleicht daran, dass die Befehlszeichenfolge im Grunde genommen in der Version vor Yosemite funktioniert hat. In diesem Sinne verwenden frühere Versionen von OS X Yosemite vor 10.10.4 eine andere Befehlsfolge, die unten besprochen wird.

Löschen von DNS-Caches in OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Sie müssen den Terminal zum Zurücksetzen des Cache verwenden. Sie finden die Terminal-App unter / Programme / Dienstprogramme / oder starten sie mit Spotlight. Um alle DNS-Caches in der neuesten Version von OS X vollständig zu löschen, richten Sie sowohl MDNS (Multicast DNS) als auch UDNS (Unicast DNS) mit zwei verschiedenen Befehlen ein.

Löschen Sie den MDNS-Cache

sudo discoveryutil mdnsflushcache

Drücken Sie Return und geben Sie das Administratorpasswort ein, wenn Sie dazu aufgefordert werden.

Löschen Sie den UDNS-Cache

sudo discoveryutil udnsflushcaches

Drücken Sie erneut Return und geben Sie das Administratorpasswort ein, wenn Sie dazu aufgefordert werden. Beachten Sie, dass Caches mit dem letzteren Befehl mehrere sind, ein subtiler, aber wichtiger Syntaxunterschied.

Flush und Reset alle DNS-Caches in OS X Yosemite

Sie können auch die obigen beiden Befehle zusammen stringeln, wenn Sie wollen, wird das Folgende sogar verbal ankündigen, wenn die Caches gelöscht wurden:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

In der Tat sind MDNS- und UDNS-Caches unterschiedlich, aber ich habe herausgefunden, dass für den funktionalen DNS-Cache, um in OS X Yosemite tatsächlich zu löschen, beide Befehle notwendig sind. Es ist durchaus möglich, dass Sie nur den einen oder anderen für Ihre eigenen Bedürfnisse löschen müssen.

Für diejenigen, die sich wundern, OS X Yosemite hat mit mDNSResponder, damit es keine Notwendigkeit, diese 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 und Details zu den aktuell zwischengespeicherten Daten anzeigen möchten, können Sie die folgenden Befehle verwenden:

Erhalten Sie UDNS-Cache-Statistiken:

sudo discoveryutil udnscachestats

Sie können auch Details zum Multicast-DNS-Cache mit folgenden Informationen abrufen:

sudo discoveryutil mdnscachestats

Beide bieten Details zur Anzahl der zwischengespeicherten DNS-Einträge und bieten einen Bericht, der folgendermaßen aussehen sollte:

UDNS Cache Stats: Cached 962 of 1750

Wenn Sie diese Befehle vor und nach dem Ausführen der Flushcache-Varianten ausführen, werden Sie feststellen, dass sie auf den Cache für 0 Einträge zurückgesetzt werden sollten.

MDNS Cache Stats: lo0: Cached 0 of 2000

Woher weißt du, ob es sich geändert hat?

Wenn Sie nach dem Leeren des Caches feststellen wollen, ob sich ein Name-Server oder eine IP-Adresse tatsächlich geändert hat, können Sie den Befehl 'dig' mit der URL wie folgt verwenden:

dig osxdaily.com

dig ist ähnlich wie nslookup, außer dass es eine bessere Ausgabe und einige weitere Details enthält, inklusive Abfragezeit, dem für den Zugriff auf die Domäne verwendeten DNS-Server und einem Zeitstempel, die bei der Fehlerbehebung von Nameserverproblemen nützlich sein können. Übrigens, wenn die Abfragezeit dafür zu langsam ist, sollten Sie ein Tool wie namebench verwenden, um einen schnelleren DNS-Server für Sie zu finden, oft Google DNS oder OpenDNS.

Kennen Sie einen anderen DNS-Cache-Trick für die neuesten Versionen von OS X? Lassen Sie es uns in den Kommentaren wissen.