Come svuotare DNS Cache in OS X Yosemite con discoveryutil

Alcuni utenti Mac possono riscontrare situazioni in cui è necessario svuotare la cache DNS in OS X affinché un server dei nomi possa risolversi correttamente o che alcune modifiche dell'indirizzo DNS vengano notate dal proprio computer. Ciò è particolarmente rilevante per gli amministratori di sistema, gli amministratori di rete e gli sviluppatori Web, ma ci sono certamente situazioni in cui altri utenti potrebbero dover scaricare e ripristinare anche le cache DNS, come se un utente avesse modificato il file / etc / hosts e avessero bisogno delle modifiche avere effetto senza riavviare il Mac.

Gli utenti Mac di lunga data sapranno che la reimpostazione della cache DNS è cambiata in quasi tutte le versioni di Mac OS X, e OS X Yosemite non è diverso, probabilmente a causa della discoveryy che sostituisce mDNSResponder e quindi di nuovo a mDNSResponder. Indipendentemente da ciò, lo svuotamento della cache DNS in Yosemite rimane un comando terminale, ma differisce leggermente a seconda della versione esatta che si sta utilizzando del sistema operativo e in realtà consente di cancellare sia il DNS multicast o il DNS unicast o entrambi. Probabilmente vorrai cancellare entrambi per buona misura se stai provando a ripristinare tutte le cache DNS sul Mac.

Cancella cache DNS in OS X Yosemite 10.10.4 e OS X 10.10.5

Da OS X 10.10.4 proseguendo fino a 10.10.5, incluso 10.11, Apple ha abbandonato la discovery e l'ha sostituita (o meglio, ripristinata) mDNSResponder. Pertanto, per cancellare le cache DNS in OS X Yosemite 10.10.4 e 10.11 El Capitan, e presumibilmente in poi, la stringa di comando è la seguente:

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

Questo comando svuota tutte le cache DNS per OS X 10.10.4+.

Gli utenti Mac di vecchia data possono ricordare che la stringa di comando è fondamentalmente ciò che ha funzionato nella versione precedente a Yosemite. Detto questo, le versioni precedenti di OS X Yosemite precedenti alla 10.10.4 useranno una stringa di comando diversa discussa di seguito.

Cancellazione delle cache DNS in OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Dovrai utilizzare il Terminale per reimpostare la cache, puoi trovare l'app Terminale in / Applicazioni / Utility / o avviarla con Spotlight. Per cancellare completamente tutte le cache DNS nell'ultima versione di OS X, indirizzare sia MDNS (Multicast DNS) che UDNS (Unicast DNS) con due comandi diversi.

Cancella cache MDNS

sudo discoveryutil mdnsflushcache

Premi Invio e inserisci la password dell'amministratore quando richiesto.

Cancella la cache UDNS

sudo discoveryutil udnsflushcaches

Ancora una volta, premi Invio e inserisci la password dell'amministratore quando richiesto. Nota che le cache sono al plurale con quest'ultimo comando, una differenza di sintassi sottile ma importante.

Lavora e ripristina tutte le cache DNS in OS X Yosemite

Puoi anche stringere insieme i due comandi precedenti, se lo desideri, il seguente annuncio verrà anche annunciato verbalmente quando le cache saranno state cancellate:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

Infatti le cache MDNS e UDNS sono diverse, ma ho trovato che per la cache DNS funzionale effettivamente cancellare in OS X Yosemite sono necessari entrambi i comandi. È del tutto possibile che sia necessario solo cancellare l'uno o l'altro per le proprie esigenze.

Per coloro che si chiedono, OS X Yosemite ha eliminato mDNSResponder, quindi non c'è bisogno di uccidere quel processo mDNSResponder per aggiornare le cache DNS come nelle precedenti versioni di Mac OS X.

Controllo dei dettagli della cache DNS in OS X Yosemite

Se stai cambiando o stai per cambiare DNS e vuoi vedere alcuni dettagli su cosa è attualmente memorizzato nella cache, puoi usare i seguenti comandi:

Ottieni statistiche cache UDNS:

sudo discoveryutil udnscachestats

È inoltre possibile recuperare specifiche sulla cache DNS multicast con quanto segue:

sudo discoveryutil mdnscachestats

Entrambe offrono dettagli sul numero di voci DNS memorizzate nella cache, offrendo un rapporto che dovrebbe apparire come questo:

UDNS Cache Stats: Cached 962 of 1750

Se esegui questi comandi prima e dopo aver eseguito le varianti di flushcache, scoprirai che dovrebbero essere ripristinati alla cache di 0 voci, in questo modo:

MDNS Cache Stats: lo0: Cached 0 of 2000

Come fai a sapere se è cambiato?

Dopo aver svuotato la cache, se si desidera determinare se un server dei nomi o un IP è effettivamente cambiato, è possibile utilizzare il comando 'dig' con l'URL in questo modo:

dig osxdaily.com

dig è simile a nslookup, eccetto per il fatto che ha un output migliore e alcuni altri dettagli inclusi, tempo di query incluso, il server DNS impostato utilizzato per accedere al dominio e un timestamp, che può essere utile quando si risolvono i problemi del server dei nomi. A proposito, se il tempo di query per questo risulta lento, dovresti utilizzare uno strumento come namebench per trovare un server DNS più veloce per te, spesso Google DNS o OpenDNS.

Conosci un altro trucco della cache DNS per le ultime versioni di OS X? Fateci sapere nei commenti.