Izpiranje lokalnega predpomnilnika DNS lahko odpravi napake HTTP in vas zaščiti pred ponarejanjem DNS. Tukaj je opisano, kako lahko to storite v sistemu Linux.
Ko dostopate do spletnega mesta z imenom njegove domene, vaš sistem pošlje zahtevo strežniku DNS, da pridobi naslov IP za to domeno. Ta par domena-IP naslov je shranjen v predpomnilniku DNS za poznejšo uporabo, tako da vam ni treba vsakič pošiljati zahtev strežniku DNS za vzpostavitev povezave.
Toda včasih se lokalni predpomnilnik DNS poškoduje in povzroči napake HTTP. Na srečo je izpiranje in ponovna izgradnja predpomnilnika DNS v računalniku z Linuxom preprosta. Tukaj je opisano, kako to storiti.
Zakaj izprazniti predpomnilnik DNS v Linuxu?
Obstaja več razlogov, zakaj bi morda želeli obnoviti predpomnilnik DNS, shranjen v vašem sistemu. Morda imate zastarel zapis DNS za spletno mesto in ga želite znova pridobiti s strežnika DNS. Morda pa je bil vaš sistem ogrožen in se želite prepričati, da predpomnilnik DNS ni bil spremenjen znano kot ponarejanje DNS.
Ko izpraznite predpomnilnik DNS, mora sistem znova pingati strežnik DNS in iz njega pridobiti nov zapis naslova IP domene, pri tem pa odstraniti vse zastarele ali ogrožene podatke.
Kako si ogledate lokalni predpomnilnik DNS v sistemu Linux
Pred systemd večina distribucij Linuxa ni imela sistemskega predpomnjenja DNS, razen če je bil program, kot je dnsmasq ali nscd, nastavljen ročno. systemd ima systemd-resolved, storitev, ki razreši imena domen v naslove IP in predpomni vnose DNS.
Naslednji razdelki vas bodo vodili, kako si ogledate vsebino predpomnilnika DNS, ki so jo ustvarili systemd-resolved, nscd in dnsmasq, da boste lahko razumeli predpomnjene podatke, preden se odločite, da jih boste izpraznili.
Oglejte si predpomnilnik DNS za sistemsko razrešeno
Če si želite ogledati zapise predpomnilnika, ki jih razreši systemd, morate najprej začasno zaustaviti storitev, nato pa njene dnevnike izvoziti v datoteko.
Začnite s pošiljanjem signala SIGUSR1 za zaustavitev storitve, razrešene s sistemom d:
sudo killall -USR1 sistemsko razrešeno
Uporaba ukaz journalctl in standardni izhodni operator za shranjevanje izhoda v besedilno datoteko:
sudo journalctl -u systemd-resolved > ~/cache.txt
Nato si lahko ogledate vsebino datoteke z urejevalnikom besedil, kot je Vim:
vim ~/cache.txt
V datoteki poiščite "CACHE:" s pritiskom Pobegniti, tipkanje "/CACHE:«, in udarjanje Vnesite. Vsi zapisi DNS, navedeni pod PREDPOMNILNIK: so del lokalnega predpomnilnika DNS. Pritisnite n za skok na naslednji niz vnosov DNS, če uporabljate Vim.
Oglejte si lokalni predpomnilnik DNS za nscd
Če si želite ogledati lokalni predpomnilnik, ki ga ustvari nscd, morate prebrati vsebino baze podatkov gostiteljev nscd z ukazom strings.
V distribucijah Debian in Ubuntu se ta datoteka nahaja na /var/cache/nscd/hosts. Za ogled datoteke zaženite naslednji ukaz:
sudo nizi /var/cache/nscd/hosts | edinstven
Za ogled splošne statistike o predpomnilniku DNS nscd uporabite -g zastava:
sudo nscd -g
Prikaži predpomnilnik DNS, ki ga je ustvaril dnsmasq
dnsmasq shrani predpomnilnik DNS v pomnilnik, zato ni lahko dobiti natančnih zapisov. Lahko pa pošljete kill signal dnsmasq in zabeležite njegov izhod, da dobite število obdelanih poizvedb DNS.
Če želite to narediti, najprej preverite, ali dnsmasq deluje in deluje z uporabo ukaza systemctl:
sudo systemctl status dnsmasq
Če stanje pokaže Aktiven, zaženite naslednji ukaz, da uničite storitev:
sudo pkill -USR1 dnsmasq
Z ukazom journalctl ekstrahirajte dnevnike dnsmasq in jih shranite v besedilno datoteko:
sudo journalctl -u dnsmasq > ~/cache.txt
Nazadnje si oglejte vsebino datoteke z uporabo pripomočka za ogled datotek kot mačka ali manj:
cat ~/cache.txt
Kako izprazniti predpomnilnik DNS v sistemu Linux
Izpiranje predpomnilnika DNS pomeni odstranitev predpomnjenih zapisov DNS iz vašega računalnika. To ga prisili, da strežniku DNS pošlje zahtevo za pridobitev novih vnosov DNS.
Tukaj je opisano, kako lahko izpraznite predpomnilnik DNS v Linuxu:
Uporaba systemd-resolved
Z ukazom resolvectl lahko izpraznite predpomnilnik DNS, ki ga shrani systemd-resolved:
sudo resolvectl splakovalne predpomnilnike
Če uporabljate Ubuntu 17.04 ali 18.04, uporabite ukaz systemd-resolved za izpiranje predpomnilnika:
sudo systemd-resolved --flush-caches
Izpraznite predpomnilnik DNS nscd v sistemu Linux
Najprimernejši način za odstranitev predpomnilnika DNS za nscd je preprost ponovni zagon storitve. To lahko storite tako, da zaženete:
sudo /etc/init.d/nscd znova zaženite
Če to ne deluje, najprej preverite, ali je lokalni predpomnilnik, shranjen v vašem računalniku, obstojen. Lahko uporabite -g zastavica za potrditev:
sudo nscd -g
Če je temu tako, uporabite -jaz označite z ukazom nscd za brisanje zapisov (jaz pomeni razveljaviti):
sudo nscd -i gostitelji
Odstranite predpomnilnik DNS dnsmasq
Izpiranje predpomnilnika DNS, ki ga ustvari dnsmasq, je preprosto. Ker je predpomnilnik shranjen v pomnilniku, ponovni zagon storitve izbriše vse shranjene vnose.
Če želite znova zagnati dnsmasq, zaženite naslednji ukaz systemctl:
sudo systemctl znova zaženite dnsmasq
Ali izdajte naslednji ukaz:
ponovni zagon storitve dnsmasq
Vnesite skrbniško geslo, če ste pozvani. dnsmasq se bo zdaj znova zagnal in vsi vaši obstoječi vnosi DNS bodo odstranjeni iz predpomnilnika.
Po izpraznitvi predpomnilnika DNS je najbolje, da si ogledate vnose lokalnega predpomnilnika in preverite, ali so bili podatki uspešno odstranjeni. Uporabite lahko dig, enega od veliko ukazov Linuxa za odpravljanje težav z omrežjemin preverite vrednost časa poizvedbe v izhodu. Če je več kot 0 msec, je bil predpomnilnik uspešno izbrisan (0 msec pomeni, da je zapis domene še vedno v predpomnilniku).
kopati google.com
Počisti predpomnilnik DNS Google Chroma
Spletni brskalnik, ki ga pogosto uporabljate, tudi predpomni zapise DNS. Ko vnesete URL, sistem poišče vnos predpomnilnika v lokalnem predpomnilniku brskalnika. Če ni najden, preveri zapise v lokalnem sistemskem predpomnilniku. Ključnega pomena je, da počistite predpomnilnik DNS vašega spletnega brskalnika, saj ima višjo prednost kot sistemski predpomnilnik.
Za predstavitev izpraznimo predpomnilnik DNS v brskalniku Google Chrome. Obstajajo načini za to tudi v drugih brskalnikih, zato je najbolje, da v Googlu poiščete, kako to storiti za brskalnik, ki ga uporabljate.
Za začetek vnesite "chrome://net-internals/#dns" v vrstici URL in pritisnite Vnesite:
Kliknite Počisti predpomnilnik gostitelja za brisanje vnosov DNS, shranjenih v brskalniku Google Chrome.
Linux je najboljši OS za učenje mreženja
Linux se morda sprva zdi zapleten, a če boste vložili nekaj časa v to, da se naučite, kako deluje, boste hitro ugotovili, da je fantastičen in morda celo boljši od Windows ali macOS.
Večina spletnih strežnikov uporablja Linux in to je eden od razlogov, zakaj je Linux idealen, če se želite naučiti mreženja ali želite izvedeti, kako računalniki delujejo na splošno.