Як очистити DNS кеш у Windows, macOS та Chrome
Очищення кешу DNS змушує вашу операційну систему або браузер відкинути локально збережені DNS-записи та отримати актуальні відповідності від авторитетних серверів імен. Ця одна операція вирішує широкий спектр проблем із підключенням — від помилок ERR_NAME_NOT_RESOLVED до застарілих IP-записів, що залишилися після міграції сервера.
Що таке кеш DNS? Це тимчасова локальна база даних, яку підтримує ваша операційна система (а також окремо деякі браузери) і яка зберігає результати попередніх DNS-запитів. Щоразу, коли ви визначаєте ім’я хоста, наприклад example.com, отримана IP-адреса зберігається разом із лічильником TTL (Time To Live). До закінчення цього TTL ваша система повністю пропускає верхній резолвер і використовує кешований запис — це швидко, але стає проблемою в момент, коли запис застаріває, отруюється або вказує на виведений з експлуатації сервер.
Чому кеш DNS стає проблемою
Розуміння режимів збоїв пояснює, чому очищення кешу іноді є єдиним правильним рішенням:
- Міграція сервера або зміна IP: Коли сайт переходить на нову інфраструктуру, його DNS-записи оновлюються новим записом A або AAAA. Якщо ваш локальний кеш все ще містить старий IP, кожен запит надходить на неправильний хост — що часто призводить до тайм-ауту з’єднання або помилки невідповідності TLS-сертифіката.
- Отруєння кешу DNS: Шкідливе програмне забезпечення та атаки типу «людина посередині» можуть впроваджувати шахрайські записи у ваш локальний кеш, непомітно перенаправляючи трафік на сервери, контрольовані зловмисниками. Очищення кешу негайно видаляє отруєні записи.
- Негативне кешування: Невдалий DNS-запит (відповідь NXDOMAIN) також кешується. Якщо домен був тимчасово недоступний і негативний результат був закешований, ваша система відмовиться знову його визначати до закінчення негативного TTL — навіть після того, як домен знову з’явиться в мережі.
- Конфлікти split-horizon DNS: Розробники, які працюють з локальними перевизначеннями
/etc/hostsабо резолверами, призначеними VPN, часто стикаються із застарілими записами кешу, які перевизначають їхню передбачувану маршрутизацію. - Артефакти після відключення VPN: Залишкові DNS-записи від сеансу VPN можуть зберігатися після відключення, спричиняючи витоки DNS або збої маршрутизації в локальній мережі.
Як очистити кеш DNS у Windows
Процедура однакова для Windows 7, 8, 10 та 11. Єдина суттєва відмінність полягає в тому, чи надаєте ви перевагу командному рядку або PowerShell.
Метод 1: Командний рядок (ipconfig /flushdns)
- Натисніть
Win + R, введітьcmd, потім натиснітьCtrl + Shift + Enter, щоб запустити командний рядок із правами адміністратора. Або знайдіть Командний рядок у меню «Пуск», клацніть правою кнопкою миші та виберіть Запустити від імені адміністратора. - Виконайте команду очищення:
ipconfig /flushdns- Успішне очищення повертає:
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.Якщо замість цього ви бачите помилку, переконайтеся, що відкрили командний рядок із підвищеними привілеями. Стандартні сеанси користувача не мають доступу на запис до кешу служби DNS Client.
Метод 2: Windows PowerShell
PowerShell надає спеціальний командлет, який взаємодіє безпосередньо зі службою DNS Client, а не через застарілий інтерфейс ipconfig.
- Натисніть
Win + Xта виберіть Windows PowerShell (Адміністратор) або Термінал (Адміністратор) у Windows 11. - Виконайте:
Clear-DnsClientCacheУ разі успіху підтвердження не виводиться — команда завершується без повідомлень. Щоб переконатися, що кеш порожній, одразу після виконайте Get-DnsClientCache; він не повинен повертати жодних результатів.
Метод 3: Перезапуск служби DNS Client
У рідкісних випадках, коли наведені вище команди не спрацьовують — зазвичай через пошкоджений стан служби DNS Client — перезапуск самої служби очищає кеш як побічний ефект:
Stop-Service -Name Dnscache -Force
Start-Service -Name DnscacheВажливе застереження: У деяких конфігураціях Windows служба DNS Client налаштована як залежність для інших мережевих служб. Її зупинка може на короткий час перервати мережеве з’єднання. Не виконуйте це на робочому сервері без вікна технічного обслуговування.
Перегляд поточного кешу DNS (Windows)
Перед очищенням часто корисно перевірити, що саме закешовано, щоб підтвердити, чи є застарілий запис справжньою причиною вашої проблеми:
Get-DnsClientCacheЦе виводить усі кешовані записи з їхнім TTL, типом запису та розпізнаними даними — набагато більше діагностичної цінності, ніж сліпе очищення кешу.
Як очистити кеш DNS на macOS
macOS використовує mDNSResponder як демон служби DNS у всіх сучасних версіях. Механізм очищення залишається незмінним починаючи з macOS Sierra, але в старіших версіях потрібні були інші команди.
macOS Ventura, Monterey, Big Sur, Catalina, Mojave, High Sierra, Sierra (10.12 і пізніші)
- Відкрийте Термінал через
Applications > Utilities > Terminalабо натиснітьCmd + Spaceі введітьTerminal. - Виконайте:
sudo killall -HUP mDNSResponder- Введіть пароль адміністратора, коли з’явиться запит. Поле пароля не відображатиме символи — це очікувана поведінка. Натисніть
Enterдля підтвердження.
Повідомлення про успіх відсутнє. Сигнал -HUP інструктує mDNSResponder перезавантажити конфігурацію та очистити кеш без повного перезапуску.
macOS El Capitan та Yosemite (10.11 / 10.10)
El Capitan використовує ту саму команду mDNSResponder, що й вище. Yosemite тимчасово замінив mDNSResponder на discoveryd, що вимагає іншого підходу:
sudo discoveryutil udnsflushcachesmacOS Mavericks, Mountain Lion та Lion (10.9 і раніші)
sudo killall -HUP mDNSResponderОчищення додаткових шарів кешу DNS на macOS
macOS підтримує більше одного кешу DNS. Для ретельного очищення — особливо актуального при налагодженні проблем split-DNS або mDNS — виконайте всі три команди послідовно:
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcachedscacheutil -flushcache очищає кеш Directory Services, який зберігає додаткові дані розпізнавання імен, що використовуються системними процесами. Пропуск цього кроку може залишити залишкові записи, яких mDNSResponder сам по собі не торкається.
Як очистити кеш DNS у Google Chrome
Chrome підтримує власний внутрішній кеш DNS, який працює повністю незалежно від резолвера на рівні ОС. Це свідоме архітектурне рішення — мережевий стек Chrome (побудований на бібліотеці net:: Chromium) попередньо визначає домени, які, на його думку, ви відвідаєте, і кешує ці результати в процесі. Це означає, що ви можете очистити кеш DNS операційної системи, але Chrome все одно буде обслуговувати застарілі записи зі свого власного сховища.
Покрокова інструкція: Очищення кешу DNS Chrome
- Відкрийте Google Chrome.
- В адресному рядку перейдіть до:
chrome://net-internals/#dns- Натисніть кнопку Clear host cache. Це негайно очищає всі DNS-записи, що зберігаються у внутрішньому кеші Chrome.
Скидання пулів сокетів Chrome
Записи кешу DNS і відкриті TCP/TLS-з’єднання — це окремі питання. Якщо ви очистили кеш DNS, але Chrome все ще маршрутизує трафік через старе з’єднання (наприклад, після зміни IP сервера), вам також потрібно очистити пул сокетів:
- Перейдіть до:
chrome://net-internals/#sockets- Натисніть Flush socket pools.
Це закриває всі неактивні та активні keep-alive з’єднання, змушуючи Chrome встановити нові TCP-з’єднання з використанням щойно визначених IP-адрес.
Перезапуск Chrome після очищення кешу
Повністю закрийте всі вікна Chrome і знову відкрийте браузер. На macOS переконайтеся, що Chrome не продовжує працювати у фоновому режимі через Dock — клацніть правою кнопкою миші на іконці та виберіть Quit, а не просто закривайте вікно.
Порівняння кешу DNS: рівень ОС проти рівня браузера
| Властивість | Кеш DNS ОС | Кеш DNS Chrome |
|---|---|---|
| — | — | — |
| Область дії | Усі програми на рівні системи | Лише браузер Chrome |
| Команда очищення (Windows) | `ipconfig /flushdns` | `chrome://net-internals/#dns` |
| Команда очищення (macOS) | `sudo killall -HUP mDNSResponder` | `chrome://net-internals/#dns` |
| Дотримується налаштувань TTL ОС | Так | Частково (використовує власну логіку TTL) |
| Реагує на зміни DNS VPN | Так | Не одразу |
| Видимий для діагностичних інструментів | `Get-DnsClientCache`, `dscacheutil -cachedump` | Лише через внутрішні інструменти Chrome |
| Очищається при перезавантаженні системи | Так | Так (пам’ять процесу) |
| Очищається при перезапуску браузера | Ні | Так |
Команди очищення кешу для різних платформ
| Платформа / Версія | Команда |
|---|---|
| — | — |
| Windows (усі версії) | `ipconfig /flushdns` |
| Windows PowerShell | `Clear-DnsClientCache` |
| macOS 10.12 і пізніші | `sudo killall -HUP mDNSResponder` |
| macOS Yosemite (10.10) | `sudo discoveryutil udnsflushcaches` |
| macOS (повне очищення) | `sudo killall -HUP mDNSResponder && sudo dscacheutil -flushcache` |
| Google Chrome (усі ОС) | `chrome://net-internals/#dns` > Clear host cache |
| Linux (systemd-resolved) | `sudo systemd-resolve –flush-caches` |
| Linux (nscd) | `sudo service nscd restart` |
Linux включено тут, оскільки адміністратори, які керують середовищами VPS Хостингу, часто потребують одночасного очищення кешів DNS як на локальній робочій станції, так і на віддаленому сервері під час поширення змін DNS.
Поширені помилки, які вирішує очищення кешу DNS
ERR_NAME_NOT_RESOLVED— Chrome не може визначити ім’я хоста. Майже завжди це проблема DNS; очистіть кеші як ОС, так і Chrome.DNS_PROBE_FINISHED_NXDOMAIN— Резолвер повернув відповідь про неіснуючий домен. Може бути застарілим негативним записом кешу.ERR_CONNECTION_TIMED_OUTпісля міграції сервера — Старий IP все ще закешований. Очистіть кеш ОС і перевірте за допомогоюnslookupабоdig, що повертається новий IP.- Помилки невідповідності TLS/SSL сертифіката — Якщо закешований IP вказує на інший сервер, ніж той, що містить правильний сертифікат, ви отримаєте помилку невідповідності імені сертифіката. Це поширено, коли домен переходить між хостинг-провайдерами. Якщо ви керуєте SSL-інфраструктурою, переконайтеся, що ваші SSL Сертифікати налаштовані на правильному джерелі до закінчення TTL DNS.
- Переривчасті помилки 404 після міграції CMS — Сайт завантажується, але ресурси або сторінки повертають 404. Часто спричинено тим, що CDN або зворотний проксі все ще визначає старе джерело. Очистіть кеші на кожному рівні.
Поширення DNS проти локального кешу: критична відмінність
Поширена хибна думка полягає в тому, що очищення локального кешу DNS зробить щойно опублікований DNS-запис негайно видимим. Це не так — якщо рекурсивний резолвер вищого рівня (DNS-сервер вашого провайдера або публічний резолвер, наприклад 8.8.8.8) також закешував старий запис, ви продовжуватимете отримувати старий IP до закінчення терміну дії кешу цього резолвера.
Правильний діагностичний робочий процес:
- Перевірте авторитетний запис безпосередньо за допомогою
dig @8.8.8.8 example.com Aабоnslookup example.com 1.1.1.1. - Якщо авторитетний запис правильний, але ваше локальне визначення неправильне, очистіть локальний кеш ОС.
- Якщо сам авторитетний запис все ще неправильний, проблема знаходиться на рівні DNS-реєстратора або панелі керування хостингом — а не в локальному кеші.
При керуванні DNS для доменів, розміщених на Виділених Серверах, завжди встановлюйте низький TTL (300 секунд) щонайменше за 24 години до запланованої міграції. Це мінімізує вікно поширення та зменшує масштаб впливу застарілих записів кешу по всьому інтернету.
Наслідки для безпеки при управлінні кешем DNS
Отруєння кешу DNS (також відоме як DNS-спуфінг) — це клас атак, при якому зловмисник впроваджує шкідливі записи A або CNAME в кеш резолвера, перенаправляючи користувачів на шахрайські сервери. Хоча DNSSEC забезпечує криптографічну перевірку на рівні протоколу, підтримка чистоти локального кешу залишається практичним першочерговим заходом реагування.
Якщо ви підозрюєте, що ваш кеш DNS був отруєний:
- Негайно очистіть локальний кеш за допомогою відповідної команди для вашої ОС.
- Перейдіть на резолвер із перевіркою DNSSEC, наприклад Cloudflare (
1.1.1.1) або Google (8.8.8.8). - Перевірте запущені процеси на наявність шкідливого програмного забезпечення, яке може змінювати файл
hosts(C:WindowsSystem32driversetchostsу Windows,/etc/hostsу Unix-системах). - Перевірте налаштування DNS вашого роутера — зловмисники, які зламують роутер, можуть перенаправляти всі DNS-запити в мережі незалежно від стану локального кешу.
Для компаній, що керують власною поштовою інфраструктурою, цілісність DNS є особливо критичною. Неправильно налаштовані або отруєні DNS-записи безпосередньо впливають на перевірку SPF, DKIM та DMARC. Якщо ви користуєтеся послугами Поштового Хостингу, перевірте правильність визначення записів MX, SPF та DKIM після будь-яких змін DNS.
Автоматизація очищення кешу DNS
Для розробників і системних адміністраторів, які регулярно працюють зі змінами DNS — особливо під час налаштування Панелей Керування VPS, перемикання середовищ розробки або міграції доменів — автоматизація очищення повністю усуває ручний крок.
Заплановане завдання Windows (PowerShell):
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-Command Clear-DnsClientCache"
$trigger = New-ScheduledTaskTrigger -Daily -At "03:00AM"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "FlushDNSCache" -RunLevel HighestmacOS launchd plist (щоденне очищення о 3:00):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.local.flushdns</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>killall -HUP mDNSResponder</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>Збережіть цей файл у ~/Library/LaunchAgents/com.local.flushdns.plist та завантажте його за допомогою launchctl load ~/Library/LaunchAgents/com.local.flushdns.plist.
Автоматизовані очищення найбільш корисні в CI/CD-конвеєрах, де DNS-записи оновлюються програмно як частина робочого процесу розгортання, і агенти збірки повинні негайно визначати нові записи після застосування змін.
Матриця технічних рішень: коли і де виконувати очищення
| Симптом | Очистити кеш ОС | Очистити кеш Chrome | Очистити кеш роутера | Перевірити резолвер вищого рівня |
|---|---|---|---|---|
| — | — | — | — | — |
| Сайт завантажується у Firefox, але не в Chrome | Ні | Так | Ні | Ні |
| Сайт недоступний у всіх браузерах | Так | Так | Ні | Так |
| Сайт недоступний на всіх пристроях у мережі | Так | Так | Так | Так |
| `nslookup` показує правильний IP, але сайт все одно не працює | Ні | Так (сокети) | Ні | Ні |
| Сайт завантажується у колег, але не у вас | Так | Так | Ні | Так |
| Щойно завершено міграцію сервера | Так | Так | Ні | Так |
| Підозра на отруєння DNS | Так | Так | Так | Так |
Практичний контрольний список до і після очищення кешу
- Перед локальним очищенням підтвердіть, що зміна DNS поширилася на авторитетні сервери, використовуючи
digабо онлайн-інструмент, наприкладwhatsmydns.net. - Зверніть увагу на поточний TTL запису, який ви усуваєте — якщо він становить 86400 секунд (24 години), локальне очищення допомагає лише вам; інші користувачі все ще бачитимуть старий запис до 24 годин.
- У Windows виконайте
ipconfig /displaydnsперед очищенням, щоб зафіксувати знімок поточного стану кешу для діагностичних цілей. - Після очищення використовуйте
nslookup example.comабоping example.com, щоб підтвердити повернення нового IP перед відкриттям браузера. - Якщо ви працюєте в середовищі Спільного Веб-Хостингу, пам’ятайте, що сервери імен хостинг-провайдера також кешують записи — зверніться до служби підтримки, якщо поширення, схоже, застрягло на рівні сервера.
- Для Chrome зокрема, після очищення кешу DNS також очистіть пул сокетів і виконайте жорстке перезавантаження (
Ctrl + Shift + Rу Windows/Linux,Cmd + Shift + Rу macOS), щоб також обійти HTTP-кеш браузера. - Задокументуйте очищення в журналі змін, якщо воно виконується у виробничому середовищі — зміни DNS та очищення кешу часто упускаються з уваги при діагностиці проблем після розгортання через кілька днів.
Часті запитання
Чи впливає очищення кешу DNS на швидкість перегляду?
Тимчасово — так. Після очищення ваша система повинна виконувати нові DNS-запити для кожного імені хоста, з яким вона контактує, що додає невеликі накладні витрати на затримку (зазвичай 20–100 мс на запит) до повторного заповнення кешу. Для більшості користувачів це непомітно. Кеш автоматично відновлюється протягом кількох хвилин звичайного перегляду.
Чи виходить очищення кешу DNS із веб-сайтів?
Ні. Записи кешу DNS повністю відокремлені від файлів cookie браузера, токенів сеансу та стану автентифікації. Очищення DNS не торкається жодного з них.
Чим ipconfig /flushdns відрізняється від Clear-DnsClientCache?
Обидві команди інструктують службу DNS Client Windows очистити її кеш. ipconfig /flushdns — це застарілий інтерфейс, який взаємодіє зі службою через утиліту ipconfig; Clear-DnsClientCache — це рідний командлет PowerShell, який використовує інтерфейс WMI/CIM безпосередньо. Кінцевий результат однаковий, але Clear-DnsClientCache підтримує написання скриптів і повертає структуровані об’єкти, що робить його кращим у контекстах автоматизації.
Чому Chrome все ще показує старий сайт після того, як я очистив кеш DNS ОС?
Chrome підтримує власний внутрішньопроцесний кеш DNS, на який не впливають очищення на рівні ОС. Вам потрібно окремо очистити кеш Chrome через chrome://net-internals/#dns. Крім того, якщо старе TCP-з’єднання все ще активне в пулі сокетів Chrome, вам також потрібно очистити пули сокетів через chrome://net-internals/#sockets.
Як часто слід очищати кеш DNS?
Універсального розкладу не існує. Очищайте його реактивно — коли ви стикаєтеся з помилками, пов’язаними з DNS, після міграції сервера або домену, після підозрілого інциденту безпеки або при перемиканні між конфігураціями мережі з VPN і без нього. Регулярні заплановані очищення виправдані лише в середовищах розробки або тестування, де DNS-записи змінюються часто.
