Come svuotare la cache DNS su Linux

I computer registrano ogni sito web che visiti in una “cache DNS”. Lo scopo di questa cache è risparmiare tempo quando l’utente tenta di accedere a un dominio; il sistema non deve cercarlo ogni volta manualmente. Nel complesso, la memorizzazione nella cache DNS rende più veloce l’utilizzo di Internet, ed è per questo che praticamente tutti i sistemi operativi da macOS, a Windows a Linux lo fanno.

Tuttavia, per quanto utile sia il caching DNS, a volte possono sorgere problemi, come vedere un vecchio sito web invece di quello nuovo aggiornato, non riuscire a connettersi a un server remoto, ecc. Un ottimo modo per aggirare questo tipo di errori su Linux computer è quello di “svuotare” la cache DNS su Linux. Quando svuoti la cache DNS, aggiornerà il database DNS e risolverà molti dei problemi di risoluzione riscontrati da molti utenti.

Flush DNS – Systemd risolto

A questo punto, la maggior parte degli utenti Linux esegue un sistema operativo in cui è integrato il sistema di inizializzazione Systemd. Sebbene l’argomento di Systemd divida nella comunità, c’è una cosa che tutti sanno: Systemd rende le modifiche e la manutenzione profonde e complicate a livello del sistema operativo molto più semplici di quanto non fosse in passato. Questo fatto è particolarmente vero quando si cancella la cache DNS.

Systemd gestisce la cache DNS in qualcosa noto come “systemd risolto”. È un’utilità standard che trova un modo per la maggior parte dei sistemi operativi Linux. Per determinare se il tuo sistema operativo utilizza Systemd Resolved per gestire DNS e cache DNS sul sistema, avvia una finestra di terminale premendo Ctrl + Alt + T o Ctrl + Maiusc + T sulla tastiera. Successivamente, esegui il comando systemctl status sul file systemd-resolved.service.

systemctl status systemd-resolved.service

Guarda attraverso la stampa di Systemd Resolved nella finestra del terminale e individua la sezione “Attivo” una volta individuata la sezione “Attivo” e assicurati che abbia “attivo (in esecuzione)” accanto ad essa. Se lo fa, il tuo sistema Linux lo sta usando per gestire il suo DNS.

Per cancellare la cache DNS per Systemd Resolved, è necessario utilizzare una delle funzionalità integrate di Systemd Resolved. In particolare, il comando flush caches. Eliminerà immediatamente il DNS e ti rimetterà in funzione!

sudo systemd-resolved --flush-caches

Oppure, se non puoi usare sudo, fai:

su -
systemd-resolved --flushcaches

Dopo aver utilizzato il comando flushcaches, le cache DNS sul sistema dovrebbero essere sufficientemente svuotate. Tuttavia, se dopo aver eseguito questo comando riscontri ancora alcuni problemi, potrebbe essere una buona idea riavviare del tutto il servizio. Per fare ciò, usa il comando systemctl restart.

sudo systemctl restart systemd-resolved.service

Non puoi usare sudo? Accedi come root con su prima di provare a riavviare il servizio con systemd.

su -
systemctl restart systemd-resolved.service

Quando Systemd-Resolved termina il riavvio, tutti i problemi DNS dovrebbero essere risolti!

Flush DNS – DNS Masq

DNSMasq è un’altra popolare soluzione DNS per la piattaforma Linux utilizzata da molti sistemi operativi. Proprio come lo strumento Systemd-Resolved, gli utenti possono interagire con esso con il comando systemctl. Per determinare se il tuo sistema operativo utilizza lo strumento DNSMasq per gestire il DNS, esegui il comando status.

systemctl status dnsmasq.service

Leggere la stampa dello stato che systemd fornisce sullo schermo. Raggiungi la sezione “Attivo” della lettura. Scansionalo e cerca “attivo (in esecuzione)” per confermare che il servizio è attivo. In tal caso, è possibile svuotare immediatamente la cache DNS per DNSMasq utilizzando il comando systemctl restart. Nel terminale, inserisci il seguente comando.

sudo systemctl restart dnsmasq.service

Oppure, per coloro che non possono utilizzare i comandi systemd con sudo, prova ad accedere come Root prima di provare a riavviare.

su -
systemctl restart dnsmasq.service

Flush DNS – NSCD

NSCD è il sistema di cache DNS preferito per la maggior parte dei sistemi operativi Linux basati su RedHat. Pertanto, se stai utilizzando OpenSUSE Linux, CentOS o qualcosa di simile, ci sono buone probabilità che dovrai preoccuparti per svuotare la cache DNS.

Nota: sebbene Fedora Linux sia basato su RedHat, per impostazione predefinita non memorizza una cache DNS.

Per determinare se il tuo sistema operativo Linux utilizza NSCD, dovrai utilizzare il comando status, poiché si tratta di un servizio systemd.

systemctl status nscd.service

L’esecuzione del comando status sul servizio NSCD ti fornirà molte informazioni dettagliate su di esso. Scorri e trova la sezione che dice “Attivo”. Se il tuo sistema lo sta utilizzando, vedrai del testo verde che dice “attivo (in esecuzione)”.

Lo svuotamento della cache DNS con NSCD funziona praticamente come ogni altro sistema di memorizzazione nella cache che funziona con systemd. Tutto ciò che l’utente deve fare è eseguire il comando systemctl restart. Ricaricherà il servizio e cancellerà automaticamente la cache DNS, il che risolverà eventuali problemi DNS che potresti riscontrare.

sudo systemctl restart nscd.service

In alternativa, se il tuo sistema operativo Linux disabilita l’esecuzione dei comandi systemctl con sudo, puoi riavviare il servizio accedendo prima all’account root usando su.

su -

systemctl restart nscd.service