Opróżnienie lokalnej pamięci podręcznej DNS może rozwiązać błędy HTTP i ochronić Cię przed fałszowaniem DNS. Oto jak możesz to zrobić w systemie Linux.
Gdy uzyskujesz dostęp do witryny internetowej przy użyciu nazwy jej domeny, system wysyła żądanie do serwera DNS w celu uzyskania adresu IP dla tej domeny. Ta para domena-adres IP jest zapisywana w pamięci podręcznej DNS do późniejszego wykorzystania, dzięki czemu nie trzeba za każdym razem wysyłać żądań do serwera DNS w celu nawiązania połączenia.
Ale czasami lokalna pamięć podręczna DNS ulega uszkodzeniu i powoduje błędy HTTP. Na szczęście opróżnianie i odbudowywanie pamięci podręcznej DNS na komputerze z systemem Linux jest proste. Oto jak to zrobić.
Po co opróżniać pamięć podręczną DNS w systemie Linux?
Istnieje kilka powodów, dla których warto odbudować pamięć podręczną DNS przechowywaną w systemie. Być może masz nieaktualny rekord DNS dla witryny internetowej i chcesz go ponownie pobrać z serwera DNS. A może Twój system został naruszony i chcesz się upewnić, że pamięć podręczna DNS nie została naruszona, a także
znane jako fałszowanie DNS.Gdy opróżniasz pamięć podręczną DNS, system musi ponownie wysłać polecenie ping do serwera DNS i pobrać z niego nowy rekord adresu IP domeny, usuwając przy tym wszelkie nieaktualne lub zagrożone dane.
Jak wyświetlić lokalną pamięć podręczną DNS w systemie Linux
Przed systemd większość dystrybucji Linuksa nie miała ogólnosystemowego buforowania DNS, chyba że program taki jak dnsmasq lub nscd został skonfigurowany ręcznie. systemd jest dostarczany z systemd-resolved, usługą, która rozpoznaje nazwy domen na adresy IP i buforuje wpisy DNS.
Poniższe sekcje poprowadzą Cię, jak wyświetlić zawartość pamięci podręcznej DNS wygenerowanej przez systemd-resolved, nscd i dnsmasq, abyś mógł zrozumieć buforowane dane, zanim zdecydujesz się je opróżnić.
Wyświetl pamięć podręczną DNS dla systemud-resolved
Aby wyświetlić rekordy pamięci podręcznej rozwiązane przez system, musisz najpierw tymczasowo zabić usługę, a następnie wyeksportować jej dzienniki do pliku.
Rozpocznij od wysłania sygnału SIGUSR1, aby zabić usługę rozwiązaną przez system:
sudo killall - USR1 systemd-resolved
Używać polecenie journalctl oraz operator standardowego wyjścia, aby zapisać dane wyjściowe do pliku tekstowego:
sudo journalctl -u systemd-resolved > ~/cache.txt
Następnie możesz wyświetlić zawartość pliku za pomocą edytora tekstu, takiego jak Vim:
vim ~/cache.txt
W pliku wyszukaj „CACHE:”, naciskając Ucieczka, wpisując "/CACHE:"i uderzając Wchodzić. Wszystkie rekordy DNS wymienione w PAMIĘĆ PODRĘCZNA: są częścią lokalnej pamięci podręcznej DNS. Naciskać N aby przejść do następnego zestawu wpisów DNS, jeśli używasz Vima.
Wyświetl lokalną pamięć podręczną DNS dla nscd
Aby wyświetlić lokalną pamięć podręczną wygenerowaną przez nscd, należy odczytać zawartość bazy danych hostów nscd za pomocą polecenia strings.
W dystrybucjach opartych na Debianie i Ubuntu plik ten znajduje się pod adresem /var/cache/nscd/hosts. Uruchom następujące polecenie, aby wyświetlić plik:
Sudo strings /var/cache/nscd/hosts | unikalny
Aby wyświetlić ogólne statystyki dotyczące pamięci podręcznej DNS nscd, użyj pliku -G flaga:
sudo nscd -g
Wyświetl pamięć podręczną DNS wygenerowaną przez dnsmasq
dnsmasq przechowuje pamięć podręczną DNS w pamięci, więc uzyskanie dokładnych rekordów nie jest łatwe. Ale możesz wysłać sygnał zabicia do dnsmasq i zarejestrować jego dane wyjściowe, aby uzyskać liczbę przetworzonych zapytań DNS.
Aby to zrobić, najpierw upewnij się, że dnsmasq działa i działa za pomocą polecenia systemctl:
sudo systemctl status dnsmasq
Jeśli stan jest wyświetlany Aktywny, uruchom następujące polecenie, aby zabić usługę:
sudo pkill -USR1 dnsmasq
Za pomocą polecenia journalctl wyodrębnij dzienniki dnsmasq i zapisz je w pliku tekstowym:
sudo journalctl -u dnsmasq > ~/cache.txt
Na koniec przejrzyj zawartość pliku za pomocą narzędzia do przeglądania plików jak kot lub mniej:
cat ~/cache.txt
Jak opróżnić pamięć podręczną DNS w systemie Linux
Opróżnienie pamięci podręcznej DNS oznacza usunięcie zapisanych w pamięci podręcznej rekordów DNS z komputera. To zmusza go do wysłania żądania do serwera DNS w celu pobrania nowych wpisów DNS.
Oto jak możesz opróżnić pamięć podręczną DNS w systemie Linux:
Korzystanie z systemud-resolved
Możesz użyć polecenia resolvectl, aby opróżnić pamięć podręczną DNS przechowywaną przez systemd-resolved:
sudo resolvectl opróżnianie pamięci podręcznej
Jeśli korzystasz z systemu Ubuntu 17.04 lub 18.04, użyj polecenia systemd-resolved, aby opróżnić pamięć podręczną:
sudo systemd-resolved --flush-cache
Opróżnij pamięć podręczną DNS nscd w systemie Linux
Najwygodniejszym sposobem usunięcia pamięci podręcznej DNS dla nscd jest po prostu ponowne uruchomienie usługi. Możesz to zrobić, uruchamiając:
sudo /etc/init.d/nscd uruchom ponownie
Jeśli to nie zadziała, najpierw sprawdź, czy lokalna pamięć podręczna przechowywana na komputerze jest trwała. Możesz użyć -G flaga, aby to zweryfikować:
sudo nscd -g
W takim przypadku użyj tzw -I flagę za pomocą polecenia nscd, aby wyczyścić rekordy (I oznacza unieważnić):
sudo nscd -i hosty
Usuń pamięć podręczną DNS dnsmasq
Opróżnianie pamięci podręcznej DNS generowanej przez dnsmasq jest proste. Ponieważ pamięć podręczna jest przechowywana w pamięci, ponowne uruchomienie usługi powoduje usunięcie wszystkich zapisanych wpisów.
Aby ponownie uruchomić dnsmasq, uruchom następującą komendę systemctl:
sudo systemctl zrestartuj dnsmasq
Lub wydaj następujące polecenie:
ponowne uruchomienie usługi dnsmasq
Wprowadź hasło administratora, jeśli zostaniesz o to poproszony. dnsmasq uruchomi się ponownie, a wszystkie istniejące wpisy DNS zostaną usunięte z pamięci podręcznej.
Po opróżnieniu pamięci podręcznej DNS najlepiej przejrzeć wpisy w lokalnej pamięci podręcznej i sprawdzić, czy dane zostały pomyślnie usunięte. Możesz użyć Dig, jednego z wiele poleceń systemu Linux do rozwiązywania problemów z sieciąi sprawdź wartość czasu zapytania w danych wyjściowych. Jeśli jest to więcej niż 0 ms, pamięć podręczna została pomyślnie wyczyszczona (0 ms oznacza, że rekord domeny nadal znajduje się w pamięci podręcznej).
poszukaj google.com
Wyczyść pamięć podręczną DNS przeglądarki Google Chrome
Często używana przeglądarka internetowa zapisuje również rekordy DNS w pamięci podręcznej. Po wprowadzeniu adresu URL system wyszukuje wpis pamięci podręcznej w lokalnej pamięci podręcznej przeglądarki. Jeśli nie zostanie znaleziony, sprawdza rekordy w lokalnej pamięci podręcznej systemu. Bardzo ważne jest wyczyszczenie pamięci podręcznej DNS przeglądarki internetowej, ponieważ ma ona wyższy priorytet niż ogólnosystemowa pamięć podręczna.
Dla demonstracji opróżnijmy pamięć podręczną DNS w przeglądarce Google Chrome. Istnieją sposoby, aby to zrobić również w innych przeglądarkach, więc najlepiej wyszukaj w Google, jak to zrobić w przeglądarce, której używasz.
Aby rozpocząć, wpisz „chrome://net-internals/#dns" w pasku adresu URL i naciśnij Wchodzić:
Kliknij Wyczyść pamięć podręczną hosta aby wyczyścić wpisy DNS przechowywane w Google Chrome.
Linux to najlepszy system operacyjny do nauki obsługi sieci
Linux może początkowo wydawać się skomplikowany, ale jeśli poświęcisz trochę czasu na naukę jego działania, szybko zdasz sobie sprawę, że jest fantastyczny, a może nawet lepszy niż Windows czy macOS.
Większość serwerów online pracuje pod Linuksem i jest to jeden z powodów, dla których Linux jest idealny, jeśli chcesz nauczyć się obsługi sieci lub ogólnie dowiedzieć się, jak działają komputery.