Как очистить/промыть DNS кэш в Google Chrome?
Как вы, вероятно, знаете, Google Chrome имеет свой внутренний DNS кэш. Есть ли способ очистить его, не дожидаясь тайм-аута или закрыть браузер?
Как вы, вероятно, знаете, Google Chrome имеет свой внутренний DNS кэш. Есть ли способ очистить его, не дожидаясь тайм-аута или закрыть браузер?
Иногда вам нужно промыть пулы сокетов после промывки DNS:
chrome://net-internals/#sockets
“Переход в chrome://net-internals/#dns” не работает в браузере Google Chrome, по крайней мере, в моей системе. Похоже, что это решение, возможно, работает под управлением Google Chrome OS, но не под управлением браузера Google Chrome в целом. Для меня ссылка перенаправляется сюда: The Chromium Projects
Похоже, что “Опустошить кэш” - лучшее решение. Также обратите внимание, что в моем браузере написано “Настройки”, а не “Параметры”
Через http://www.google.com/support/forum/p/Chrome/thread?tid=026b6a1d9151a6e3&hl=en
“Перейти к инструментам -> Параметры -> Под капотом -> Очистить данные браузера и проверить "Очистить кэш”, а также нажать на кнопку “Очистить данные браузера”. Да, да, я знаю, это не кэш DNS, я бы ожидал, что он будет очищен, но эй, кажется. И теперь он работает на меня".
Нажатие кнопки “очистить кэш хоста” в chrome://net-internals/#dns
должно сделать это для Google Chrome, но есть и другие DNS кэши на вашем компьютере.
Windows:
ipconfig /flushdns
OS X pre-10.7 (до Lion):
sudo dscacheutil -flushcache
OS X 10.7-10. 9 (Lion, Mountain Lion, 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
Ваш маршрутизатор может кэшировать и DNS (перезапустите его или ознакомьтесь с руководством). Конечным тестом является использование dig , но при этом используется DNS хост вашей сети, а не авторитетный сервер по умолчанию:
Для запроса прямо из источника, попробуйте что-нибудь вроде:
dig superuser.com
В OS X 10.9.1 w/ Chrome 32 мне нужно было как очистить кэш хоста, так и прочистить пулы сокетов, чтобы заставить Chrome обновить DNS кэш:
Это сработало на меня: Опустошите и очистите дисковый кэш
В Chrome, нажмите на значок гаечного ключа, а затем Options. Перейдите на вкладку Under the Hood. Нажмите на кнопку Clear просмотра данных в разделе Privacy. Установите флажок “Очистить кэш” и нажмите на кнопку Clear просмотра данных.
Это сработало немедленно - мне даже не пришлось закрывать браузер.
Насколько я могу судить, в последних версиях Chrome (я на 26.0.1410.43) нет (надежного) способа сделать это, по крайней мере, не на Mac. Ни одно из предложений на этой странице мне не помогло.
Моя ситуация заключается в том, что я добавил запись в файл hosts , но Chrome все равно переходит на IP-адрес, возвращаемый DNS. Firefox работает корректно.
На самом деле, страница chrome://net-internals/#dns
просто лжет об IP адресе для меня. Она показывает IP-адрес из записи хостов, но это явно не то, откуда она на самом деле получает сайт.
Я знаю, что это старый вопрос, но меня раздражали те же жалобы, что и других: даже после очистки кэша он все еще может занять минуту или две для новых изменений DNS, чтобы запустить.
Есть несколько способов обойти это. После очистки DNS кэша через chrome://net-internals/#dns (или используя расширение, которое достигает того же результата):
Откройте окно инкогнито, и новые сопоставления DNS для домена вступят в силу немедленно.
Очистить кэш браузера. Это обременительно, если вы используете браузер для регулярного просмотра. Вы можете запустить отдельный экземпляр браузера как другой пользователь и очистка кэша в этом аккаунте не будет мешать вашему обычному кэшу браузера. Я не пробовал, но это должно работать.
Хит CTRL+F5. Пришлось пару раз держать нажатой клавишу CTRL+F5, которая пару раз подряд перезагружает страницу. Это странное поведение, но работает и так же эффективно. Это мой предпочтительный подход.
В идеале должен быть плагин, который может очистить DNS и кэш (в частности, только кэш документов, а не кэш cookie), но я пока ничего подобного не нашел.
UPDATE: На OSX приложение Gas Mask отлично подходит для переключения между хостовыми файлами, и вместе с #2 обходным путём, оно довольно эффективно.
Для решения проблемы Chrome не может использовать правильные хосты после модификации файл хостов из-за того, что Chrome использует пулы сокетов.
Chrome поддерживает длинные соединения в пуле соединений для ускорения. Когда Chrome обнаруживает, что запрос может повторно использовать соединение в пуле соединений, он не проходит через DNS снова, поэтому мы всегда воспринимаем, что Chrome не отвечает на изменения хостов сразу.
Chrome предоставил интерфейс для промывки пула соединений во вкладке chrome://net-internals/#sockets, но я думаю, что это раздражает, что мне нужно сначала перейти на вкладку, и нажать так маленькую кнопку с трекпадом.
Я обнаружил, что при нажатии на кнопку пула флеш сокетов, Chrome выполняет два ключевых метода JavaScript.
g_browser.sendFlushSocketPools();
g_browser.checkForUpdatedInfo(false);
Поэтому я инкапсулирую эти два метода в сценарий AppleScript, который может быть преобразован в OS X приложение или Alfred рабочий процесс, которые оба могут быть вызваны легко.
Полный процесс:
Создан сайт в IIS (окна 8), установить заголовок хоста.
Попробовал ударить по хосту без хост-файла, убедившись, что использовать http://, так что он не просто делать поиск Google. Правильно не удалось в chrome “Версия 32.0.1700.76 м”
Добавить хост в хост файл как 127.0.0.1, теперь можно ударить его в chrome.
Удалить с хоста файл и запустить ipconfig /flushdns, chrome по-прежнему показывает сайт!
Сделать ничего, кроме CTRL+F5 и теперь сайт исправляет ошибку в Chrome.
С количеством разных ответов здесь интересно, если мы все немного отличаемся случаи использования.
Я пытался очистить DNS кэш так много раз, но ничего не получалось. Наконец, я планировал изменить свою запись DNS. Этот трюк сработает для всех людей, которые получают доступ в Интернет через высокоскоростное LAN подключение.
При LAN подключении пользователю обычно предоставляется два DNS адреса. Один из них является первичным, а другой - вторичным или альтернативным DNS адресом. Я просто изменил вторичный адрес на первичный и наоборот.
я хранил альтернативный адрес DNS в качестве первичного в течение двух дней. Проблема решена сама собой, и позже я восстановил старую запись в DNS.
Для меня личный просмотр сделал трюк (Новое окно инкогнито/ личное окно).
Попробуйте DNS Flusher для Chrome. Обратите внимание, что для его использования необходим флаг командной строки, --enable-benchmarking
при запуске браузера Chrome.
На Mac OS X ни один из вышеперечисленных подходов не сработал для меня. Следующий подход сработал:
Нажмите Chrome меню > предпочтения > нажмите на ссылку show advanced settings
в нижней части страницы > нажмите кнопку clear browsing data
в разделе privacy
> выберите только cached images and files
и download history
(возможно, последнее не обязательно, но и не повредит) > нажмите кнопку clear browsing data
.
Для пользователей iPhone эти методы работают так же эффективно. Мне нужно было провести некоторое тестирование веб-сайта, и я хотел переопределить обычный DNS сервер и использовать свой собственный DNS сервер с DNS записями, которые еще не являются общедоступными.
Я переопределяю DNS запись в настройках wifi на моем iPhone 6 Plus на свой пользовательский DNS сервер. Этого было достаточно для Safari и Perfect Browser. Но Chrome, казалось, игнорировал это и имел свой собственный набор DNS-записей. Я не мог понять, откуда они взялись.
я сделал то, что они описали выше
Перейдите в chrome://net-internals/#dns и нажмите кнопку “Очистить кэш хоста”
Перейдите в chrome://net-internals/#sockets и нажмите “Flush Socket Pools”
И мне также пришлось использовать вкладку InCognito, как говорилось выше.
Только в Chrome использовалась моя пользовательская запись DNS.