Cum să goliți memoria cache DNS pe Linux

Calculatoarele stochează informații despre fiecare site web vizitat într-o zonă specială numită „cache DNS”. Scopul acestui mecanism este de a reduce timpul necesar accesării unui site, evitând căutarea manuală a domeniului la fiecare încercare. Această tehnică de memorare în cache DNS face navigarea pe internet mai rapidă și este implementată de aproape toate sistemele de operare, de la macOS și Windows la diverse distribuții Linux.

Deși cache-ul DNS este util, uneori poate cauza dificultăți, cum ar fi afișarea unei versiuni vechi a unui site web în loc de cea actualizată sau incapacitatea de a se conecta la un server. O modalitate eficientă de a rezolva aceste probleme pe sistemele Linux este „ștergerea” sau golirea cache-ului DNS. Această acțiune determină sistemul să reîmprospăteze datele DNS stocate, eliminând multe erori de conectare întâlnite de utilizatori.

Golirea cache-ului DNS – Systemd Resolved

În prezent, majoritatea distribuțiilor Linux folosesc sistemul Systemd init. Indiferent de opiniile divizate cu privire la Systemd, este unanim acceptat că acesta simplifică gestionarea sistemului de operare. Acest avantaj este evident, în special, în contextul golirii cache-ului DNS.

Systemd gestionează cache-ul DNS prin intermediul unui utilitar numit „systemd-resolved”. Acesta este un instrument standard prezent în majoritatea sistemelor Linux. Pentru a verifica dacă sistemul tău utilizează Systemd Resolved pentru gestionarea DNS și a cache-ului, deschide un terminal apăsând Ctrl + Alt + T sau Ctrl + Shift + T și rulează comanda

systemctl status systemd-resolved.service

.

Analizează rezultatul comenzii și caută secțiunea „Active”. Asigură-te că apare „active (running)” lângă aceasta. Dacă este cazul, atunci sistemul tău Linux folosește Systemd Resolved pentru gestionarea DNS.

Pentru a goli cache-ul DNS al Systemd Resolved, poți folosi o funcție integrată, și anume comanda de golire a cache-urilor. Aceasta va șterge imediat informațiile DNS stocate și va repune sistemul în funcțiune.

sudo systemd-resolved --flush-caches

Alternativ, dacă nu ai acces la sudo, poți utiliza:

su -
systemd-resolved --flush-caches

După executarea comenzii flush-caches, cache-ul DNS al sistemului ar trebui să fie golit. Totuși, dacă întâmpini în continuare probleme, repornirea completă a serviciului poate fi utilă. Poți face acest lucru folosind comanda

sudo systemctl restart systemd-resolved.service

Dacă nu ai acces sudo, autentifică-te ca root înainte de a încerca să repornești serviciul cu systemd:

su -
systemctl restart systemd-resolved.service

După repornirea Systemd-Resolved, problemele DNS ar trebui să fie rezolvate.

Golirea cache-ului DNS – DNSMasq

DNSMasq este o altă soluție DNS populară pentru Linux, folosită de multe sisteme. Similar cu Systemd-Resolved, poți interacționa cu el prin comanda systemctl. Pentru a verifica dacă sistemul tău utilizează DNSMasq, rulează comanda status:

systemctl status dnsmasq.service

Verifică rezultatul comenzii și caută secțiunea „Active”. Asigură-te că apare „active (running)” pentru a confirma că serviciul este activ. Dacă da, poți goli cache-ul DNS al DNSMasq imediat, folosind comanda de repornire a serviciului:

sudo systemctl restart dnsmasq.service

Dacă nu poți utiliza comenzile systemd cu sudo, încearcă să te autentifici ca root înainte de a reporni:

su -
systemctl restart dnsmasq.service

Golirea cache-ului DNS – NSCD

NSCD este sistemul de cache DNS preferat pentru majoritatea distribuțiilor Linux bazate pe RedHat. Dacă folosești OpenSUSE, CentOS sau o distribuție similară, este posibil să trebuiască să golești cache-ul DNS manual.

Notă: Deși Fedora Linux este bazată pe RedHat, aceasta nu stochează implicit un cache DNS.

Pentru a verifica dacă sistemul folosește NSCD, utilizează comanda status, deoarece este un serviciu systemd:

systemctl status nscd.service

Rezultatul comenzii de status oferă informații detaliate despre NSCD. Găsește secțiunea „Active”. Dacă serviciul este activ, vei vedea textul verde „active (running)”.

Golirea cache-ului DNS cu NSCD se face similar cu alte sisteme care funcționează cu systemd. Trebuie doar să rulezi comanda systemctl restart. Aceasta va reîncărca serviciul și va goli automat cache-ul DNS, rezolvând problemele DNS întâmpinate:

sudo systemctl restart nscd.service

Alternativ, dacă sistemul dezactivează rularea comenzilor systemctl cu sudo, poți reporni serviciul autentificându-te mai întâi ca root:

su -

systemctl restart nscd.service