873

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

16 ответов16

1271

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

160

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

chrome://net-internals/#sockets
48

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

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

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

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

42

Нажав на "очистить кэш хоста" в 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
19

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

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

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

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

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

10

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

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

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

9

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

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

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

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

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

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

ОБНОВЛЕНИЕ: В OSX приложение Gas Mask превосходно подходит для переключения между файлами хостов, и наряду с обходным решением № 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 или рабочий процесс Альфреда, который можно легко вызвать.

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

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

3

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

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .