Golirea memoriei cache DNS locală poate rezolva erorile HTTP și vă poate proteja de falsificarea DNS. Iată cum o puteți face pe Linux.
Când accesați un site web folosind numele său de domeniu, sistemul dvs. trimite o solicitare către un server DNS pentru a obține adresa IP pentru acel domeniu. Această pereche domeniu-adresă IP este salvată în memoria cache DNS pentru o utilizare ulterioară, astfel încât nu trebuie să trimiteți solicitări către serverul DNS de fiecare dată pentru a realiza o conexiune.
Dar uneori, memoria cache DNS locală este coruptă și provoacă erori HTTP. Din fericire, spălarea și reconstruirea cache-ului DNS pe un computer Linux este simplă. Iată cum să o faci.
De ce să ștergeți memoria cache DNS pe Linux?
Există mai multe motive pentru care ați putea dori să reconstruiți memoria cache DNS stocată pe sistemul dvs. Poate că aveți o înregistrare DNS învechită pentru un site web și doriți să o preluați din nou de pe serverul DNS. Sau poate că sistemul dvs. a fost compromis și doriți să vă asigurați că memoria cache DNS nu a fost modificată, de asemenea
cunoscut sub numele de falsificare DNS.Când vă ștergeți memoria cache DNS, sistemul trebuie să pună din nou serverul DNS și să obțină noua înregistrare a adresei IP a domeniului, eliminând toate datele învechite sau compromise în acest proces.
Cum să vizualizați memoria cache DNS locală pe Linux
Înainte de systemd, majoritatea distribuțiilor Linux nu aveau cache DNS la nivel de sistem, cu excepția cazului în care un program precum dnsmasq sau nscd a fost configurat manual. systemd vine cu systemd-resolved, un serviciu care rezolvă numele de domenii în adrese IP și memorează în cache intrările DNS.
Următoarele secțiuni vă vor ghida despre cum să vizualizați conținutul cache-ului DNS generat de systemd-resolved, nscd și dnsmasq, astfel încât să puteți înțelege datele din cache înainte de a vă decide să le ștergeți.
Vizualizați cache DNS pentru rezolvarea sistemului
Pentru a vizualiza înregistrările cache rezolvate de sistem, trebuie mai întâi să omorâți temporar serviciul, apoi să exportați jurnalele acestuia într-un fișier.
Începeți prin a trimite un semnal SIGUSR1 pentru a opri serviciul rezolvat de sistem:
sudo killall -USR1 systemd-rezolvat
Utilizare comanda journalctl și operatorul de ieșire standard pentru a salva rezultatul într-un fișier text:
sudo journalctl -u systemd-resolved > ~/cache.txt
Apoi puteți vizualiza conținutul fișierului folosind un editor de text precum Vim:
vim ~/cache.txt
În fișier, căutați „CACHE:” apăsând Evadare, tastare "/CACHE:", și lovind introduce. Toate înregistrările DNS enumerate sub CACHE: fac parte din memoria cache DNS locală. presa n pentru a trece la următorul set de intrări DNS dacă utilizați Vim.
Vizualizați memoria cache DNS locală pentru nscd
Pentru a vizualiza memoria cache locală generată de nscd, trebuie să citiți conținutul bazei de date nscd hosts folosind comanda strings.
Pe distribuțiile bazate pe Debian și Ubuntu, acest fișier se află la /var/cache/nscd/hosts. Rulați următoarea comandă pentru a vizualiza fișierul:
sudo șiruri /var/cache/nscd/hosts | unic
Pentru a vedea statistici generale despre memoria cache DNS nscd, utilizați -g steag:
sudo nscd -g
Afișați memoria cache DNS generată de dnsmasq
dnsmasq stochează memoria cache DNS în memorie, așa că nu este ușor să obțineți înregistrările exacte. Dar puteți trimite un semnal de ucidere către dnsmasq și puteți înregistra ieșirea acestuia pentru a obține numărul de interogări DNS procesate.
Pentru a face acest lucru, mai întâi, asigurați-vă că dnsmasq funcționează folosind comanda systemctl:
sudo systemctl status dnsmasq
Dacă starea arată Activ, rulați următoarea comandă pentru a opri serviciul:
sudo pkill -USR1 dnsmasq
Folosind comanda journalctl, extrageți jurnalele dnsmasq și salvați-le într-un fișier text:
sudo journalctl -u dnsmasq > ~/cache.txt
În cele din urmă, vizualizați conținutul fișierului folosind un utilitar de vizualizare a fișierelor ca pisica sau mai putin:
cat ~/cache.txt
Cum să goliți memoria cache DNS pe Linux
Golirea memoriei cache DNS înseamnă eliminarea înregistrărilor DNS din cache de pe computer. Acest lucru îl forțează să trimită o solicitare către serverul DNS pentru a prelua noile intrări DNS.
Iată cum puteți șterge memoria cache DNS pe Linux:
Folosind systemd-resolved
Puteți folosi comanda resolvectl pentru a goli memoria cache DNS stocată de systemd-resolved:
sudo resolvectl flush-caches
Dacă rulați Ubuntu 17.04 sau 18.04, utilizați comanda systemd-resolved pentru a goli memoria cache:
sudo systemd-resolved --flush-caches
Goliți memoria cache DNS nscd pe Linux
Cea mai convenabilă modalitate de a elimina memoria cache DNS pentru nscd este prin simpla repornire a serviciului. Puteți face acest lucru rulând:
sudo /etc/init.d/nscd restart
Dacă acest lucru nu funcționează, mai întâi, verificați dacă memoria cache locală stocată pe computer este persistentă. Puteți folosi -g flag pentru a verifica:
sudo nscd -g
Dacă este cazul, utilizați -i marcați cu comanda nscd pentru a șterge înregistrările (i reprezintă invalida):
sudo nscd -i gazde
Eliminați memoria cache DNS dnsmasq
Golirea memoriei cache DNS generată de dnsmasq este simplă. Deoarece memoria cache este stocată în memorie, repornirea serviciului șterge toate intrările stocate.
Pentru a reporni dnsmasq, rulați următoarea comandă systemctl:
sudo systemctl reporniți dnsmasq
Sau, lansați următoarea comandă:
repornirea serviciului dnsmasq
Introduceți parola de administrator dacă vi se solicită. dnsmasq va reporni acum și toate intrările DNS existente vor fi eliminate din cache.
După golirea memoriei cache DNS, cel mai bine este să vedeți intrările din memoria cache locală și să verificați dacă datele au fost eliminate cu succes. Puteți folosi dig, unul dintre multe comenzi Linux de depanare a rețeleiși verificați valoarea timpului de interogare din rezultat. Dacă este mai mare de 0 msec, memoria cache a fost șters cu succes (0 msec înseamnă că înregistrarea domeniului este încă în cache).
sapa pe google.com
Ștergeți memoria cache DNS Google Chrome
Browserul web pe care îl utilizați frecvent memorează, de asemenea, înregistrările DNS. Când introduceți o adresă URL, sistemul caută o intrare în cache în memoria cache a browserului local. Dacă nu este găsit, verifică înregistrările din memoria cache a sistemului local. Este esențial să ștergeți memoria cache DNS a browserului dvs. web, deoarece are o prioritate mai mare decât memoria cache la nivel de sistem.
Pentru demonstrație, să ștergem memoria cache DNS din Google Chrome. Există modalități de a face acest lucru și pe alte browsere, așa că cel mai bine este să căutați pe Google cum să o faceți pentru browserul pe care îl utilizați.
Pentru a începe, tastați „chrome://net-internals/#dns" în bara de adrese URL și apăsați introduce:
Clic Ștergeți memoria cache a gazdei pentru a șterge intrările DNS stocate în Google Chrome.
Linux este cel mai bun sistem de operare pentru a învăța operațiunile de rețea
Linux poate părea complicat la început, dar dacă investești ceva timp în a învăța cum funcționează, îți vei da seama rapid că este fantastic și poate chiar mai bun decât Windows sau macOS.
Majoritatea serverelor online rulează Linux și acesta este unul dintre motivele pentru care Linux este ideal dacă doriți să învățați cum funcționează computerele, în general.