Flush DNS su Linux: SystemD-Resolved, NetworkManager e NSCD

Pubblicato: 2025-09-26

Quando 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 o BIND è 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 e nslookup :strumenti di debug per testare i record DNS in tempo reale.
  • host :semplice e diretto per interrogare i record DNS senza interruzione della cache.
Perché cambiare keybinds in Survivalcraft 2?

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.