Come svuotare il DNS in Linux

fatmawati achmad zaenuri/Shutterstock.com

Puoi svuotare la cache DNS su un computer Linux basato su systemd con il comando “resolvectl flush-caches”. Se usi dnsmasq, puoi cancellare il DNS usando invece “sudo killall -HUP dnsmasq”.

La tua esperienza di navigazione in Internet è lenta sul tuo dispositivo Linux o i siti web che stai visitando sono obsoleti o il sito web sbagliato? ? Parliamo dello svuotamento della cache DNS su Linux e di come sapere se è davvero necessario.

Sommario

Cosa sono le cache DNS?
Il computer utilizza una cache DNS locale?
Revisione della cache DNS
Come cancellare la cache DNS su Linux
Come svuotare la cache dnsmasq su Linux
Lavaggio, con successo

Cosa sono le cache DNS?

< p>Il servizio dei nomi di dominio è quel tocco di magia che converte i nomi in numeri. Prende i nomi della rete del dispositivo e i nomi dei siti Web e cerca i loro indirizzi IP. La rete può quindi utilizzare l'indirizzo IP per indirizzare correttamente il traffico a tali dispositivi o siti.

Queste ricerche, note come richieste, non avvengono istantaneamente. È coinvolto un periodo di tempo piccolo e finito. Le richieste DNS Internet possono richiedere l'esecuzione di query sui server DNS precursori, sui server dei nomi principali, sui server dei domini di primo livello e sui server dei nomi autorevoli. Le richieste DNS sono veloci, ma per renderle ancora più veloci, le risposte alle recenti richieste DNS vengono memorizzate nella cache sui server precursori DNS.

Se la risposta a una richiesta DNS si trova nella cache del server precursore, non è necessario contattare altri server. La risposta viene restituita dalla cache del server precursore. Allo stesso modo, una piccola cache viene mantenuta dal tuo router a banda larga a casa. Se richiedi un dispositivo di rete locale utilizzando il nome del dispositivo di rete, il tuo router fornisce l'indirizzo IP. Può anche memorizzare nella cache le risposte che ha ricevuto da server DNS esterni.

Di solito, le reti e i computer Linux sono configurati per utilizzare servizi DNS esterni, forniti dal tuo provider di servizi Internet o da un servizio gratuito come OpenDNS o Google DNS. Ci sono buoni motivi per cui alcune persone gestiscono il proprio server DNS, ma la maggior parte di noi no. Tuttavia, il tuo computer Linux, anche se non esegue un server DNS, può opzionalmente memorizzare nella cache i risultati delle richieste DNS.

RELATEDCos'è il DNS Cache Poisoning?

Il problema con l'utilizzo dei dati memorizzati nella cache è che l'intera cosa si basa sul presupposto che nessuno dei dettagli memorizzati nella cache sia cambiato da quando sono stati memorizzati nella cache. Se i dettagli sono cambiati, le informazioni che ricevi non saranno aggiornate.

Se una voce della cache o l'intera cache viene danneggiata, otterrai prestazioni instabili nel migliore dei casi e vulnerabilità di sicurezza nel peggiore dei casi . Questo è il momento in cui vorrai esaminare “flushing” o svuotando la cache DNS.

Il tuo computer utilizza una cache DNS locale?

Alcuni dei nostri computer di prova avevano la cache DNS locale attiva, mentre per altri era disattivata. Era spento sul nostro computer Manjaro 21, ma era attivato per impostazione predefinita su Fedora 37 e Ubuntu 22.10.

Per determinare se il tuo computer Linux sta memorizzando nella cache le richieste DNS, usa l'opzione is-active di systemctl comando. Il demone che gestisce la cache DNS è il gestore della risoluzione dei nomi di rete systemd, noto come systemd-resolved.

systemctl is-active systemd-resolved

Se la risposta è “attiva”, è in corso la memorizzazione nella cache DNS . Se la risposta è “inattiva”, non lo è. Su questo particolare computer, è attivo. Possiamo usare il comando resolvectl con l'opzione statistics per vedere quanti record ci sono nella cache.

resolvectl statistics

Possiamo vedere che ci sono 330 voci nella cache DNS di questo computer.

RELAZIONATO: Come terminare i processi dal terminale Linux

Revisione della cache DNS

La revisione delle voci della cache DNS non è un prerequisito per svuotare la cache e, se non sei interessato a farlo, puoi saltare l'intero passaggio. A volte, però, può essere informativo. Potresti vedere voci criptate che indicano danneggiamento o potresti vedere messaggi di errore relativi a problemi di indirizzamento del dispositivo sulla tua rete.

Ora, non c'è un modo semplice per vedere queste voci. Possiamo farlo, ma dobbiamo essere un po' creativi. USR1, o segnale definito dall'utente numero uno, è un segnale che può essere inviato dai comandi kill e killall. Questo segnale non ha un significato predefinito. Le applicazioni sono libere di ignorare questo segnale o di reagire in qualsiasi modo gli sviluppatori abbiano implementato.

Il demone risolto da systemd reagisce a USR1 scrivendo la sua cache nei log di sistema. Possiamo quindi utilizzare il comando journalctl per filtrare le voci DNS.

Useremo il comando killall con USR1 per inviare il segnale al demone risolto da systemd. Tieni presente che, sebbene stiamo utilizzando il comando killall, il demone risolto da systemd continua a essere eseguito. Questo non è un segnale di terminazione che stiamo inviando.

sudo killall -USR1 systemd-resolved

Ora utilizzeremo il comando journalctl con l'opzione -u (filter by systemd unit) per estrarre le voci di registro che sono state generate da systemd-resolved . Reindirizzeremo l'output in un file di testo chiamato “dns.txt.”

sudo journalctl -u systemd-resolved > dns.txt

Utilizzeremo il visualizzatore di file meno per visualizzare il contenuto del file.

less dns.txt

Potrai trovare le mappature memorizzate nella cache tra nomi di dominio e indirizzi IP scorrendo e cercando nel testo.

Possiamo vedere una voce per Google che ha un indirizzo IP di 216.58.212.196. Puoi verificarlo inserendo l'indirizzo IP in un browser web. Dovresti vedere la home page della ricerca di Google.

Come cancellare la cache DNS su Linux

Lo svuotamento della cache rimuove tutte le voci e avvia nuovamente il processo di raccolta. Se ce ne sono, questo rimuove forzatamente le voci errate e corrotte dalla cache.

Il comando è semplice; usiamo resolvectl con l'opzione flush-caches.

resolvectl flush-caches

Siamo tornati silenziosamente alla riga di comando. Per confermare che qualcosa è effettivamente accaduto, controlleremo nuovamente le statistiche della cache DNS.

statistiche resolvectl

Possiamo vedere che la dimensione della cache è ridotta a zero. Aumenterà nel tempo man mano che si accumulano nuove voci.

Come svuotare la cache dnsmasq su Linux

L'applicazione dnsmasq fornisce un Cache DNS e un server DHCP. È popolare tra gli utenti che desiderano eseguire il proprio server DNS, specialmente su installazioni non di sistema.

Svuotare la cache DNS dnsmasq è facile. Dobbiamo inviare il segnale SIGHUP, che dice al demone dnsmasq di reinizializzare efficacemente. In questo modo si cancella la cache DNS. Per inviare il segnale utilizziamo il comando killall con il flag -HUP e il nome dell'applicazione.

sudo killall -HUP dnsmasq

Rosso, con successo

Ovviamente, se il tuo computer non sta memorizzando nella cache, non c'è niente che devi controllare.

Se sta memorizzando nella cache le richieste DNS ma tutto funziona correttamente, puoi ignorarlo anche. Ma se riscontri aggiornamenti lenti o sporadici delle pagine web durante la navigazione sul Web o visualizzi pagine web sbagliate, probabilmente è il momento giusto per svuotare la cache DNS.

Linux Comandi File tar · pv · cat · tac · chmod · grep ·  diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · unisciti a · jq · piega · uniq · journalctl · tail · stat · ls ·fstab · echo · meno · chgrp · chown · rev · guarda · stringhe · digita · rinomina · zip · decomprimi · monta · smonta · installa · fdisk · mkfs ·< /strong> rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm Process alias · schermo · in alto · bello · renice · avanzamento · strace · systemd · tmux ·chsh · cronologia · su · batch · gratuito · che · dmesg · chfn · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · timeout ·< /strong> muro ·· uccidi · dormi · sudo · su · ora · groupadd · usermod · gruppi · lshw · spegnimento · riavvio · arresto · spegnimento · passwd · lscpu · crontab · date · bg · fg Rete netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · chi · whoami ·· iptables · ssh-keygen · ufw

RELAZIONATO: I migliori laptop Linux per sviluppatori e appassionati


Posted

in

by

Tags: