Come svuotare la cache DNS su macOS (Sequoia, Sonoma, Ventura)
Scopri come cancellare la cache DNS su macOS con un solo comando Terminale. Risolve record DNS obsoleti dopo modifiche ai domini, reindirizzamenti non funzionanti e problemi di risoluzione strani.
I problemi di cache DNS sono facili da diagnosticare male. Aggiorni i record di un dominio, aspetti la propagazione, poi apri un browser e il vecchio sito si carica ancora. O un sito che funzionava smette improvvisamente di connettersi. Il server è a posto. La tua connessione è a posto. Il problema è che il tuo Mac ha memorizzato in cache una risposta DNS obsoleta e la sta ancora servendo.
Svuotare la cache DNS dice a macOS di dimenticare quelle risposte memorizzate e di chiedere di nuovo da zero. Richiede un solo comando e circa cinque secondi.
Perché il tuo Mac memorizza i record DNS
Ogni volta che visiti un sito web, il tuo Mac deve tradurre il nome del dominio (come example.com) in un indirizzo IP. Questa traduzione passa attraverso un processo: il tuo Mac controlla prima la sua cache DNS locale, poi chiede a un resolver DNS (di solito quello del tuo ISP o uno pubblico come 1.1.1.1), e se nessuno dei due ha la risposta, il resolver contatta il nameserver autorevole per quel dominio.
La memorizzazione nella cache è normalmente una buona cosa. Rende la navigazione più veloce perché il tuo Mac salta l’intera catena di ricerca per i siti che hai visitato di recente. Il problema emerge quando i record DNS cambiano e la risposta memorizzata dal tuo Mac punta ancora alla vecchia destinazione. Il TTL (time to live) su un record DNS dice ai resolver per quanto tempo memorizzarlo in cache, ma macOS non lo rispetta sempre con precisione.
Quando un flush DNS è effettivamente utile
Non ogni problema di rete è un problema di cache DNS. Un flush aiuta quando:
- Hai appena modificato i record DNS di un dominio e il tuo Mac sta ancora risolvendo al vecchio IP
- Un sito reindirizza nel posto sbagliato anche se la modifica DNS si è propagata ovunque altrove
- Hai cambiato da una VPN o da una configurazione DNS personalizzata e alcuni domini si risolvono in modo errato
- Un dominio che esiste sicuramente restituisce “server not found” sul tuo Mac ma si risolve bene altrove
Se un sito è solo lento, o le connessioni scadono, o ricevi errori TLS, svuotare il DNS probabilmente non aiuterà. Questi sono problemi diversi.
Il comando per svuotare la cache DNS su macOS
Il comando è lo stesso per le versioni recenti di macOS. Apri il Terminale (trovalo in Applicazioni > Utility, o cerca con Spotlight) ed esegui:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Digita la password quando richiesto. Il Terminale non mostrerà i caratteri mentre digiti, il che è normale. Non vedrai alcun output di conferma quando ha successo, il che è altrettanto normale.
Questo comando funziona su:
- macOS Sequoia (15.x)
- macOS Sonoma (14.x)
- macOS Ventura (13.x)
Funziona anche su Monterey e Big Sur se sei ancora su quelle versioni.
Il comando fa due cose. dscacheutil -flushcache cancella la cache dei servizi di directory, che include il DNS. killall -HUP mDNSResponder invia un segnale al processo di risposta DNS di macOS, dicendogli di ricaricarsi. Hai bisogno di entrambi. Eseguire solo dscacheutil era sufficiente su versioni più vecchie di macOS ma ha smesso di esserlo anni fa.
Il prefisso sudo è necessario perché si tratta di operazioni a livello di sistema. Senza di esso, entrambi i comandi falliranno silenziosamente o restituiranno un errore di permesso.
Verificare che il flush abbia funzionato
Dopo il flush, apri una nuova scheda del browser e visita il dominio con cui avevi problemi. Se il problema era la cache obsoleta, dovresti vedere il sito corretto.
Per un controllo più definitivo, puoi fare una ricerca DNS e confermare che l’indirizzo IP che ricevi corrisponda a quello che ti aspetti. Lo strumento Ricerca DNS di NetUtil rende questo veloce: apri l’app, vai su Ricerca DNS, digita il dominio ed esegui la query. Il risultato mostra il record A (indirizzo IPv4) o AAAA (IPv6) che il tuo Mac sta ora risolvendo. Se l’IP corrisponde al tuo record DNS aggiornato, il flush ha funzionato e il nuovo record viene acquisito.
Se vedi il vecchio IP, il problema non è la tua cache locale. Si tratta probabilmente di una propagazione ancora in corso attraverso i resolver upstream, o la modifica DNS non ha ancora preso pieno effetto. In tal caso, aspetta qualche minuto e riprova.
Puoi anche usare il Terminale direttamente con nslookup example.com o dig example.com per controllare l’IP risolto.
Un flush, fatto
Svuotare il DNS su macOS è una riga di comando che richiede secondi. Il risultato non persiste in modo visibile, cancella semplicemente le risposte in cache obsolete in modo che il tuo Mac riparta da zero. Se la modifica DNS che stai aspettando si è propagata, stai risolvendo correttamente immediatamente dopo. Se non lo è, il flush non causa comunque alcun danno, e puoi eseguirlo di nuovo una volta che la propagazione è al passo.
NetUtil include uno strumento Ricerca DNS insieme a Ping, Traceroute, Whois, Scansione porte e Netstat. È un’app macOS gratuita che sostituisce Network Utility rimossa da Apple in macOS Big Sur.