Как да изчистите 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. Единствената съществена разлика е дали предпочитате Command Prompt или PowerShell.
Метод 1: Command Prompt (ipconfig /flushdns)
- Натиснете
Win + R, въведетеcmd, след което натиснетеCtrl + Shift + Enter, за да стартирате Command Prompt с администраторски права. Алтернативно, потърсете Command Prompt в менюто „Старт”, щракнете с десния бутон върху него и изберете Изпълни като администратор. - Изпълнете командата за изчистване:
ipconfig /flushdns- Успешното изчистване връща:
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.Ако вместо това видите грешка, уверете се, че сте отворили командния ред с повишени права. Стандартните потребителски сесии нямат права за запис в кеша на услугата DNS Client.
Метод 2: Windows PowerShell
PowerShell предоставя специален cmdlet, който взаимодейства директно с услугата DNS Client, вместо да преминава през стария интерфейс ipconfig.
- Натиснете
Win + Xи изберете Windows PowerShell (Admin) или Terminal (Admin) в 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 и по-нови)
- Отворете Terminal чрез
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 Сертификати са осигурени на правилния произход преди изтичането на DNS TTL.
- Периодични грешки 404 след миграция на CMS — Сайтът се зарежда, но активи или страници връщат 404. Често причинено от CDN или обратен прокси, все още разрешаващ стария произход. Изчистете кешовете на всяко ниво.
DNS разпространение срещу локален кеш: Критично разграничение
Честото погрешно схващане е, че изчистването на локалния DNS кеш ще направи новоопубликуван DNS запис незабавно видим. Няма да стане — ако горестоящият рекурсивен резолвър (DNS сървърът на вашия ISP или публичен резолвър като 8.8.8.8) също е кеширал стария запис, ще продължите да получавате стария IP, докато кешът на този резолвър не изтече.
Правилният диагностичен работен процес е:
- Проверете авторитетния запис директно, използвайки
dig @8.8.8.8 example.com Aилиnslookup example.com 1.1.1.1. - Ако авторитетният запис е правилен, но локалното разрешаване е грешно, изчистете локалния кеш на ОС.
- Ако самият авторитетен запис все още е грешен, проблемът е на ниво DNS регистратор или контролен панел на хостинга — не в локалния кеш.
При управление на DNS за домейни, хоствани на Dedicated Сървъри, винаги задавайте нисък 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 часа сутринта):
<?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 | Не | Да | Не | Не |
| Сайтът е недостъпен във всички браузъри | Да | Да | Не | Да |
| Сайтът е недостъпен на всички устройства в мрежата | Да | Да | Да | Да |
| Правилният IP е показан от `nslookup`, но сайтът все още не работи | Не | Да (сокети) | Не | Не |
| Сайтът се зарежда за колегите, но не и за вас | Да | Да | Не | Да |
| Току-що завършена миграция на сървър | Да | Да | Не | Да |
| Подозирано отравяне на 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–100ms на търсене), докато кешът се попълни отново. За повечето потребители това е незабележимо. Кешът се възстановява автоматично в рамките на минути при нормално сърфиране.
Ще ме изхвърли ли изчистването на DNS кеша от уебсайтовете?
Не. DNS кеш записите са напълно отделни от бисквитките на браузъра, токените на сесиите и състоянието на удостоверяване. Изчистването на DNS не засяга нито едно от тях.
Каква е разликата между ipconfig /flushdns и Clear-DnsClientCache?
И двете команди инструктират услугата DNS Client на Windows да изчисти кеша си. ipconfig /flushdns е стар интерфейс, който комуникира с услугата чрез помощната програма ipconfig; Clear-DnsClientCache е роден PowerShell cmdlet, който използва директно интерфейса WMI/CIM. Крайният резултат е идентичен, но Clear-DnsClientCache е скриптируем и връща структурирани обекти, което го прави за предпочитане в контексти на автоматизация.
Защо Chrome все още показва стария уебсайт, след като изчистих DNS кеша на ОС?
Chrome поддържа собствен вътрешен DNS кеш, който не се засяга от изчиствания на ниво ОС. Трябва отделно да изчистите кеша на Chrome чрез chrome://net-internals/#dns. Освен това, ако старата TCP връзка все още е активна в пула от сокети на Chrome, трябва също да изчистите пуловете от сокети чрез chrome://net-internals/#sockets.
Колко често трябва да изчиствам DNS кеша си?
Няма универсален график. Изчиствайте го реактивно — когато срещнете грешки, свързани с DNS, след миграция на сървър или домейн, след подозиран инцидент със сигурността или при превключване между VPN и не-VPN мрежови конфигурации. Рутинните планирани изчиствания са оправдани само в среди за разработка или тестване, където DNS записите се променят често.
