Jak opróżnić pamięć podręczną DNS w systemie Linux

Komputery przechowują informacje o wszystkich odwiedzonych stronach internetowych w tzw. „pamięci podręcznej DNS”. Głównym celem tej pamięci jest przyspieszenie dostępu do domen, dzięki czemu system nie musi za każdym razem przeprowadzać ręcznego wyszukiwania. Ogólnie rzecz biorąc, buforowanie DNS zwiększa wydajność korzystania z Internetu, dlatego jest stosowane we wszystkich systemach operacyjnych, w tym macOS, Windows i Linux.

Mimo że buforowanie DNS jest bardzo przydatne, czasami mogą wystąpić problemy, takie jak wyświetlanie starych wersji stron internetowych lub trudności w nawiązywaniu połączenia z serwerem. Doskonałym sposobem na rozwiązanie tych problemów w systemie Linux jest „opróżnienie” pamięci podręcznej DNS. Po jej opróżnieniu, baza danych DNS zostanie odświeżona, co pomoże rozwiązać wiele problemów, z którymi borykają się użytkownicy.

Opróżnianie DNS – Systemd Resolved

Obecnie większość użytkowników Linuksa korzysta z systemu operacyjnego z wbudowanym systemem inicjującym Systemd. Choć temat Systemd budzi kontrowersje w społeczności, wszyscy zgadzają się, że ułatwia on przeprowadzanie skomplikowanych poprawek oraz konserwacji na poziomie systemu operacyjnego. Dotyczy to również czyszczenia pamięci podręcznej DNS.

Systemd zarządza pamięcią podręczną DNS za pomocą narzędzia znanego jako „systemd resolved”. Jest to standardowe narzędzie, które znajduje się w większości dystrybucji Linuksa. Aby sprawdzić, czy Twój system operacyjny korzysta z Systemd Resolved do obsługi DNS, otwórz terminal, używając kombinacji klawiszy Ctrl + Alt + T lub Ctrl + Shift + T. Następnie wykonaj polecenie status systemctl dla pliku systemd-resolved.service.

systemctl status systemd-resolved.service

Przeanalizuj wydruk z Systemd Resolved w terminalu, zwracając uwagę na sekcję „Active”. Upewnij się, że obok niej widnieje napis „active (running)”. Jeśli tak, Twój system Linux korzysta z tego narzędzia do zarządzania DNS.

Aby wyczyścić pamięć podręczną DNS dla Systemd Resolved, użyj jednej z wbudowanych funkcji. W szczególności polecenie do opróżnienia pamięci podręcznej. Natychmiastowo wyczyści ono pamięć DNS!

sudo systemd-resolved --flush-caches

Jeśli nie możesz użyć sudo, spróbuj:

su -
systemd-resolved --flush-caches

Po wykonaniu polecenia flushcaches, pamięć podręczna DNS powinna zostać odpowiednio opróżniona. Jeśli jednak problemy nadal się utrzymują, warto całkowicie ponownie uruchomić usługę. Można to zrobić za pomocą polecenia restart systemctl.

sudo systemctl restart systemd-resolved.service

Nie masz dostępu do sudo? Zaloguj się jako root przy pomocy su przed próbą ponownego uruchomienia usługi za pomocą systemd.

su -
systemctl restart systemd-resolved.service

Po zakończeniu restartu Systemd-Resolved, wszystkie problemy związane z DNS powinny zostać rozwiązane!

Opróżnianie DNS – DNSMasq

DNSMasq to kolejne popularne rozwiązanie DNS stosowane w systemach Linux. Podobnie jak Systemd-Resolved, użytkownicy mogą zarządzać nim za pomocą polecenia systemctl. Aby sprawdzić, czy Twój system korzysta z DNSMasq do obsługi DNS, wydaj polecenie status.

systemctl status dnsmasq.service

Przejrzyj wydruk statusu, który systemd wyświetla na ekranie. Zobacz sekcję „Active” i upewnij się, że widnieje tam „active (running)”, co potwierdza, że usługa działa. W takim przypadku możesz natychmiast wyczyścić pamięć podręczną DNS dla DNSMasq, używając polecenia restart systemctl. W terminalu wpisz:

sudo systemctl restart dnsmasq.service

Jeśli nie możesz korzystać z poleceń systemctl z sudo, zaloguj się jako root przed próbą ponownego uruchomienia.

su -
systemctl restart dnsmasq.service

Opróżnianie DNS – NSCD

NSCD to preferowany system buforowania DNS dla wielu dystrybucji Linuksa opartych na RedHat. Jeśli korzystasz z OpenSUSE, CentOS lub podobnych systemów, prawdopodobnie będziesz musiał użyć tego narzędzia do opróżnienia pamięci podręcznej DNS.

Warto zaznaczyć, że mimo iż Fedora Linux bazuje na RedHat, domyślnie nie korzysta z buforowania DNS.

Aby sprawdzić, czy Twój system operacyjny Linux używa NSCD, użyj polecenia status, jako że jest to usługa systemd.

systemctl status nscd.service

Wydanie polecenia status dla usługi NSCD dostarczy wielu szczegółowych informacji. Zwróć uwagę na sekcję „Active”. Jeśli Twój system korzysta z tej usługi, zobaczysz zielony tekst z napisem „active (running)”.

Aby opróżnić pamięć podręczną DNS za pomocą NSCD, należy wykonać polecenie restartu systemctl. To spowoduje przeładowanie usługi i automatyczne wyczyszczenie pamięci podręcznej DNS, co powinno rozwiązać wszelkie problemy związane z DNS.

sudo systemctl restart nscd.service

Alternatywnie, jeśli Twój system operacyjny nie pozwala na użycie polecenia systemctl z sudo, możesz ponownie uruchomić usługę, logując się jako root za pomocą su.

su -
systemctl restart nscd.service

newsblog.pl