Ogni volta che proviamo ad accedere a un sito Web, viene eseguita una query di risoluzione dei nomi DNS per risolvere il suo indirizzo IP. I sistemi operativi memorizzano questi dati nella cache per evitare di contattare ogni volta i server dei nomi.
Perché cancellare la cache DNS?
A volte l'indirizzo IP di un sito Web viene modificato quando viene spostato su un altro server. In tal caso, se raggiungiamo l'indirizzo IP memorizzato nella cache, il sito Web non funzionerà.
Le voci DNS hanno il valore "Time To Live (TTL)" associato, che indica al servizio di risoluzione dei nomi del sistema operativo quando invalidare la cache DNS.
Ma, se vuoi raggiungere il nuovo indirizzo IP prima della scadenza del TTL, l'unica soluzione è svuotare la cache DNS.
Servizio Ubuntu per la risoluzione dei nomi DNS
Il systemd-resolved.service
viene utilizzato per eseguire le query DNS e mantenere la cache DNS.
Possiamo usare il seguente comando per verificarne lo stato.
# sudo systemctl status systemd-resolved
Possiamo eseguire il seguente comando per controllare le statistiche della cache DNS.
# sudo systemd-resolve --statistics
C'è una leggera differenza nel servizio e nel nome del comando. Il nome del comando non ha l'ultimo carattere "d".
Come cancellare la cache DNS su Ubuntu?
Possiamo eseguire il seguente comando per svuotare la cache DNS su Ubuntu.
# sudo systemd-resolve --flush-caches
Quindi, controlla di nuovo le statistiche per confermare che la "Dimensione cache corrente" è 0.
Riavvio del servizio risolto da systemd per cancellare tutte le statistiche della cache DNS
Il comando di svuotamento DNS non cancella i risultati della cache e perde le statistiche. Se vuoi cancellare tutte le statistiche della cache, devi riavviare il servizio risolto da systemd.
# sudo systemctl restart systemd-resolved
Conclusione
È molto facile svuotare la cache su Ubuntu. Il comando per svuotare il DNS può essere eseguito dall'utente root o da un utente con privilegi sudo.