Vyprázdnění místní mezipaměti DNS může vyřešit chyby HTTP a ochránit vás před falšováním DNS. Zde je návod, jak to udělat na Linuxu.

Když přistupujete na web pomocí názvu jeho domény, váš systém odešle požadavek na server DNS, aby získal IP adresu pro danou doménu. Tento pár domén-IP adresa je uložen v mezipaměti DNS pro pozdější použití, takže nemusíte pokaždé posílat požadavky na server DNS, abyste se připojili.

Někdy se však místní mezipaměť DNS poškodí a způsobí chyby HTTP. Naštěstí je vyprázdnění a opětovné sestavení mezipaměti DNS na počítači se systémem Linux jednoduché. Zde je návod, jak na to.

Proč vyprázdnit mezipaměť DNS v systému Linux?

Existuje několik důvodů, proč budete chtít znovu sestavit mezipaměť DNS uloženou ve vašem systému. Možná máte pro web zastaralý záznam DNS a chcete jej znovu načíst ze serveru DNS. Nebo možná byl váš systém kompromitován a chcete se ujistit, že s mezipamětí DNS nebylo manipulováno, známé jako DNS spoofing.

Když vyprázdníte mezipaměť DNS, systém musí znovu pingnout server DNS a získat z něj nový záznam adresy IP domény, přičemž v procesu odstraní všechna zastaralá nebo kompromitovaná data.

instagram viewer

Jak zobrazit místní mezipaměť DNS v systému Linux

Před systemd většina linuxových distribucí neměla systémové ukládání DNS do mezipaměti, pokud nebyl ručně nastaven program jako dnsmasq nebo nscd. systemd přichází se službou systemd-resolved, která překládá názvy domén na IP adresy a ukládá záznamy DNS do mezipaměti.

Následující části vás provedou, jak zobrazit obsah mezipaměti DNS generovaný pomocí systemd-resolved, nscd a dnsmasq, abyste porozuměli datům uloženým v mezipaměti, než se je rozhodnete vyprázdnit.

Zobrazit mezipaměť DNS pro řešení systemd

Chcete-li zobrazit záznamy mezipaměti vyřešené systémem systemd, musíte nejprve dočasně ukončit službu a poté exportovat její protokoly do souboru.

Začněte odesláním signálu SIGUSR1, který ukončí službu vyřešenou systémem:

sudo killall -USR1 systemd-resolved

Použití příkaz journalctl a standardní výstupní operátor pro uložení výstupu do textového souboru:

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

Poté můžete zobrazit obsah souboru pomocí textového editoru, jako je Vim:

vim ~/cache.txt

V souboru vyhledejte „CACHE:“ stisknutím Uniknout, psaní na stroji "/CACHE:“ a udeřit Vstupte. Všechny záznamy DNS uvedené pod MEZIPAMĚTI: jsou součástí místní mezipaměti DNS. lis n pro přechod na další sadu záznamů DNS, pokud používáte Vim.

Zobrazit místní mezipaměť DNS pro nscd

Chcete-li zobrazit místní mezipaměť generovanou nástrojem nscd, musíte si přečíst obsah databáze hostitelů nscd pomocí příkazu strings.

V distribucích Debian a Ubuntu je tento soubor umístěn na adrese /var/cache/nscd/hosts. Pro zobrazení souboru spusťte následující příkaz:

sudo strings /var/cache/nscd/hosts | unikátní

Chcete-li zobrazit obecné statistiky o mezipaměti DNS nscd, použijte -G vlajka:

sudo nscd -g

Zobrazte mezipaměť DNS vygenerovanou serverem dnsmasq

dnsmasq ukládá DNS cache do paměti, takže není snadné získat přesné záznamy. Můžete však odeslat signál zabíjení do dnsmasq a zaznamenat jeho výstup, abyste získali počet zpracovaných dotazů DNS.

Chcete-li tak učinit, nejprve se ujistěte, že je dnsmasq spuštěn a běží pomocí příkazu systemctl:

sudo systemctl status dnsmasq

Pokud stav ukazuje Aktivní, spusťte následující příkaz pro ukončení služby:

sudo pkill -USR1 dnsmasq

Pomocí příkazu journalctl rozbalte protokoly dnsmasq a uložte je do textového souboru:

sudo journalctl -u dnsmasq > ~/cache.txt

Nakonec si prohlédněte obsah souboru pomocí nástroje pro prohlížení souborů jako kočka nebo méně:

cat ~/cache.txt

Jak vyprázdnit mezipaměť DNS v systému Linux

Vyprázdnění mezipaměti DNS znamená odstranění záznamů DNS uložených v mezipaměti z vašeho počítače. To jej přinutí odeslat požadavek na server DNS, aby načetl nové položky DNS.

Zde je návod, jak můžete vyprázdnit mezipaměť DNS v systému Linux:

Pomocí systemd-resolved

K vyprázdnění mezipaměti DNS uložené systémem systemd-resolved můžete použít příkaz resolvectl:

flush-cache sudo resolvectl

Pokud používáte Ubuntu 17.04 nebo 18.04, použijte k vyprázdnění mezipaměti příkaz systemd-resolved:

sudo systemd-resolved --flush-caches

Vyprázdněte mezipaměť DNS nscd v systému Linux

Nejpohodlnějším způsobem odstranění mezipaměti DNS pro nscd je jednoduché restartování služby. Můžete tak učinit spuštěním:

restartujte sudo /etc/init.d/nscd

Pokud to nefunguje, nejprve zkontrolujte, zda je místní mezipaměť uložená v počítači trvalá. Můžete použít -G příznak pro ověření:

sudo nscd -g

Pokud je tomu tak, použijte -i příznak pomocí příkazu nscd pro vymazání záznamů (i znamená zneplatnit):

sudo nscd -i hostitelé

Odeberte mezipaměť DNS dnsmasq

Vyprázdnění mezipaměti DNS generované dnsmasq je jednoduché. Protože je mezipaměť uložena v paměti, restartování služby odstraní všechny uložené položky.

Chcete-li restartovat dnsmasq, spusťte následující příkaz systemctl:

sudo systemctl restart dnsmasq

Nebo zadejte následující příkaz:

restart služby DNSmasq

Pokud budete vyzváni, zadejte heslo správce. dnsmasq se nyní restartuje a všechny vaše stávající záznamy DNS budou odstraněny z mezipaměti.

Po vyprázdnění mezipaměti DNS je nejlepší zobrazit položky místní mezipaměti a ověřit, zda byla data úspěšně odstraněna. Můžete použít dig, jeden z mnoho příkazů pro odstraňování problémů se sítí Linuxa zkontrolujte hodnotu Query time ve výstupu. Pokud je více než 0 ms, mezipaměť byla úspěšně vymazána (0 ms znamená, že záznam domény je stále v mezipaměti).

dig google.com

Vymažte mezipaměť DNS prohlížeče Google Chrome

Webový prohlížeč, který často používáte, také ukládá DNS záznamy. Když zadáte adresu URL, systém vyhledá záznam v mezipaměti místního prohlížeče. Pokud není nalezen, zkontroluje záznamy v místní systémové mezipaměti. Je důležité vymazat mezipaměť DNS vašeho webového prohlížeče, protože má vyšší prioritu než mezipaměť celého systému.

Pro demonstraci vyprázdněme mezipaměť DNS v prohlížeči Google Chrome. Existují způsoby, jak to udělat i v jiných prohlížečích, takže bude nejlepší, když si vygooglujete, jak to udělat pro prohlížeč, který používáte.

Chcete-li začít, zadejte "chrome://net-internals/#dns“ v adresním řádku a stiskněte Vstupte:

Klikněte Vymažte mezipaměť hostitele vymažete záznamy DNS uložené v prohlížeči Google Chrome.

Linux je nejlepší operační systém pro učení se sítí

Linux se může na první pohled zdát komplikovaný, ale pokud investujete nějaký čas do učení, jak to funguje, rychle zjistíte, že je fantastický a možná dokonce lepší než Windows nebo macOS.

Většina online serverů běží na Linuxu a to je jeden z důvodů, proč je Linux ideální, pokud se chcete naučit pracovat v síti nebo chcete vědět, jak počítače obecně fungují.