Как очистить / очистить кэш DNS в Google Chrome?


902

Как вы, наверное, знаете, Google Chrome имеет собственный внутренний кеш DNS. Есть ли способ очистить его, не дожидаясь истечения времени ожидания или не закрыв браузер?


Единственная причина, по которой я могу очистить кеш DNS в Chrome, заключается в том, что если я этого не сделаю, я не могу получить доступ к Google. К счастью, Google - не единственная поисковая система (иначе я бы не нашел этот вопрос), и мне приходится иметь дело только с Chrome на работе.
Нолонар

Для меня это, вероятно, связано с неправильным DNS-сервером в resolv.conf. (Я пытаюсь получить доступ к внутреннему серверу по VPN). Люди в T-com неправильно настроили свой DNS для ответа своим рекламным сайтом вместо NXDOMAIN, а люди, написавшие Chrome, не заботились о соблюдении порядка resolv.conf, а вместо этого с радостью использовали любой DNS-сервер, который работает.
Кетил

Ответы:


1315

Перейдите к chrome: // net-internals / # dns и нажмите кнопку «Очистить кэш хоста».


41
Странно, это работает только в одном направлении. У меня есть сопоставление в файле hosts, которое отображает имя домена на локальный компьютер (т. Е. На 127.0.0.1), когда я удаляю сопоставление и очищаю кэш DNS в Chrome, он корректно загружает сайт из Интернета, но когда я снова добавьте сопоставление в файл hosts, он по-прежнему загружает сайт из интернета. Он показывает пустой список кэшированных DNS в Chrome после очистки кэша DNS (также очищается кэш ОС с помощью ipconfig / flushdns), тем не менее, он загружает сайт из Интернета! Похоже, ошибка.
Ми

10
Еще более раздражает то, что Chrome правильно отображает IP-адрес (127.0.0.1) для этого домена в списке кэша DNS (после сброса и повторной загрузки сайта), но при этом загружает сайт из Интернета.
Ми

4
офигенно, есть ли список всех опций chrome: // * в любом случае кто-нибудь знает?
Ян

29
@Ian Chrome: // about
ephemient

10
Мне было недостаточно. Пришлось «ipconfig / flushdns» в командной строке (см. Ответ ниже)
Адам Тал

175

Иногда вам нужно очистить пулы сокетов после очистки DNS:

chrome://net-internals/#sockets

4
Обратите внимание, что теперь Chrome отслеживает hostsфайл и автоматически очищает dnscache при любых изменениях в hostsфайле. - Вы можете легко проверить, работает ли это в вашей системе, добавив пустую строку после вашего hostsфайла, и список chrome://net-internals/#dnsбудет автоматически обновлен. - Служба dnscache в Windows также будет (по крайней мере, на win 8.1) отслеживать файл hosts на предмет изменений, поэтому После того, как вы обновите свой hostsфайл, просто нажмите кнопку «Очистить пулы сокетов» . Больше ничего не нужно.
Pacerier

Да, я, кажется, заметил то же самое поведение с 1 года или около того. Однако, возможно, это не работает все время, потому что я все еще получаю отклики на этот ответ.
Боян Хрнкас

Только что протестирован на Server 2003. При любых изменениях в файле hosts служба dnscache автоматически перезагружает кеш без всякой ipconfig /flushdnsерунды. ipconfig /flushdnsкажется, красная сельдь во всем этом выпуске.
Pacerier

Работал на меня, даже после того, как сбросил днс в cmd и сделал принятый ответ
Роб Скотт

1
Больше не работает.
Хиппиим

53

«Перейдите к chrome: // net-internals / # dns» не работает в браузере Google Chrome, по крайней мере, в моей системе. Похоже, что это решение может работать для ОС Google Chrome, но не для браузера Google Chrome. Для меня ссылка перенаправляет сюда:
Chromium Projects

Похоже, «Очистить кэш» является лучшим решением. Также обратите внимание, что мой браузер говорит «Настройки», а не «Настройки»

Через http://www.google.com/support/forum/p/Chrome/thread?tid=026b6a1d9151a6e3&hl=en

«Перейдите в раздел« Инструменты »->« Параметры »->« Под капотом »->« Очистить данные просмотра », установите флажок« очистить кэш »и нажмите« Очистить данные просмотра ». Да, да, я знаю, это не кэш DNS, который я ожидаю очистить, но эй, кажется, и теперь это работает для меня ".


4
Подтвердил, что это работает для меня, Очистить данные просмотра -> Очистить кэш. Ни один другой метод не работал. Спасибо, ПиДжей.
эфир

Это работало для меня как на хроме, так и на хроме, когда /etc/resolver/foo.com игнорировался.
Чови

Похоже, что Google постепенно вносит изменения в некоторые внутренние URL-адреса в разных версиях. Начиная с версии 27.0.1421.0 (184274) ...
DocSalvager

По крайней мере, очистка кэшированных изображений и файлов не работала у меня (Chromium 33 в Ubuntu) после включения OpenVPN и, таким образом, переключения моего активного DNS-сервера. ( Очистить кэш хоста, как в популярном ответе, тоже не сработало.) Пока что я не нашел ничего, что работало бы, кроме перезапуска браузера или ввода IP-адреса в URL.
Джесси Глик

3
Очистка кэшированных изображений и файлов работала на меня! Понятия не имею почему, но это так. Windows 8.1, Chrome 41.0.2272.89 м
Bing

43

Нажав кнопку «очистить кэш хоста», вы chrome://net-internals/#dnsдолжны сделать это для Google Chrome, но на вашем компьютере следует учитывать и другие кеши DNS.

Окна:

ipconfig /flushdns

OS X до 10,7 (до Lion):

sudo dscacheutil -flushcache

OS X 10.7–10.9 (Лев, Горный лев, Маверикс):

sudo killall -HUP mDNSResponder

OS X 10.10+ (Yosemite):

sudo discoveryutil mdnsflushcache

OS X 10.11, 10.12+ (Эль-Капитан, Сьерра):

sudo killall -HUP mDNSResponder

Ваш маршрутизатор также может кэшировать DNS (перезапустите его или прочитайте руководство). Конечным тестом является использование dig , но при этом используется DNS-сервер вашей сети, а не официальный сервер по умолчанию:

dig superuser.com

Чтобы сделать запрос прямо из источника, попробуйте что-то вроде:

dig superuser.com @ns1.serverfault.com

1
«sudo discoveryutil mdnsflushcache» не работал для меня на El Capitan (10.11), но «sudo killall -HUP mDNSResponder» сделал, он сказал, что discoveryutil не существует, может быть, это Сьерра и выше?
Ездра

20

В OS X 10.9.1 с Chrome 32 мне нужно было одновременно очистить кэш хоста и очистить пулы сокетов, чтобы Chrome обновил кэш DNS:

  1. Перейдите к chrome: // net-internals / # dns и нажмите «Очистить кэш хоста»
  2. Перейдите к chrome: // net-internals / # sockets abd и нажмите «Очистить пул сокетов»

Мне это нужно было и в Windows 8.1, так что это не просто OS X.
Бенрик

Chrome для Linux тоже нуженchrome://net-internals/#sockets
pengemizt

Chrome для Linux просто нуждается в сокете. Нет DNS-сброса. superuser.com/a/611712/30982
Элайджа Линн

18

Это сработало для меня: очистить и очистить кэш диска

В Chrome щелкните значок гаечного ключа, а затем Параметры . Перейдите на вкладку « Под капотом ». Нажмите на кнопку Очистить данные просмотра в разделе « Конфиденциальность ». Установите только флажок «Очистить кэш», а затем нажмите кнопку « Очистить данные браузера» .

Это сработало сразу - мне даже не пришлось закрывать браузер.


1
Похоже, это работает, чтобы заставить Chrome распознавать изменения в файле hosts.
minamhere

Это сработало для меня на Mac Chrome, после попытки chrome://net-internals/#dnsфлеш-трюка, упомянутой здесь, безуспешно.
Маркус Амальтея Магнусон

12

Насколько я могу найти, в последних версиях Chrome (я нахожусь на 26.0.1410.43), нет (надежного) способа сделать это, по крайней мере, на Mac. Ни одно из предложений на этой странице не сработало для меня.

Моя ситуация такова, что я добавил запись в файл hosts , но Chrome все еще использует IP-адрес, возвращаемый DNS. Firefox работает правильно.

На самом деле, chrome://net-internals/#dnsстраница просто врет об IP-адресе для меня. Он показывает IP из записи hosts, но это явно не то, откуда он фактически получает сайт.


2
Та же проблема здесь. Я попытался очистить кэш, очистить внутренний кэш DNS, ipconfig flush dns, и он все еще загружает локальный веб-сайт с живого домена. Если я открываю его в «Инкогнито», он работает или в Firefox работает, но обычный Chrome отказывается сбрасывать свой DNS
andrewtweber

9

Я знаю, что это старый вопрос, но меня раздражают те же жалобы, что и других: даже после очистки кэша могут пройти минуты или две, чтобы новые изменения DNS вступили в силу.

Есть несколько способов обойти это. После очистки DNS-кэша с помощью chrome: // net-internals / # dns (или с использованием расширения, которое достигает того же результата):

  1. Откройте окно инкогнито, и новые сопоставления DNS для домена вступят в силу немедленно.

  2. Очистить кеш браузера. Это громоздко, если вы используете свой браузер для регулярного просмотра. Вы можете запустить отдельный экземпляр браузера как другой пользователь, и очистка кеша в этой учетной записи не помешает вашему обычному кешу просмотра. Я не пробовал это, но это должно работать.

  3. Нажмите CTRL + F5. Я должен был удерживать CTRL + F5 нажатой в течение одной секунды, что последовательно перезагружало страницу пару раз. Это странное поведение, но оно работает и также эффективно. Это мой предпочтительный подход.

В идеале должен быть плагин, который может очищать DNS и кеш (в частности, только кеш документов, а не кеш cookie), но я пока не нашел ничего подобного.

ОБНОВЛЕНИЕ: В OSX приложение Gas Mask превосходно подходит для переключения между файлами хостов, и наряду с обходным решением № 2 оно весьма эффективно.


1
Обновление не поможет ни на секунду. Активные сокеты TCP все еще будут активны. Вы либо ждете (1-2 минуты), либо вручную очищаете их.
Пейсер

6

Chrome_Hosts_Flush_Util :

Это связано с тем, что Chrome не может использовать правильные хосты после изменения файла hosts из-за того, что Chrome использует пулы сокетов.

Chrome поддерживает длинные соединения в пуле соединений для ускорения. Когда Chrome обнаруживает, что запрос может повторно использовать соединение в пуле соединений, он не будет снова проходить через DNS, поэтому мы всегда понимаем, что Chrome не будет отвечать на изменение хостов немедленно.

Chrome предоставил интерфейс для очистки пула соединений на вкладке chrome: // net-internals / # sockets, но мне кажется досадным, что мне нужно сначала перейти на вкладку и щелкнуть маленькую кнопку с помощью трекпада.

Я обнаружил, что при нажатии кнопки пула сокетных потоков Chrome выполняет два ключевых метода JavaScript.

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

Поэтому я инкапсулирую эти два метода в сценарии AppleScript, который можно преобразовать в приложение OS X или рабочий процесс Альфреда, который можно легко вызвать.


Привет, Boreas320, можешь ли ты дать краткую информацию о том, что твоя ссылка дает в твоем ответе, если она устарела? Ответы, которые являются только / в основном ссылкой, не рекомендуется, поскольку они могут устареть.
bertieb

Up! Прекрасная идея! Спасибо! Однако это не сработало для меня, пока я не заменил javascript на document.getElementById ('sockets-view-flush-button'). Click ();
i_a

5

Я пытался очистить кэш DNS многими способами, но у меня ничего не получалось. Наконец, я планировал изменить свою запись DNS . Этот трюк будет работать для всех людей, которые выходят в Интернет через высокоскоростное подключение к локальной сети

При подключении к локальной сети пользователю обычно предоставляется два адреса DNS. Один является первичным, а другой - вторичным или альтернативным адресом DNS. Я просто изменил дополнительный адрес на основной и наоборот. Это сработало для меня мгновенно.

Я оставил альтернативный DNS-адрес в качестве основного в течение двух дней. Проблема решилась сама собой, и позже я восстановил старую запись DNS.


5

Полный процесс:

Создан сайт в IIS (windows 8), установлен заголовок хоста.

Попытка поразить хост без файла хоста, гарантируя использование http: //, чтобы он не просто выполнял поиск в Google. Исправлена ​​ошибка в Chrome "Версия 32.0.1700.76 m"

Добавьте хост к файлу хоста как 127.0.0.1, теперь можете поразить его в chrome.

Удалите из файла хоста и запустите ipconfig / flushdns, Chrome все еще показывает сайт!

Ничего не делайте, кроме сочетания клавиш CTRL + F5, и теперь сайт исправляет ошибку в Chrome.

С количеством различных ответов здесь я задаюсь вопросом, есть ли у всех нас немного различные варианты использования.


4

Для меня приватный просмотр сделал свое дело (Новое окно инкогнито / личное окно).


Привет, Барт, добро пожаловать в Superuser! К сожалению, этот вопрос касается компьютерной версии Chrome, а не мобильной версии. Я бы предложил отредактировать ваш ответ, чтобы отразить версию для настольного компьютера. Спасибо
канадский Люк

2

Попробуйте DNS Flusher для Chrome. Обратите внимание, что для его использования требуется флаг командной строки --enable-benchmarkingпри запуске браузера Chrome.


расширение больше не существует
jmgarnier

2

Перейдите к chrome: // net-internals / # dns и нажмите кнопку «Очистить кэш хоста». как уже отвечено Также вам может понадобиться команда dscacheutil -flushcache в OS X, чтобы очистить кэш DNS всей системы. ipconfig / flushdns в командной строке Windows


2

В Mac OS X ни один из вышеупомянутых подходов не работал для меня. Следующий подход сделал:

Выберите меню Chrome> настройки> щелкните ссылку show advanced settingsв нижней части страницы> нажмите clear browsing dataкнопку в privacyразделе> только выберите cached images and filesи download history(возможно, более поздняя версия не требуется, но и не помешает)> нажмите clear browsing dataкнопку.


1

Для пользователей iPhone эти методы работают так же эффективно. Мне пришлось провести некоторое тестирование веб-сайта, и я хотел переопределить обычный DNS-сервер и использовать свой собственный DNS-сервер с записями DNS, которые еще не являются общедоступными.

Я перезаписываю запись DNS в настройках Wi-Fi на моем iPhone 6 Plus на свой собственный DNS-сервер. Этого было достаточно для Safari и Perfect Browser. Но Chrome, похоже, игнорировал это и имел свой собственный набор записей DNS. Я не мог понять, откуда они пришли.

Я сделал то, что они описали выше

  1. Перейдите к chrome: // net-internals / # dns и нажмите «Очистить кэш хоста»
  2. Перейдите к chrome: // net-internals / # sockets abd и нажмите «Очистить пул сокетов»

И я должен был также использовать вкладку InCognito, как упоминалось выше.

Только тогда Chrome использовал мою собственную запись DNS.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.