Questa breve guida spiega tutti i modi possibili per cancellare o svuotare la cache DNS nei sistemi operativi Linux. Per chi se lo chiedesse, cache DNS (o talvolta chiamato cache del resolver DNS ) è un piccolo database temporaneo gestito dai sistemi operativi. Memorizza le informazioni su tutti i siti Web visitati e altri domini Internet. In altre parole, la cache DNS contiene ricerche DNS recenti. Quando visiti lo stesso sito Web più volte, il sistema operativo recupera i record DNS di quel sito Web dal database della cache DNS locale anziché dal server DNS pubblico effettivo. Quindi la memorizzazione nella cache DNS migliora il tempo di caricamento del sito Web e riduce il consumo di larghezza di banda/CPU del server DNS di origine.
Perché dovresti svuotare o svuotare la cache DNS?
Potrebbero esserci molte ragioni per svuotare la cache DNS locale. Ad esempio, potresti aver personalizzato il tuo sito Web o modificato le impostazioni DNS per il tuo dominio o stai riscontrando problemi di connettività Internet. In questi casi, se tenti di visitare il sito, è probabile che il tuo sistema operativo ottenga la versione memorizzata nella cache del sito dalla cache DNS locale. Pertanto, la cancellazione della cache DNS locale eliminerà tutte le voci dal database della cache DNS locale e costringerà il tuo sistema a ripopolare la cache DNS con nuove voci dal server DNS effettivo e visualizzerà la nuova copia del sito Web.
Cancella o svuota la cache DNS in Linux
Per impostazione predefinita, la cache DNS non è installata e/o abilitata a livello di sistema operativo in Linux. Invece, applicazioni come i browser Web mantengono la propria cache interna. Quindi puoi semplicemente svuotare la cache del browser o riavviarlo per risolvere i problemi di connettività Internet, risolvere i problemi di spoofing DNS (ad es. DNS cache poisoning) e risolvere i problemi di contenuto obsoleto. Se la tua distribuzione Linux utilizza servizi di memorizzazione nella cache DNS, devi cancellarli manualmente come descritto di seguito. Esistono diversi modi per svuotare la cache DNS. Varia a seconda della distribuzione Linux e del servizio di memorizzazione nella cache DNS in uso. Qui ho incluso le istruzioni per cancellare i servizi di cache DNS più comunemente usati in Linux.
1. Cancella il servizio di cache DNS con risoluzione di sistema
Risoluzione di sistema è un servizio systemd che fornisce un servizio di memorizzazione nella cache DNS a livello di sistema per le applicazioni locali. Fa parte del pacchetto systemd che è installato per impostazione predefinita. Il servizio risolto da Systemd è abilitato per impostazione predefinita nella maggior parte dei moderni sistemi operativi Linux come Fedora e Ubuntu. Innanzitutto, controlliamo se il servizio risolto da systemd è attivo o non utilizza il comando:
$ sudo systemctl is-active systemd-resolved.service
Se il servizio risolto di sistema è abilitato, vedrai "attivo" nell'uscita. Se non è attivo, stamperà "inattivo" .
Come puoi vedere nell'output sopra, il servizio risolto da systemd è attivo nel mio sistema.
Vediamo le statistiche del servizio di caching systemd-resolve con il comando:
$ sudo systemd-resolve --statistics
Risultato di esempio:
DNSSEC supported by current servers: no
Transactions
Current Transactions: 0
Total Transactions: 3117
Cache
Current Cache Size: 58
Cache Hits: 1248
Cache Misses: 1891
DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0
Come puoi vedere, l'output sopra elenca il numero totale di dimensioni della cache attuali, hit e cache perse.
Per svuotare la cache di systemd-resolve, esegui:
$ sudo systemd-resolve --flush-caches
In caso di esecuzione riuscita, non vedrai alcun output.
Ora, controlla le statistiche di systemd-resolve per verificare se la cache DNS locale è stata cancellata o meno.
$ sudo systemd-resolve --statistics
Ora vedrai la dimensione della cache corrente pari a zero.
DNSSEC supported by current servers: no
Transactions
Current Transactions: 0
Total Transactions: 3155
Cache
Current Cache Size: 0
Cache Hits: 1255
Cache Misses: 1922
DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0
2. Cancella il servizio di cache DNS Nscd
Nscd , abbreviazione di n sono s servizio c dolore d aemon, è un demone di memorizzazione nella cache che fornisce una cache per le richieste di servizi di nomi più comuni. È il servizio di memorizzazione nella cache preferito per la maggior parte dei sistemi basati su Redhat. Se il tuo sistema Linux utilizza il servizio di memorizzazione nella cache nscd, puoi cancellare o svuotare il servizio di memorizzazione nella cache DNS locale semplicemente riavviando il servizio nscd come di seguito:
$ sudo systemctl restart nscd.service
Oppure,
$ sudo service nscd restart
Oppure,
$ sudo /etc/init.d/nscd restart
3. Cancella il servizio di memorizzazione nella cache DNS con nome/associazione
Dominio del nome Internet di Berkeley (a breve BIND ) è il server DNS open source più popolare in uso oggi. Se stai utilizzando BIND per memorizzare nella cache le query DNS, utilizza i seguenti comandi per cancellare/svuotare il servizio di memorizzazione nella cache BIND in Linux:
$ sudo systemctl restart named
Oppure,
$ sudo service named reload
Oppure,
$ sudo /etc/init.d/named restart
Oppure,
$ sudo rndc reload
Oppure,
$ sudo rndc exec
L'ultima versione BID consente di svuotare la cache DNS anche per un dominio specifico. Il comando seguente cancella la cache DNS per il dominio ostechnix.com:
$ sudo rndc flushname ostechnix.com
Puoi anche svuotare la cache DNS per intere zone LAN e WAN come di seguito:
$ sudo rndc flush lan
$ sudo rndc flush wan
4. Cancella il servizio di memorizzazione nella cache DNS DNS
Dnsmasq è un leggero server DNS DHCP e cache con supporto per server PXE e TFTP. È adatto a router e firewall con risorse limitate per la gestione di piccole reti.
Se stai utilizzando dnsmasq come servizio di memorizzazione nella cache, puoi svuotare il servizio di memorizzazione nella cache DNS locale come di seguito:
$ sudo systemctl restart dnsmasq
Un altro modo per svuotare la cache DNS locale in Ubuntu e altre varianti di Ubuntu come Linux Mint è eseguire il comando seguente:
$ sudo /etc/init.d/dns-clean restart
Spero che questo aiuti.
Lettura correlata:
- Installa e configura il server DNS in Ubuntu 16.04 LTS