Jak wyczyścić pamięć podręczną DNS w systemie Ubuntu?


45

Mam problemy związane z rozwiązaniem DNS w moim Ubuntu 9.10.
Przed złożeniem skargi do mojego dostawcy usług internetowych chciałbym odświeżyć moją lokalną pamięć podręczną DNS, podobnie jak w Windows ipconfig /flushdns.

Jak mogę to zrobić w Ubuntu?

Odpowiedzi:


54

Øhh, ubuntu domyślnie nie buforuje DNS. Więc nie ma nic do spłukiwania! (ale może robi to twój router SOHO). Zainstalowanie nscd sprawi, że DNS Ubuntu będzie buforował pamięć podręczną, po czym możesz wyczyścić pamięć podręczną - ale jest to poza tym kwestia, gdy jeszcze jej nie masz!


3
Z ciekawości mam 14.04 i bieganie nslookupmówi mi, że odpowiedź pochodzi z serwera 127.0.0.1. Ale - o ile wiem - nie mam zainstalowanego buforowania DNS (ani nscdteż dnsmasq). Jestem na Kubuntu ... czy to może być sprawa KDE Network Manager?
ekshuma

@ exhuma to samo tutaj na Ubuntu 14.04, więc nie jest to sprawa kubuntu.
LJ_1102

2
@ LJ_1102 @ exhuma To byłby menedżer sieci Ubuntu, nasłuchuje jako lokalny serwer DNS, ale przekazuje wszystkie żądania do wszystkiego, co jest zdefiniowane. Jako efekt uboczny (lub zgodnie z projektem) umożliwia to zmianę serwerów DNS w locie z interfejsu bez konieczności posiadania uprawnień roota. Zobacz na przykład to pytanie: unix.stackexchange.com/questions/59414/…
Raghd Hamzeh

19

System Ubuntu 12.04 i nowsze używa dnsmasq do lokalnej pamięci podręcznej. Wysłanie go SIGHUP (sudo killall -HUP dnsmasq) spowoduje ponowne odczytanie pamięci podręcznej.

UWAGI
Po otrzymaniu SIGHUP, dnsmasq czyści pamięć podręczną, a następnie ponownie ładuje / etc / hosts i / etc / ethers oraz dowolny plik podany przez --dhcp-hostsfile, --dhcp-optsfile lub --addn-hosts. Skrypt zmiany dzierżawy dhcp jest wywoływany dla wszystkich istniejących dzierżaw DHCP. Jeśli ustawiono opcję --no-poll, SIGHUP ponownie czyta /etc/resolv.conf. SIGHUP NIE odczytuje ponownie pliku konfiguracyjnego.


to wygląda rozsądnie. chociaż muszę znaleźć inny z problemów, które miałem (które są związane z nowymi witrynami w / etc / hosts i Opera), aby przetestować to i oznaczyć jako zaakceptowane zamiast innych: P
igorsantos07

W porządku. Rzeczywiście natknąłem się na to, aby wyczyścić mój własny wpis w pamięci podręcznej DNS. Gdy znalazłem rozwiązanie, czułem, że powinienem tutaj dodać swoje ustalenia. Nie wiem jednak, w której wersji Ubuntu zaczął używać dnsmasq.
ytjohn

1
To działa i powinno być oznaczone jako odpowiedź!
HDave

1
Gdyby modyfikacje mniejszościowe nie były zbanowane i nie były zachwycone, poprawiłbym „SIGUP” na SIGHUP .
James Haigh,

@ Igoru: Możesz użyć digdo testowania, czy pamięć podręczna rzeczywiście została wyczyszczona. Chciałem wyczyścić pamięć podręczną na jednym z moich routerów OpenWrt, dla których próbowałem dig @192.168.0.3 nixos.orgkilka razy (wystarczy każda istniejąca domena). Podczas buforowania zwykle ma czas zapytania 1 ms, ale po każdym wydaniu killall -HUP dnsmasq(jako root) na routerze mam około 27 ms po każdym wyczyszczeniu.
James Haigh,

13

Spróbuj wykonać następujące czynności:

sudo /etc/init.d/dns-clean start

Mi to pasuje.


1
Wydaje mi się, że od tej odpowiedzi wszystko się zmieniło, ponieważ wygląda na to, że nie będzie już działać w 14.04. Hej, Ubuntu, byłoby miło, gdyby istniał do tego interfejs, który nie byłby powiązany ze specyfiką konkretnych systemów rozpoznawania nazw i wersji systemu operacyjnego (a może późniejszych dystrybucji systemu operacyjnego ...).
Croad Langshan,

Działa w 15.04
Milan Simek,

Pracował w Ubuntu 14.04.5. Ten skrypt jest dostarczany przez pakiet pppconfig. Myślę, że nie jest domyślnie uwzględniony w dystrybucji.
ssoto

1

Właśnie miałem ten problem ze stroną, dla której zmieniłem DNS i szukając rozwiązania, znalazłem tę stronę.

Z mojego doświadczenia wynika, że ​​Firefox czasami przechowuje własną pamięć podręczną DNS i nie usuwa jej na czas. Jeśli więc przeglądasz witrynę w przeglądarce Firefox i nadal widzisz starą witrynę, wypróbowanie Chrome może rozwiązać problem. Jeśli to zadziała, możesz wyczyścić pamięć podręczną w przeglądarce Firefox. Stało się to w Ubuntu, nie wiem, czy tak się dzieje również w systemie Windows lub OSX.

Nie mam zainstalowanego nscd. Zauważyłem jednak, że w terminalu nowy DNS został znaleziony kilka minut później, więc problem sam się rozwiązał.


1

W zależności od kontekstu pytania może być konieczne wyczyszczenie pamięci podręcznej przeglądarki internetowej.

W przeglądarce Firefox odbywa się to poprzez: preferencje -> prywatność -> wyczyść swoją najnowszą historię [wystarczy zaznaczyć pole wyboru „cache”

W Chrome: przejdź do chrome: // net-internals / # dns i naciśnij przycisk „Wyczyść pamięć podręczną hosta”. (zobacz inną odpowiedź )

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.