Come svuotare la cache DNS in OS X Yosemite con discoveryutil
Sommario:
- Cancella cache DNS in OS X Yosemite 10.10.4 e OS X 10.10.5
- Cancellazione delle cache DNS in OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Alcuni utenti Mac potrebbero trovarsi in situazioni in cui hanno bisogno di svuotare la cache DNS in OS X affinché un server dei nomi si risolva correttamente o affinché qualche modifica dell'indirizzo DNS venga notata dal proprio computer. Ciò è particolarmente rilevante per gli amministratori di sistema, gli amministratori di rete e gli sviluppatori Web, ma ci sono sicuramente situazioni in cui altri utenti potrebbero aver bisogno di eseguire il dump e reimpostare anche le cache DNS, ad esempio se un utente ha modificato il file /etc/hosts e ha bisogno delle modifiche per avere effetto senza riavviare il Mac.
Gli utenti Mac di lunga data sapranno che il ripristino della cache DNS è cambiato in quasi tutte le versioni di Mac OS X e OS X Yosemite non è diverso, probabilmente a causa della scoperta della sostituzione di mDNSResponder e quindi del ritorno a mDNSResponder ancora una volta. Indipendentemente da ciò, lo svuotamento della cache DNS in Yosemite rimane un comando del terminale, ma differisce leggermente a seconda della versione esatta che stai utilizzando del sistema operativo e in re altà ti consente di cancellare DNS multicast o DNS unicast o entrambi. Probabilmente vorrai cancellare entrambi per buona misura se stai tentando di reimpostare 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 passando alla 10.10.5, inclusa la 10.11, Apple ha abbandonato discoveryd e l'ha sostituito (o meglio, è tornato a) mDNSResponder. Pertanto, per cancellare le cache DNS in OS X Yosemite 10.10.4 e 10.11 El Capitan, e presumibilmente in seguito, la stringa di comando è la seguente:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;say cache svuotata
Questo comando svuota tutte le cache DNS per OS X 10.10.4+.
Gli utenti Mac di lunga data potrebbero ricordare che la stringa di comando è fondamentalmente ciò che funzionava nella versione precedente a Yosemite. Detto questo, le versioni precedenti di OS X Yosemite precedenti alla 10.10.4 utilizzeranno 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, scegli come target 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 cache UDNS
sudo discoveryutil udnsflushcaches
Ancora una volta, premi invio e inserisci la password dell'amministratore quando richiesto. Nota che caches è plurale con quest'ultimo comando, una sottile ma importante differenza di sintassi.
Svuota e ripristina tutte le cache DNS in OS X Yosemite
Puoi anche mettere insieme i due comandi sopra se vuoi, il seguente annuncerà anche verbalmente quando le cache sono state cancellate:
sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed
In effetti le cache MDNS e UDNS sono diverse, ma ho scoperto che per cancellare effettivamente la cache DNS funzionale in OS X Yosemite sono necessari entrambi i comandi. È del tutto possibile che tu debba cancellare l'uno o l' altro solo per le tue esigenze.
Per chi se lo stesse chiedendo, OS X Yosemite ha eliminato mDNSResponder, quindi non è necessario terminare il processo mDNSResponder per aggiornare le cache DNS come nelle versioni precedenti di Mac OS X.
Verifica dei dettagli della cache DNS in OS X Yosemite
Se stai cambiando o stai per cambiare DNS e vuoi vedere alcuni dettagli su ciò che è attualmente memorizzato nella cache, puoi usare i seguenti comandi:
Ottieni le statistiche della cache UDNS:
sudo discoveryutil udnscachestats
Puoi anche recuperare specifiche sulla cache DNS multicast con quanto segue:
sudo discoveryutil mdnscachestats
Entrambi offriranno dettagli sul numero di voci DNS memorizzate nella cache, offrendo un rapporto che dovrebbe assomigliare a questo:
Statistiche cache UDNS: memorizzate nella cache 962 di 1750
Se esegui questi comandi prima e dopo aver eseguito le varianti flushcache, scoprirai che dovrebbero essere ripristinati a 0 voci di cache, in questo modo:
Statistiche cache MDNS: lo0: 0 memorizzati nella cache di 2000
Come fai a sapere se è cambiato?
Dopo aver svuotato la cache, se vuoi determinare se un server dei nomi o un IP è effettivamente cambiato, puoi usare il comando 'dig' con l'URL in questo modo:
dig osxdaily.com
dig è simile a nslookup, tranne per il fatto che ha un output migliore e include alcuni dettagli in più, incluso il tempo della query, il server DNS impostato utilizzato per accedere al dominio e un timestamp, che possono essere tutti prezioso quando si risolvono i problemi del server dei nomi. A proposito, se il tempo di query per questo si rivela 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.