Ispiranje lokalne DNS predmemorije može riješiti HTTP pogreške i zaštititi vas od lažiranja DNS-a. Evo kako to možete učiniti na Linuxu.

Kada pristupite web stranici koristeći naziv domene, vaš sustav šalje zahtjev DNS poslužitelju da dobije IP adresu za tu domenu. Ovaj par domena-IP adresa sprema se u DNS predmemoriju za kasniju upotrebu tako da ne morate svaki put slati zahtjeve DNS poslužitelju da biste uspostavili vezu.

Ali ponekad se lokalna DNS predmemorija ošteti i uzrokuje HTTP pogreške. Srećom, ispiranje i ponovna izgradnja DNS predmemorije na Linux računalu je jednostavno. Evo kako to učiniti.

Zašto ispirati DNS predmemoriju na Linuxu?

Postoji nekoliko razloga zašto biste mogli ponovno izgraditi DNS predmemoriju pohranjenu na vašem sustavu. Možda imate zastarjeli DNS zapis za web mjesto i želite ga ponovno dohvatiti s DNS poslužitelja. Ili je možda vaš sustav kompromitiran i želite biti sigurni da DNS predmemorija nije dirana, također poznat kao lažiranje DNS-a.

Kada ispraznite svoju DNS predmemoriju, sustav mora ponovno pingati DNS poslužitelj i iz njega dobiti novi zapis IP adrese domene, uklanjajući pritom sve zastarjele ili ugrožene podatke.

Kako vidjeti lokalnu DNS predmemoriju na Linuxu

Prije systemd-a, većina distribucija Linuxa nije imala DNS predmemoriju za cijeli sustav, osim ako program poput dnsmasq ili nscd nije ručno postavljen. systemd dolazi sa systemd-resolved, uslugom koja razrješava nazive domena u IP adrese i predmemorira DNS unose.

Sljedeći odjeljci će vas voditi kako pregledati sadržaj DNS predmemorije koji generiraju systemd-resolved, nscd i dnsmasq, tako da možete razumjeti predmemorirane podatke prije nego što ih odlučite isprazniti.

Pogledajte DNS predmemoriju za systemd-resolved

Da biste pregledali zapise predmemorije razriješene u systemd-u, morate prvo privremeno zaustaviti uslugu, a zatim izvesti njezine zapisnike u datoteku.

Započnite slanjem signala SIGUSR1 da ubijete uslugu razriješenu systemd-om:

sudo killall -USR1 systemd-riješen

Koristiti naredba journalctl i standardni izlazni operator za spremanje izlaza u tekstualnu datoteku:

sudo journalctl -u systemd-resolved > ~/cache.txt

Zatim možete vidjeti sadržaj datoteke pomoću uređivača teksta kao što je Vim:

vim ~/cache.txt

U datoteci potražite "CACHE:" pritiskom na Pobjeći, upisivanje "/CACHE:“, i udaranje Unesi. Svi DNS zapisi navedeni ispod PRIPREMA: su dio lokalne DNS predmemorije. Pritisnite n za skok na sljedeći skup DNS unosa ako koristite Vim.

Pogledajte lokalnu DNS predmemoriju za nscd

Da biste vidjeli lokalnu predmemoriju koju je generirao nscd, morate pročitati sadržaj baze podataka nscd hosts koristeći strings naredbu.

U distribucijama temeljenim na Debianu i Ubuntuu ova se datoteka nalazi na /var/cache/nscd/hosts. Pokrenite sljedeću naredbu za pregled datoteke:

sudo nizovi /var/cache/nscd/hosts | jedinstven

Za pregled opće statistike o nscd DNS predmemoriji, koristite -g zastava:

sudo nscd -g

Prikaži DNS predmemoriju koju generira dnsmasq

dnsmasq pohranjuje DNS predmemoriju u memoriju tako da nije lako doći do točnih zapisa. Ali možete poslati kill signal dnsmasq-u i zabilježiti njegov izlaz kako biste dobili broj obrađenih DNS upita.

Da biste to učinili, prvo provjerite radi li dnsmasq pomoću naredbe systemctl:

sudo systemctl status dnsmasq

Ako status pokazuje Aktivan, pokrenite sljedeću naredbu da ubijete uslugu:

sudo pkill -USR1 dnsmasq

Pomoću naredbe journalctl izvucite dnsmasq zapise i spremite ih u tekstualnu datoteku:

sudo journalctl -u dnsmasq > ~/cache.txt

Na kraju pogledajte sadržaj datoteke koristeći pomoćni program za pregledavanje datoteka kao mačka ili manje:

mačka ~/cache.txt

Kako isprazniti DNS predmemoriju na Linuxu

Ispiranje DNS predmemorije znači uklanjanje predmemoriranih DNS zapisa s vašeg računala. To ga prisiljava da pošalje zahtjev DNS poslužitelju za dohvaćanje novih DNS unosa.

Evo kako možete isprazniti DNS predmemoriju na Linuxu:

Korištenje systemd-riješeno

Možete koristiti naredbu resolvectl za ispiranje DNS predmemorije koju je pohranio systemd-resolved:

sudo resolvectl ispiranje predmemorija

Ako koristite Ubuntu 17.04 ili 18.04, upotrijebite systemd-resolved naredbu za ispiranje predmemorije:

sudo systemd-resolved --flush-caches

Ispraznite nscd DNS predmemoriju na Linuxu

Najprikladniji način za uklanjanje DNS predmemorije za nscd je jednostavno ponovno pokretanje usluge. To možete učiniti pokretanjem:

sudo /etc/init.d/nscd ponovno pokretanje

Ako to ne uspije, prvo provjerite je li lokalna predmemorija pohranjena na vašem računalu trajna. Možete koristiti -g zastavica za potvrdu:

sudo nscd -g

Ako je to slučaj, upotrijebite -i označite s naredbom nscd za brisanje zapisa (ja stoji za poništiti):

sudo nscd -i domaćini

Uklonite dnsmasq DNS predmemoriju

Ispiranje DNS predmemorije koju generira dnsmasq je jednostavno. Budući da je predmemorija pohranjena u memoriji, ponovnim pokretanjem usluge brišu se svi pohranjeni unosi.

Da ponovno pokrenete dnsmasq, pokrenite sljedeću naredbu systemctl:

sudo systemctl ponovno pokrenite dnsmasq

Ili izdajte sljedeću naredbu:

ponovno pokretanje usluge dnsmasq

Unesite administratorsku lozinku ako se to od vas zatraži. dnsmasq će se sada ponovno pokrenuti i svi vaši postojeći DNS unosi bit će uklonjeni iz predmemorije.

Nakon ispiranja DNS predmemorije, najbolje je pogledati unose lokalne predmemorije i provjeriti jesu li podaci uspješno uklonjeni. Možete koristiti dig, jedan od mnoge Linux naredbe za rješavanje problema s mrežomi provjerite vrijednost vremena upita u izlazu. Ako je više od 0 msec, predmemorija je uspješno izbrisana (0 msec znači da je zapis domene još uvijek u predmemoriji).

kopaj google.com

Izbrišite DNS predmemoriju preglednika Google Chrome

Web preglednik koji često koristite također sprema DNS zapise. Kada unesete URL, sustav traži unos u predmemoriju lokalnog preglednika. Ako nije pronađen, provjerava zapise u predmemorij lokalnog sustava. Ključno je očistiti DNS predmemoriju web-preglednika budući da ona ima veću prednost od predmemorije cijelog sustava.

Za demonstraciju, ispraznimo DNS predmemoriju u Google Chromeu. Postoje načini da to učinite i na drugim preglednicima, pa je najbolje da guglate kako to učiniti za preglednik koji koristite.

Za početak upišite "chrome://net-internals/#dns" u URL traci i pritisnite Unesi:

Klik Očisti predmemoriju hosta za brisanje DNS unosa pohranjenih u pregledniku Google Chrome.

Linux je najbolji OS za učenje umrežavanja

Linux bi se u početku mogao činiti kompliciranim, ali ako uložite malo vremena u učenje kako radi, brzo ćete shvatiti da je fantastičan, a možda čak i bolji od Windowsa ili macOS-a.

Većina mrežnih poslužitelja pokreće Linux i to je jedan od razloga zašto je Linux idealan ako želite naučiti umrežavanje ili želite znati kako računala rade općenito.