Jak wyczyścić / opróżnić pamięć podręczną DNS w Google Chrome?

903

Jak zapewne wiesz, Google Chrome ma własną pamięć podręczną DNS. Czy istnieje sposób, aby go wyczyścić bez czekania na przekroczenie limitu czasu lub zamknięcie przeglądarki?

Mee
źródło
Jedynym powodem, dla którego opróżniam pamięć podręczną DNS Chrome, jest to, że jeśli tego nie zrobię, nie będę mieć dostępu do Google. Na szczęście Google nie jest jedyną wyszukiwarką na rynku (inaczej nie znalazłbym tego pytania) i mam do czynienia tylko z Chrome w pracy.
Nolonar,
Dla mnie jest to prawdopodobnie spowodowane niepoprawnym serwerem DNS w resolv.conf. (Próbuję uzyskać dostęp do wewnętrznego serwera w sieci VPN). Ludzie z T-com źle skonfigurowali swój DNS, aby odpowiadać za pomocą swojej witryny reklamowej zamiast NXDOMAIN, a ludzie, którzy napisali Chrome, nie dbali o przestrzeganie kolejności resolv.conf, ale zamiast tego chętnie używają dowolnego serwera DNS, który wydaje się działać.
Ketil

Odpowiedzi:

1315

Przejdź do chrome: // net-internals / # dns i naciśnij przycisk „Wyczyść pamięć podręczną hosta”.

efemeryczny
źródło
41
O dziwo, działa to tylko w jednym kierunku. Mam mapowanie w pliku hosts, który mapuje nazwę domeny na maszynę lokalną (tj. 127.0.0.1), kiedy usuwam mapowanie i opróżniam pamięć podręczną DNS w Chrome, poprawnie ładuje witrynę z Internetu, ale kiedy dodaj mapowanie ponownie do pliku hosts, nadal ładuje stronę z Internetu. Pokazuje pustą listę buforowanych DNS w Chrome po wyczyszczeniu pamięci podręcznej DNS (wyczyściła pamięć podręczną systemu operacyjnego za pomocą ipconfig / flushdns), wciąż ładuje stronę z Internetu! Wygląda na błąd.
Mee
10
Jeszcze bardziej denerwujące jest to, że Chrome poprawnie pokazuje adres IP (127.0.0.1) dla tej domeny na liście pamięci podręcznej DNS (po opróżnieniu i ponownym załadowaniu strony), wciąż ładuje stronę z Internetu.
Mee
4
super, czy istnieje lista wszystkich opcji chrome: // * czy ktoś w ogóle wie?
Ian
29
@Ian chrome: // about
ephemient
10
To mi nie wystarczało. Musiałem „ipconfig / flushdns” w wierszu polecenia (znaleziono w odpowiedzi poniżej)
Adam Tal
175

Czasami musisz opróżnić pule gniazd po opróżnieniu DNS:

chrome://net-internals/#sockets
Bojan Hrnkas
źródło
4
Pamiętaj, że Chrome monitoruje teraz hostsplik i automatycznie czyści pamięć podręczną dnscache za każdym razem, gdy są jakieś zmiany w hostspliku. —Możesz łatwo przetestować, czy to działa w twoim systemie, dodając pustą linię po hostspliku, a lista w chrome://net-internals/#dnszostanie automatycznie uzupełniona. Usługa Windows dnscache będzie również (przynajmniej w systemie Windows 8.1) monitorować plik hosts pod kątem zmian, więc po zaktualizowaniu hostspliku wystarczy kliknąć przycisk „Opróżnij pule gniazd” . Nic więcej nie jest potrzebne.
Pacerier
Tak, wydaje mi się, że zauważyłem to samo zachowanie od około roku. Być może jednak nie działa to cały czas, ponieważ wciąż otrzymuję opinie na temat tej odpowiedzi.
Bojan Hrnkas
Właśnie przetestowane również na serwerze 2003. Ilekroć w pliku hosts pojawią się jakiekolwiek zmiany, usługa dnscache automatycznie przeładuje pamięć podręczną bez potrzeby ipconfig /flushdnsbzdur. ipconfig /flushdnswydaje się być czerwonym śledziem w całym tym wydaniu.
Pacerier
Pracował dla mnie, nawet po przepłukaniu dns w cmd i wykonaniu zaakceptowanej odpowiedzi
Rob Scott
1
Nie działa.
Hippyjim
53

„Przejdź do chrome: // net-internals / # dns” nie działa w przeglądarce Google Chrome, przynajmniej w moim systemie. Wygląda na to, że to rozwiązanie może działać w systemie operacyjnym Google Chrome, ale bardziej ogólnie w przeglądarce Google Chrome. Dla mnie link przekierowuje tutaj:
Projekty Chromium

Wygląda na to, że „Opróżnij pamięć podręczną” jest lepszym rozwiązaniem. Pamiętaj też, że moja przeglądarka mówi „Preferencje” zamiast „Opcje”

Przez http://www.google.com/support/forum/p/Chrome/thread?tid=026b6a1d9151a6e3&hl=pl

„Idź do narzędzi -> opcje -> Pod maską -> Wyczyść dane przeglądania i zaznacz„ opróżnij pamięć podręczną ”i kliknij wyczyść dane przeglądania. Tak tak, wiem, nie jest to pamięć podręczna DNS, którą spodziewałbym się wyczyścić, ale hej, wydaje się, że tak. A teraz działa dla mnie ”.

PJ Brunet
źródło
4
Potwierdziłem, że to działało dla mnie, Wyczyść dane przeglądania -> Opróżnij pamięć podręczną. Żadna inna metoda nie zadziałała. Dzięki PJ.
Air
To działało dla mnie zarówno w przypadku chromu, jak i chromu, gdy ignorowano /etc/resolver/foo.com.
chovy
Wygląda na to, że Google stopniowo zmienia nazwy niektórych wewnętrznych adresów URL w różnych wersjach. Od wersji 27.0.1421.0 (184274) ...
DocSalvager,
Przynajmniej czyszczenie buforowanych obrazów i plików nie działało dla mnie (Chromium 33 na Ubuntu) po włączeniu OpenVPN i przełączeniu mojego aktywnego serwera DNS. ( Wyczyść pamięć podręczną hosta, jak w popularnej odpowiedzi, też nie działało). Do tej pory nie znalazłem niczego, co działałoby oprócz ponownego uruchomienia przeglądarki lub wpisania adresu IP w adresie URL.
Jesse Glick
3
Czyszczenie obrazów i plików z pamięci podręcznej działało dla mnie! Nie mam pojęcia, dlaczego, ale tak się stało. Windows 8.1, Chrome 41.0.2272.89 m
Bing
43

Kliknięcie „wyczyść pamięć podręczną hosta” w chrome://net-internals/#dnspowinno to zrobić dla Google Chrome, ale na twoim komputerze są inne pamięci podręczne DNS.

Windows:

ipconfig /flushdns

OS X wcześniejszy niż 10.7 (przed Lion):

sudo dscacheutil -flushcache

OS X 10.7–10.9 (Lew, Lew górski, Mavericks):

sudo killall -HUP mDNSResponder

OS X 10.10+ (Yosemite):

sudo discoveryutil mdnsflushcache

OS X 10.11, 10.12+ (El Capitan, Sierra):

sudo killall -HUP mDNSResponder

Router może również buforować DNS (zrestartuj go lub przeczytaj instrukcję). Ostatecznym testem jest użycie dig , ale używa to hosta DNS twojej sieci, a nie domyślnego serwera autorytatywnego:

dig superuser.com

Aby wykonać zapytanie bezpośrednio ze źródła, spróbuj czegoś takiego:

dig superuser.com @ns1.serverfault.com
Johntron
źródło
1
„sudo discoveryutil mdnsflushcache” nie działało dla mnie na El Capitan (10.11), ale „sudo killall -HUP mDNSResponder” zadziałało, powiedziało, że discoveryutil nie istnieje, może to Sierra i tak dalej?
Ezra
20

W OS X 10.9.1 z Chrome 32 musiałem zarówno wyczyścić pamięć podręczną hosta, jak i opróżnić pule gniazd, aby Chrome odświeżył pamięć podręczną DNS:

  1. Przejdź do chrome: // net-internals / # dns i kliknij „Wyczyść pamięć podręczną hosta”
  2. Przejdź do chrome: // net-internals / # sockets abd kliknij „Flush Socket Pools”
Sina
źródło
Potrzebowałem go również w systemie Windows 8.1, więc nie jest to tylko OS X.
Ben
Potrzebny jest także Chrome dla Linuxachrome://net-internals/#sockets
pengemizt,
Chrome dla Linuxa wymaga tylko opróżnienia gniazda. Brak opróżnienia DNS. superuser.com/a/611712/30982
Elijah Lynn
18

To działało dla mnie: Opróżnij i wyczyść pamięć podręczną dysku

W Chrome kliknij ikonę klucza, a następnie Opcje . Przejdź do zakładki Pod maską . Kliknij przycisk Wyczyść dane przeglądania w sekcji Prywatność . Zaznacz pole wyboru „Opróżnij pamięć podręczną”, a następnie kliknij przycisk Wyczyść dane przeglądarki .

To zadziałało natychmiast - nawet nie musiałem zamykać przeglądarki.

Josh
źródło
1
Wydaje się, że działa to na zmuszenie Chrome do rozpoznawania zmian w pliku hosts.
minamhere
To działało dla mnie na Mac Chrome, po wypróbowaniu chrome://net-internals/#dnswspomnianej tu sztuczki koloru, bez powodzenia.
Markus Amalthea Magnuson
12

O ile mogę znaleźć, w najnowszych wersjach Chrome (mam 26.0.1410.43) nie ma (niezawodnego) sposobu, aby to zrobić, przynajmniej nie na komputerze Mac. Żadna z sugestii na tej stronie nie działała dla mnie.

Moja sytuacja jest taka, że ​​dodałem wpis pliku hosta , ale Chrome nadal korzysta z adresu IP zwróconego przez DNS. Firefox działa poprawnie.

W rzeczywistości chrome://net-internals/#dnsstrona po prostu kłamie na temat adresu IP. Pokazuje adres IP z wpisu hostów, ale najwyraźniej nie jest to miejsce, z którego faktycznie pobiera witrynę.

Stu
źródło
2
Mam ten sam problem. Próbowałem wyczyścić pamięć podręczną, wyczyścić wewnętrzną pamięć podręczną DNS, ipconfig flush dns i nadal ładuje lokalną stronę internetową z domeny na żywo. Jeśli otworzę go w „Incognito”, działa lub w przeglądarce Firefox działa, ale normalny Chrome odmawia zresetowania DNS
andrewtweber
9

Wiem, że to stare pytanie, ale denerwowały mnie te same skargi, co inne: nawet po wyczyszczeniu pamięci podręcznej może upłynąć minuta lub dwie, zanim nowe zmiany DNS zostaną uruchomione.

Jest na to kilka sposobów. Po wyczyszczeniu pamięci podręcznej DNS przez chrome: // net-internals / # dns (lub przy użyciu rozszerzenia, które osiąga ten sam wynik):

  1. Otwórz okno incognito, a nowe mapowania DNS dla domeny zaczną obowiązywać natychmiast.

  2. Wyczyść pamięć podręczną przeglądarki. Jest to uciążliwe, jeśli używasz przeglądarki do regularnego przeglądania. Możesz uruchomić osobną instancję przeglądarki jako inny użytkownik, a wyczyszczenie pamięci podręcznej na tym koncie nie zakłóci zwykłej pamięci podręcznej przeglądania. Nie próbowałem tego, ale powinno działać.

  3. Naciśnij CTRL + F5. Musiałem przytrzymać naciśnięty klawisz CTRL + F5 przez około sekundę, co kilka razy powoduje ponowne załadowanie strony. To dziwne zachowanie, ale działa i jest równie skuteczne. To jest moje preferowane podejście.

Idealnie powinna być wtyczka, która może wyczyścić DNS i pamięć podręczną (konkretnie tylko pamięć podręczną dokumentów, a nie pamięć podręczną plików cookie), ale jeszcze niczego takiego nie znalazłem.

AKTUALIZACJA: W OSX aplikacja Maska przeciwgazowa doskonale nadaje się do przełączania między plikami hostów, a wraz z obejściem nr 2 jest dość skuteczna.

aleemb
źródło
1
Odświeżenie nie pomoże ani trochę. Aktywne gniazda TCP będą nadal aktywne. Możesz to poczekać (1-2 minuty) lub ręcznie je przepłukać .
Pacerier
6

Chrome_Hosts_Flush_Util :

Ma to rozwiązać problem polegający na tym, że Chrome nie może używać poprawnych hostów po zmodyfikowaniu pliku hosts, ponieważ Chrome korzysta z pul gniazd.

Chrome przyspiesza długie połączenia w puli połączeń. Gdy Chrome stwierdzi, że żądanie może ponownie użyć połączenia w puli połączeń, nie przejdzie ponownie przez DNS, dlatego zawsze widzimy, że Chrome nie reaguje natychmiast na zmianę hostów.

Chrome ma interfejs do opróżniania puli połączeń w zakładce chrome: // net-internals / # sockets, ale myślę, że to denerwujące, że muszę najpierw przejść do tej karty i kliknąć tak mały przycisk za pomocą gładzika.

Odkryłem, że po kliknięciu przycisku puli gniazd do opróżniania Chrome wykonuje dwie kluczowe metody JavaScript.

g_browser.sendFlushSocketPools();
g_browser.checkForUpdatedInfo(false);

Tak więc enkapsuluję te dwie metody w skrypcie AppleScript, który można przekonwertować na aplikację OS X lub przepływ pracy Alfred, które można łatwo wywołać.

Boreas320
źródło
Cześć Boreas320, czy możesz podać podsumowanie tego, co zawiera link w odpowiedzi na wypadek, gdyby stała się nieaktualna? Odpowiedzi, które są tylko / głównie linkiem, są odradzane, ponieważ mogą stać się nieaktualne.
bertieb
W górę! Cudowny pomysł! Dzięki! Jednak nie działało to dla mnie, dopóki nie zastąpiłem javascript dokumentem.getElementById ('sockets-view-flush-button'). Click ();
i_a
5

Próbowałem opróżnić pamięć podręczną DNS na tak wiele sposobów, ale nic nie działało dla mnie. W końcu planowałem zmienić wpis DNS . Ta sztuczka będzie działać dla wszystkich osób, które uzyskują dostęp do Internetu za pośrednictwem szybkiego połączenia LAN.

W przypadku połączenia LAN użytkownik zazwyczaj otrzymuje dwa adresy DNS. Jeden jest pierwotny, a drugi to wtórny lub alternatywny adres DNS. To, co zrobiłem, to to, że właśnie zmieniłem adres dodatkowy na adres podstawowy i odwrotnie. To zadziałało dla mnie natychmiast.

Przez dwa dni utrzymywałem alternatywny adres DNS jako adres podstawowy. Problem sam się rozwiązał, a później przywróciłem stary wpis DNS.

Som
źródło
5

Pełny proces:

Utworzono witrynę w IIS (Windows 8), ustaw nagłówek hosta.

Próbowałem trafić do hosta bez pliku hosta, upewniając się, że używasz http: //, więc nie jest to tylko wyszukiwarka google. Poprawnie nie powiodło się w chrome „Wersja 32.0.1700.76 m”

Dodaj hosta do pliku hosta jako 127.0.0.1, teraz możesz trafić go w chrome.

Usuń z pliku hosta i uruchom ipconfig / flushdns, chrome nadal pokazuje stronę!

Nie rób nic poza CTRL + F5, a teraz poprawianie strony kończy się niepowodzeniem w Chrome.

Biorąc pod uwagę liczbę różnych odpowiedzi tutaj, zastanawiam się, czy wszyscy mamy nieco inne przypadki użycia.

obrabować
źródło
4

Dla mnie załatwiło to prywatne przeglądanie (Nowe okno incognito / prywatne okno).

Bart Broekhuizen
źródło
Cześć Bart, witaj w Superuser! Niestety to pytanie dotyczy wersji komputerowej Chrome, a nie wersji mobilnej. Sugeruję edycję odpowiedzi w celu odzwierciedlenia wersji komputerowej. Dzięki
Kanadyjczyk Łukasz
2

Wypróbuj DNS Flusher dla Chrome. Pamiętaj, że aby go użyć, wymaga flagi wiersza polecenia --enable-benchmarkingpodczas uruchamiania przeglądarki Chrome.

Sway Deng
źródło
rozszerzenie już nie istnieje
jmgarnier
2

Przejdź do chrome: // net-internals / # dns i naciśnij przycisk „Wyczyść pamięć podręczną hosta”. jak już odpowiedziano Również może być konieczne polecenie dscacheutil -flushcache w systemie OS X, aby opróżnić systemową pamięć podręczną DNS. ipconfig / flushdns w wierszu polecenia systemu Windows

Dipesh KC
źródło
2

W systemie Mac OS X żadne z wyżej wymienionych podejść nie działało dla mnie. Zastosowano następujące podejście:

Kliknij menu Chrome> preferencje> kliknij link show advanced settingsu dołu strony> kliknij clear browsing dataprzycisk w privacysekcji> wybierz tylko cached images and filesi download history(być może nie jest to wymagane później, ale też nie zaszkodzi)> kliknij clear browsing dataprzycisk.

Javad Sadeqzadeh
źródło
1

W przypadku użytkowników iPhone'a techniki te działają równie skutecznie. Musiałem przeprowadzić pewne testy strony internetowej i chciałem zastąpić normalny serwer DNS i użyć własnego serwera DNS z wpisami DNS, które nie są jeszcze publiczne.

Zastępuję wpis DNS w ustawieniach Wi-Fi na moim iPhonie 6 Plus na niestandardowym serwerze DNS. To wystarczyło dla Safari i Perfect Browser. Ale Chrome wydawał się to ignorować i miał własny zestaw wpisów DNS. NIE mogłem dowiedzieć się, skąd pochodzą.

Zrobiłem to, co opisano powyżej

  1. Przejdź do chrome: // net-internals / # dns i kliknij „Wyczyść pamięć podręczną hosta”
  2. Przejdź do chrome: // net-internals / # sockets abd kliknij „Flush Socket Pools”

I musiałem również użyć karty InCognito, jak wspomniano powyżej.

Tylko TO Chrome użył mojego niestandardowego wpisu DNS.

David Allen
źródło