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.
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í.