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

Komputery przechowują zapisy wszystkich odwiedzanych witryn internetowych w „pamięci podręcznej DNS”. Celem tej pamięci podręcznej jest zaoszczędzenie czasu, gdy użytkownik próbuje uzyskać dostęp do domeny; system nie musi za każdym razem wyszukiwać go ręcznie. Ogólnie rzecz biorąc, buforowanie DNS przyspiesza korzystanie z Internetu i dlatego robi to praktycznie każdy system operacyjny, od macOS po Windows i Linux.

Mimo to, mimo że jest tak przydatne, jak buforowanie DNS, czasami mogą pojawić się problemy, takie jak wyświetlenie starej witryny internetowej zamiast nowej zaktualizowanej, brak połączenia ze zdalnym serwerem itp. Świetny sposób na obejście tego rodzaju błędów w systemie Linux komputery mają „opróżniać” pamięć podręczną DNS w systemie Linux. Po opróżnieniu pamięci podręcznej DNS odświeży ona bazę danych DNS i usunie wiele problemów, z którymi boryka się wielu użytkowników.

Opróżnij DNS – Systemd rozwiązany

W tym momencie większość użytkowników Linuksa korzysta z systemu operacyjnego, który ma wbudowany system inicjujący Systemd. Chociaż temat Systemd dzieli społeczność, jest jedna rzecz, o której wszyscy wiedzą: Systemd sprawia, że ​​głębokie, skomplikowane poprawki i konserwacja na poziomie systemu operacyjnego są o wiele łatwiejsze niż w przeszłości. Jest to szczególnie prawdziwe w przypadku czyszczenia pamięci podręcznej DNS.

Systemd obsługuje pamięć podręczną DNS w czymś znanym jako „systemd rozwiązany”. Jest to standardowe narzędzie, które znajduje sposób na większość systemów operacyjnych Linux. Aby ustalić, czy Twój system operacyjny używa Systemd Resolved do obsługi DNS i pamięci podręcznej DNS w systemie, uruchom okno terminala, naciskając Ctrl + Alt + T lub Ctrl + Shift + T.na klawiaturze. Następnie uruchom komendę status systemctl w pliku systemd-resolved.service.

systemctl status systemd-resolved.service

Przejrzyj wydruk Systemd Resolved w oknie terminala i znajdź sekcję „Active” po zlokalizowaniu sekcji „Active” i upewnij się, że obok niej jest napis „active (running)”. Jeśli tak, Twój system Linux używa tego do zarządzania swoim DNS.

Aby wyczyścić pamięć podręczną DNS dla Systemd Resolved, musisz użyć jednej z wbudowanych funkcji Systemd Resolved. W szczególności polecenie opróżnienia pamięci podręcznej. Natychmiast wyczyści DNS i ponownie uruchomi Cię!

sudo systemd-resolved --flush-caches

Lub, jeśli nie możesz użyć sudo, zrób:

su -
systemd-resolved --flushcaches

Po użyciu polecenia flushcaches pamięci podręczne DNS w systemie powinny zostać odpowiednio opróżnione. Jeśli jednak po uruchomieniu tego polecenia nadal występują problemy, dobrym pomysłem może być całkowite ponowne uruchomienie usługi. Aby to zrobić, użyj polecenia restartu systemctl.

sudo systemctl restart systemd-resolved.service

Nie możesz użyć sudo? Zaloguj się jako root z su przed próbą ponownego uruchomienia usługi za pomocą systemd.

su -
systemctl restart systemd-resolved.service

Kiedy Systemd-Resolved zakończy ponowne uruchamianie, wszystkie problemy z DNS powinny zostać naprawione!

Opróżnij DNS – maskę DNS

DNSMasq to kolejne popularne rozwiązanie DNS dla platformy Linux, z którego korzysta wiele systemów operacyjnych. Podobnie jak narzędzie Systemd-Resolved, użytkownicy mogą wchodzić w interakcje z nim za pomocą polecenia systemctl. Aby ustalić, czy Twój system operacyjny używa narzędzia DNSMasq do zarządzania DNS, uruchom polecenie status.

systemctl status dnsmasq.service

Przeczytaj wydruk statusu, który systemd wyświetla na ekranie. Udaj się do sekcji „Aktywny” odczytu. Przejrzyj go i poszukaj „aktywna (uruchomiona)”, aby potwierdzić, że usługa jest aktywna. W takim przypadku możliwe jest natychmiastowe wyczyszczenie pamięci podręcznej DNS dla DNSMasq za pomocą polecenia systemctl restart. W terminalu wprowadź następujące polecenie.

sudo systemctl restart dnsmasq.service

Lub, dla tych, którzy nie mogą używać poleceń systemd z sudo, spróbuj zalogować się jako Root przed próbą ponownego uruchomienia.

su -
systemctl restart dnsmasq.service

Opróżnij DNS – NSCD

NSCD jest preferowanym systemem buforowania DNS dla większości systemów operacyjnych Linux opartych na RedHat. Dlatego jeśli używasz OpenSUSE Linux, CentOS lub czegoś podobnego, istnieje duża szansa, że ​​będziesz musiał się z tym bawić, aby wyczyścić pamięć podręczną DNS.

Uwaga: chociaż Fedora Linux jest oparta na RedHat, domyślnie nie przechowuje pamięci podręcznej DNS.

Aby określić, czy Twój system operacyjny Linux używa NSCD, musisz użyć polecenia status, ponieważ jest to usługa systemd.

systemctl status nscd.service

Uruchomienie polecenia status w usłudze NSCD da ci wiele szczegółowych informacji na jej temat. Przejrzyj i znajdź sekcję z napisem „Aktywne”. Jeśli Twój system go używa, zobaczysz zielony tekst z napisem „aktywny (działa)”.

Opróżnianie pamięci podręcznej DNS za pomocą NSCD działa prawie tak samo, jak każdy inny system buforowania, który współpracuje z systemd. Wszystko, co użytkownik musi zrobić, to uruchomić polecenie restartu systemctl. Przeładuje usługę i automatycznie wyczyści pamięć podręczną DNS, co rozwiąże wszelkie problemy z DNS, które możesz napotkać.

sudo systemctl restart nscd.service

Alternatywnie, jeśli Twój system operacyjny Linux wyłącza uruchamianie poleceń systemctl z sudo, możesz ponownie uruchomić usługę, logując się najpierw do konta roota za pomocą su.

su -

systemctl restart nscd.service