Flush DNS pe Linux: SystemD-Resolved, NetworkManager și NSCD
Publicat: 2025-09-26Când sistemul dvs. Linux se comportă ciudat în timp ce accesați site -urile web - sau rezolvă domeniile incorecte - ar putea fi momentul să spălați memoria cache DNS. La fel ca memoria cache a browserului dvs., DNS Cache stochează date temporare care ajută la îmbunătățirea vitezei de navigare pe web și la reducerea latenței. Cu toate acestea, atunci când această cache devine depășită sau coruptă, poate duce la probleme de conectare. Acest lucru este deosebit de important în scenariile de dezvoltare sau de rețea în care numele de domeniu se schimbă frecvent. În acest articol, vom explora cum să spălați cache-ul DNS în sistemele Linux care utilizeazăSystemD-Resolved,NetworkManagersauNSCD(Daemon Cache Service).
Înțelegerea cache -ului DNS în Linux
Cachingul DNS este un mecanism care stochează căutările DNS la nivel local. Acest lucru împiedică întrebările repetate pentru același nume de domeniu să fie resentit la serverele DNS, care pot îmbunătăți performanța. Cu toate acestea, Linux distribuie responsabilitățile de rezoluție DNS în mod diferit în funcție de componentele sau serviciile de sistem utilizate.
În distribuțiile moderne, este cel mai probabil să întâlnești unul dintre următoarele sisteme de rezolvare:
- Systemd-Resolved: Common în distribuții mai noi precum Ubuntu 18.04+ și Fedora.
- NetworkManager: Adesea funcționează cu SystemD-rezolvat sau cu un alt backend.
- NSCD(Daemon de cache de servicii de nume): găsit în unele sisteme tradiționale UNIX și Enterprise Linux.
Fiecare dintre aceste sisteme gestionează cache -ul DNS diferit, ceea ce înseamnă că metoda de spălare a cache -ului variază, de asemenea, variază. Să trecem prin fiecare în detaliu.
Cache DNS înroșind în sistemul-rezolvat
SystemD-Resolvedeste un serviciu furnizat deSystemDpentru gestionarea interogărilor DNS și a cache-ului. Devine standardul în multe distribuții Linux mainstream. Puteți verifica dacă sistemul dvs. folosește sistemul-rezolvat prin rulare:
systemctl is-active systemd-resolved
Dacă este activ, continuați să spălați cache -ul DNS cu următoarea comandă:
sudo systemd-resolve --flush-caches
Pentru a confirma cache -ul a fost șters sau vizualizați statisticile curente, puteți utiliza:
systemd-resolve --statistics
Această comandă afișează valori precum numărul de intrări cache, lovituri și ratări, ajutându -vă să vă asigurați că înroșirea cache a avut succes.

Configurare și depanare rezolvată cu sistemd
Pentru utilizatorii avansați, configurația serviciului se află în /etc/systemd/resolved.conf
. Puteți ajusta setări precum serverele DNS sau comportamentele Fallback. Dacă întâmpinați probleme DNS persistente, luați în considerare verificarea jurnalelor journalctl
pentrusistemul-rezolvat:
journalctl -u systemd-resolved
Acest lucru poate fi incredibil de util atunci când depanarea problemelor de rezoluție a domeniului care decurg din configurarea greșită a DNS sau intoxicații în cache.
Utilizarea NetworkManager pentru a reîmprospăta DNS
NetworkManager este un utilitar care gestionează automat configurația rețelei în multe distribuții Linux, inclusiv medii desktop precum Gnome și KDE. În timp ce NetworkManager în sine nu cache DNS, adesea determină ce serviciu (cum ar fi SystemD-rezolvat) gestionează DNS.
Pentru a reîmprospăta setările DNS folosind NetworkManager, puteți reporni serviciul:
sudo systemctl restart NetworkManager
Această metodă obligă indirect o re-rezoluție DNS prin repornirea conexiunilor și a serviciilor conexe. Dacă doriți să obțineți mai mult granular, puteți dezactiva și reîncadra interfețele de rețea specifice. De exemplu:
nmcli networking off nmcli networking on
Sau, pentru un anumit dispozitiv:
nmcli device disconnect eth0 nmcli device connect eth0
Această metodă este deosebit de utilă atunci când treceți între rețele sau rezolvarea problemelor de propagare a domeniului după modificările DNS.
Inspectarea setărilor DNS cu NMCLI
Dacă doriți să inspectați ce DNS îl folosește pe rețeaua dvs. de rețea, comanda:
nmcli dev show | grep DNS
va enumera adresele DNS în prezent active. Acest lucru este util atunci când verificați dacă setările DNS de la DHCP sau adresarea statică sunt aplicate corect.


Flushing DNS cu NSCD (Daemon Cache de serviciu de nume)
Deși este mai puțin obișnuit în sistemele moderne de desktop Linux,NSCDeste încă utilizat în medii de întreprindere și moștenire. În cache, cererile de servicii de nume pentru a accelera rezoluția pentru nume de gazdă, parole și alte obiecte de bază de date. Mai întâi, asigurați -vă că este instalat și rulat:
sudo systemctl status nscd
Dacă este activ, spălarea cache -ului DNS este simplă:
sudo nscd -i hosts
Această comandă spune NSCD să invalidă (-i) intrările cache pentru numele de gazdă. Dacă doriți să spălați totul, nu doar intrările DNS, utilizați:
sudo nscd -I
Aceasta va reîncărca întreaga configurație și va șterge datele în cache pentru toate bazele de date acceptate.
Configurarea și monitorizarea NSCD
NSCD este configurat prin /etc/nscd.conf
. Puteți activa sau dezactiva memoria cache pentru diverse tipuri de date, cum ar fi:
- Passwd
- grup
- gazde
Fișierul este bine realizat, ceea ce îl face rezonabil abordabil. Jurnalele de monitorizare prin journalctl -u nscd
vă permite să urmăriți comportamentul său și să identificați problemele potențiale.
Cum să determinați ce mecanism de memorie în cache utilizați
Nu sunteți sigur pe ce sistem se bazează pe mașina dvs. Linux pentru cache -ul DNS? Iată câteva verificări rapide:
-
systemd-resolve --status
returnează o ieșire semnificativă? Dacă da, sistemul dvs. utilizează probabil rezolvarea sistemului. -
nscd -g
oferă intrări în tabel? S -ar putea să utilizațiNSCD. -
resolvectl
funcționează pe sistemul dvs.? Acesta este un bun indiciu pentrurezolvarea sistemului. - Este instalat
dnsmasq
sauBIND
? Acest lucru indică setări mai avansate care necesită pași separați.
Identificarea rezolvării DNS în utilizare este crucială înainte de a încerca să spăl sau să depanați cache -ul DNS, deoarece înroșirea cache -ului greșit nu vă va rezolva problema.
De ce spălarea în mod regulat DNS este benefică
În timp ce cache -ul DNS îmbunătățește performanța, acesta poate fi și problematic. Iată de ce și când s -ar putea să doriți să -l spălați:
- După modificarea intrărilor DNS:cache-urile care nu sunt scăzute pot indica vechile servere IPS sau DNS.
- Probleme de conectivitate de depanare:Cache -ul corupt sau otrăvit duce la rezoluții eșuate.
- Scenarii din epoca dezvoltării:la testarea unei migrații de domeniu sau de comutare între serverele de stadializare și producție.
Furbarea regulată a cache -ului DNS ajută la menținerea sănătății sistemului și evită probleme neașteptate de acces la site - în special pentru utilizatorii de energie electrică, administratorii de sistem și dezvoltatorii.
Sfaturi și instrumente avansate
Dacă lucrați într -un mediu complex sau aveți nevoie de mai mult control asupra rezoluției DNS, iată câteva instrumente și sfaturi bonus:
- DNSMASQ:Acționează ca un expeditor DNS ușor cu capacități de memorie în cache.
- BIND (numit):Server DNS de calitate întreprindere cu cache în zonă reglabilă și expirare personalizată.
dig
șinslookup
:instrumente de depanare pentru testarea înregistrărilor DNS în timp real.host
:Simplu și direct pentru interogarea înregistrărilor DNS fără perturbări cache.

Gânduri finale
Înroșirea cache -ului DNS în Linux este o sarcină simplă - odată ce știi ce instrument sau serviciu gestionează rezoluția DNS pe sistemul tău. Indiferent dacă utilizațiSystemD-rezolvat,NetworkManagersauNSCD, înțelegerea modului în care fiecare operează vă va înarma cu abilitățile pentru a rezolva rapid orice scenariu de depanare legată de DNS. Menținerea curată a cache -ului DNS nu este doar o igienă bună - este esențial pentru rezoluția fiabilă și precisă a numelui de domeniu în peisajul dinamic de rețea de astăzi.