Flush DNS pe Linux: SystemD-Resolved, NetworkManager și NSCD

Publicat: 2025-09-26

Câ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 sau BIND ? 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 și nslookup :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.
De ce să schimbați cheia în SurvivalCraft 2?

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.