Як очистити / промити кеш DNS в Google Chrome?


903

Як ви, напевно, знаєте, Google Chrome має власний внутрішній кеш DNS. Чи є спосіб очистити це, не чекаючи очікування часу або закрити браузер?


Єдина причина, з якої я можу стерти кеш DNS Chrome, полягає в тому, що якщо я цього не роблю, я не можу отримати доступ до Google. На щастя, Google - не єдина пошукова система там (інакше я б цього питання не знайшов), і я маю справу лише з Chrome на роботі.
Нолонар

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

Відповіді:


1316

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


41
Як не дивно, це працює лише в одному напрямку. У мене є файл відображення у файлі хостів, який відображає доменне ім’я на локальній машині (тобто до 127.0.0.1), коли я видаляю відображення і очищаю кеш DNS в Chrome, він правильно завантажує сайт з Інтернету, але коли я додайте відображення знову у файл хостів, воно все ще завантажує сайт з Інтернету. Він показує, що кешований список DNS порожній у Chrome після очищення кешу DNS (також очищений кеш ОС за допомогою ipconfig / flushdns), але він завантажує сайт з Інтернету! Схоже на помилку.
Mee

10
Ще більше дратує, Chrome правильно показує IP-адресу (127.0.0.1) для цього домену в списку кешу DNS (після миття та спроби знову завантажити сайт), він все-таки завантажує сайт з Інтернету.
Mee

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файлу, просто натиснувши кнопку "Пульти розмиття гнізд", спрацює . Більше нічого не потрібно.
Pacerier

Так, я, мабуть, помітив таку саму поведінку ще з 1 року. Однак, можливо, це не працює весь час, бо я все одно отримую відгуки щодо цієї відповіді.
Боян Хрнкас

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

Працював для мене, навіть після того, як змив dns в cmd і зробив прийняту відповідь
Роб Скотт

1
Більше не працює.
Hippyjim

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=uk

"Перейдіть до інструментів -> параметри -> Під кришкою -> Очистити дані перегляду та встановіть прапорець" Очистити кеш "та натисніть на очистити дані веб-перегляду. Так, я знаю, це не кеш DNS, я б очікував, що він очиститься, але так, здається. І зараз це працює на мене ".


4
Підтверджено, що це працювало для мене. Очистити дані перегляду -> Очистити кеш. Жоден інший метод не працював. Дякую PJ.
Повітря

Це працювало на хром і хром, коли /etc/resolver/foo.com ігнорувався.
chovy

Схоже, 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.

Windows:

ipconfig /flushdns

ОС X до 10,7 (до Лева):

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+ (El Capitan, Сьєрра):

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" зробив, він сказав, що Discoutil не існує, можливо, це Сьєрра і вище?
Езра

20

В OS X 10.9.1 w / Chrome 32 мені потрібно було очистити кеш-пам'ять хоста та промити пули сокетів, щоб Chrome оновлював кеш DNS:

  1. Перейдіть до chrome: // net-Internals / # dns та натисніть "Очистити кеш хосту"
  2. Перейдіть до chrome: // net-Internals / # sockets abd натисніть "Flush Socket Pools"

Мені це знадобилося і в Windows 8.1, тому це не лише ОС X.
benrick

Chrome для Linux теж потрібенchrome://net-internals/#sockets
pengemizt

Chrome для Linux просто потребує флеш-розетки. Немає рум'ян DNS. superuser.com/a/611712/30982
Ілля Лінн

18

Це працювало для мене: очистіть та очистіть кеш диска

У Chrome натисніть значок гайкового ключа, а потім Опції . Перейдіть на вкладку Під капотом . Натисніть кнопку Очистити дані веб-перегляду в розділі Конфіденційність . Установіть прапорець "Очистити кеш" і натисніть кнопку Очистити дані веб-перегляду .

Це спрацювало негайно - мені навіть не довелося закривати браузер.


1
Здається, це працює, щоб змусити Chrome визнати зміни у файлі хостів.
minamhere

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

12

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

Моя ситуація полягає в тому, що я додав файл хост- файлу, але Chrome все ще переходить на IP-адресу, повернуту DNS. Firefox працює правильно.

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


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 хвилини), або вручну промийте їх.
Pacerier

6

Chrome_Hosts_Flush_Util :

Потрібно вирішити проблему, що Chrome не може використовувати правильні хости після зміни файлу хостів через Chrome, використовуючи пули сокетів.

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

Chrome надав інтерфейс для промивання пулу підключень на вкладці chrome: // net-Internals / # sockets, але я думаю, що це прикро, що мені потрібно спершу перейти на вкладку та натиснути на цю маленьку кнопку з трекпад.

Я виявив, що натискаючи кнопку пулу флеш-сокетів, Chrome виконує два ключові методи JavaScript.

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

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


Привіт, Boreas320, чи можете ви надати короткий опис того, що надає посилання у вашій відповіді, якщо вона застаріла? Відповіді, які є лише / здебільшого посиланням, не відволікають, оскільки можуть стати несвіжими.
bertieb

Вгору! Чудова ідея! Дякую! Однак для мене це не спрацювало, поки я не замінив javascript на document.getElementById ("sockets-view-flush-button"). Click ();
i_a

5

Я намагався очистити кеш-пам'ять DNS так багато способів, але мені нічого не вийшло. Нарешті я планував змінити запис DNS . Цей трюк підійде для всіх людей, які отримують доступ до Інтернету через високошвидкісне підключення до локальної мережі.

У підключенні до локальної мережі користувачеві зазвичай надаються дві адреси DNS. Один є основним, а другий - вторинним або альтернативним DNS-адресою. Що я зробив, це те, що я просто змінив вторинну адресу на первинну та навпаки. Це працювало для мене миттєво.

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


5

Повний процес:

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

Спробувавши потрапити на хост без файлу хоста, переконавшись у використанні http: //, тому це не просто пошук у Google. Неправильно вийшов із хрому "Версія 32.0.1700.76 м"

Додати хост-файл у файл хосту як 127.0.0.1, тепер він може потрапити в хром.

Видаліть з хост-файлу та запустіть ipconfig / flushdns, хром все ще показує сайт!

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

З кількістю різних відповідей тут мені цікаво, чи всі ми маємо дещо різні випадки використання.


4

Для мене приватний перегляд зробив свою справу (Нове вікно анонімного перегляду / приватне вікно).


Привіт Барт, ласкаво просимо до Суперусера! На жаль, це питання стосується комп'ютерної версії 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 натисніть "Flush Socket Pools"

І мені довелося також використовувати вкладку InCognito, як згадувалося вище.

Лише ТОГО Chrome використовував мій спеціальний запис DNS.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.