Flush DNS su Linux: SystemD-Resolved, NetworkManager e NSCD
Pubblicato: 2025-09-26Quando il sistema Linux si comporta stranamente durante l'accesso ai siti Web, o risolve domini errati, potrebbe essere il momento di scaricare la cache DNS. Come la cache del browser, la cache DNS memorizza dati temporanei che aiutano a migliorare la velocità di navigazione Web e ridurre la latenza. Tuttavia, quando questa cache diventa obsoleta o corrotta, può portare a problemi di connettività. Ciò è particolarmente importante nello sviluppo o negli scenari di networking in cui i nomi di dominio cambiano frequentemente. In questo articolo, esploreremo come scaricare la cache DNS nei sistemi Linux che utilizzanoSystemD-Resolved,NetworkManageroNSCD(Nome Service Cache Daemon).
Comprensione della memorizzazione nella cache DNS in Linux
La memorizzazione nella cache DNS è un meccanismo che memorizza le ricerche DNS a livello locale. Ciò impedisce a ripetute query per lo stesso nome di dominio di risentire ai server DNS, il che può migliorare le prestazioni. Tuttavia, Linux distribuisce le responsabilità di risoluzione DNS in modo diverso a seconda dei componenti o dei servizi del sistema in uso.
Nelle distribuzioni moderne, è molto probabile che tu incontri uno dei seguenti sistemi di risolutore:
- SystemD-Resolted: comune in distribuzioni più recenti come Ubuntu 18.04+ e Fedora.
- NetworkManager: lavora spesso con SystemD-Resolved o un altro backend.
- NSCD(Nome Service Cache Daemon): trovato in alcuni tradizionali sistemi Linux UNIX e Enterprise.
Ognuno di questi sistemi gestisce la cache DNS in modo diverso, il che significa che anche il metodo per scaricare la cache varia. Attraversiamo ciascuno in dettaglio.
Lavare la cache DNS in risoluto a sistema
SystemD-Resolvedè un servizio fornito daSystemDper gestire le query e la memorizzazione nella cache DNS. Sta diventando lo standard in molte distribuzioni Linux tradizionali. Puoi verificare se il sistema utilizza SystemD risolto in esecuzione:
systemctl is-active systemd-resolved
Se è attivo, procedere a scaricare la cache DNS con il seguente comando:
sudo systemd-resolve --flush-caches
Per confermare che la cache è stata cancellata o visualizzare le statistiche correnti, è possibile utilizzare:
systemd-resolve --statistics
Questo comando mostra metriche come il numero di voci della cache, colpi e mancati, aiutandoti a garantire che il lavaggio della cache abbia avuto successo.

Configurazione e debug Risultati SystemD
Per gli utenti avanzati, la configurazione del servizio risiede in /etc/systemd/resolved.conf
. È possibile regolare le impostazioni come i server DNS o i comportamenti di fallback. Se si verificano problemi di DNS persistenti, prendi in considerazione il controllo dei registri journalctl
perSystemD-Resolved:
journalctl -u systemd-resolved
Questo può essere incredibilmente utile quando si risolvono i problemi di risoluzione del dominio derivanti dall'errore di configurazione di DNS o dall'avvelenamento della cache.
Utilizzo di NetworkManager per aggiornare DNS
NetworkManager è un'utilità che gestisce automaticamente la configurazione di rete in molte distribuzioni Linux, inclusi ambienti desktop come GNOME e KDE. Mentre NetworkManager stesso non memorizza la cache DNS, spesso determina quale servizio (come SystemD-Resolved) gestisce DNS.
Per aggiornare le impostazioni DNS utilizzando NetworkManager, è possibile riavviare il servizio:
sudo systemctl restart NetworkManager
Questo metodo costringe indirettamente a una risoluzione DNS riavviando connessioni e servizi correlati. Se vuoi diventare più granulare, puoi anche disabilitare e riabilitare le interfacce di rete specifiche. Per esempio:
nmcli networking off nmcli networking on
Oppure, per un dispositivo specifico:
nmcli device disconnect eth0 nmcli device connect eth0
Questo metodo è particolarmente utile quando si passa tra reti o risoluzione dei problemi di propagazione del dominio dopo le modifiche del DNS.
Ispezionando le impostazioni DNS con NMCLI
Se si desidera ispezionare quale DNS sta usando il tuo manager di rete, il comando:
nmcli dev show | grep DNS
Elencherà gli indirizzi DNS attualmente attivi. Ciò è utile quando si verificano che le impostazioni DNS da DHCP o indirizzamento statico siano applicate correttamente.


Flushing DNS con NSCD (Nome Service Cache Daemon)
Mentre è meno comune nei moderni sistemi Desktop Linux,NSCDè ancora utilizzato in ambienti aziendali e legacy. Cache è cache le richieste di servizio per accelerare la risoluzione per nomi host, password e altri oggetti di database. Innanzitutto, assicurati che sia installato e funzionante:
sudo systemctl status nscd
Se è attivo, sciacquare la cache DNS è semplice:
sudo nscd -i hosts
Questo comando dice a NSCD di invalidare (-I) le sue voci nella cache per i nomi host. Se desideri lavare tutto, non solo le voci DNS, usa:
sudo nscd -I
Ciò ricaricherà l'intera configurazione e cancella i dati memorizzati nella cache per tutti i database supportati.
Configurazione e monitoraggio NSCD
NSCD è configurato tramite /etc/nscd.conf
. È possibile abilitare o disabilitare la memorizzazione nella cache per vari tipi di dati come:
- passwd
- gruppo
- ospiti
Il file è ben commentato, rendendolo ragionevolmente accessibile. Il monitoraggio dei registri tramite journalctl -u nscd
consente di tenere d'occhio il suo comportamento e identificare potenziali problemi.
Come determinare quale meccanismo di memorizzazione nella cache stai usando
Non sei sicuro su quale sistema si basi la tua macchina Linux per la memorizzazione nella cache DNS? Ecco alcuni rapidi controlli:
-
systemd-resolve --status
restituisce l'output significativo? In caso affermativo, il sistema probabilmente utilizza SystemD-risolto. -
nscd -g
fornisce voci del tavolo? Potresti usareNSCD. -
resolvectl
funziona sul tuo sistema? Questo è un buon segnale perSystemD-Risold. -
dnsmasq
oBIND
è installato? Ciò indica configurazioni più avanzate che richiedono passaggi separati.
Identificare il risolutore DNS in uso è cruciale prima di tentare di scaricare o eseguire il debug della cache DNS, poiché il lavaggio della cache errata non risolverà il problema.
Perché il lavaggio regolarmente DNS è benefico
Mentre la memorizzazione nella cache DNS migliora le prestazioni, può anche essere problematico. Ecco perché e quando potresti voler scaricarlo:
- Dopo aver modificato le voci DNS:le cache non fluite possono indicare vecchi server IPS o DNS.
- Risoluzione dei problemi di connettività:la cache corrotta o avvelenata porta a risoluzioni fallite.
- Scenari dell'era dello sviluppo:quando si testano una migrazione del dominio o si passa tra server di stadiazione e produzione.
Il lavaggio regolarmente della cache DNS aiuta a mantenere la salute del sistema ed evita problemi di accesso al sito imprevisti, specialmente per utenti di alimentazione, amministratori di sistema e sviluppatori.
Suggerimenti e strumenti avanzati
Se stai lavorando in un ambiente complesso o hai bisogno di un maggiore controllo sulla risoluzione DNS, ecco alcuni strumenti e suggerimenti bonus:
- DNSMASQ:funge da spedizioniere DNS leggero con capacità di memorizzazione nella cache.
- Bind (denominato):server DNS di livello aziendale con memorizzazione nella cache della zona sintonizzabile e scadenza personalizzata.
dig
enslookup
:strumenti di debug per testare i record DNS in tempo reale.host
:semplice e diretto per interrogare i record DNS senza interruzione della cache.

Pensieri finali
Farus la cache DNS in Linux è un compito semplice: una volta sai quale strumento o servizio gestisce la risoluzione DNS sul sistema. Sia che tu stia utilizzandoSystemD-RESOLUSED,NetworkManageroNSCD, capendo come ciascuno opera ti armato con le competenze per risolvere rapidamente lo scenario di risoluzione dei problemi relativi al DNS. Mantenere la cache DNS pulita non è solo una buona igiene: è essenziale per una risoluzione affidabile e accurata del nome di dominio nel panorama di networking dinamico di oggi.