15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
10.10.2024

Jak wyczyścić pamięć podręczną DNS w Windows, macOS i Chrome

Wyczyszczenie pamięci podręcznej DNS zmusza system operacyjny lub przeglądarkę do odrzucenia lokalnie przechowywanych rekordów DNS i pobrania aktualnych mapowań z autorytatywnych serwerów nazw. Ta pojedyncza operacja rozwiązuje zaskakująco szeroki zakres błędów połączenia — od błędów ERR_NAME_NOT_RESOLVED po nieaktualne rekordy IP pozostałe po migracji serwera.

Czym jest pamięć podręczna DNS? Jest to tymczasowa, lokalna baza danych utrzymywana przez system operacyjny (a osobno przez niektóre przeglądarki), która przechowuje wyniki poprzednich wyszukiwań DNS. Za każdym razem, gdy rozwiązywana jest nazwa hosta, taka jak example.com, wynikowy adres IP jest przechowywany wraz z licznikiem TTL (Time To Live). Do momentu wygaśnięcia tego TTL system całkowicie pomija resolver nadrzędny i używa buforowanego rekordu — co jest szybkie, ale staje się problemem w momencie, gdy rekord staje się nieaktualny, zostaje zatruty lub wskazuje na wycofany serwer.

Dlaczego pamięć podręczna DNS staje się problemem

Zrozumienie trybów awarii wyjaśnia, dlaczego opróżnienie pamięci podręcznej jest czasem jedynym właściwym rozwiązaniem:

  • Migracja serwera lub zmiana IP: Gdy witryna przenosi się na nową infrastrukturę, jej rekordy DNS są aktualizowane o nowy rekord A lub AAAA. Jeśli lokalna pamięć podręczna nadal przechowuje stary adres IP, każde żądanie trafia do niewłaściwego hosta — często skutkując przekroczeniem limitu czasu połączenia lub błędem niezgodności certyfikatu TLS.
  • Zatrucie pamięci podręcznej DNS: Złośliwe oprogramowanie i ataki typu man-in-the-middle mogą wstrzykiwać fałszywe rekordy do lokalnej pamięci podręcznej, po cichu przekierowując ruch na serwery kontrolowane przez atakującego. Opróżnienie pamięci podręcznej natychmiast usuwa zatrute wpisy.
  • Negatywne buforowanie: Nieudane wyszukiwanie DNS (odpowiedź NXDOMAIN) jest również buforowane. Jeśli domena była tymczasowo niedostępna i negatywny wynik został zbuforowany, system odmówi jej ponownego rozwiązania do momentu wygaśnięcia negatywnego TTL — nawet po przywróceniu domeny online.
  • Konflikty split-horizon DNS: Deweloperzy pracujący z lokalnymi nadpisaniami /etc/hosts lub resolverami przypisanymi przez VPN często napotykają nieaktualne wpisy w pamięci podręcznej, które zastępują zamierzone routing.
  • Artefakty po rozłączeniu VPN: Rezydualne wpisy DNS z sesji VPN mogą utrzymywać się po rozłączeniu, powodując wycieki DNS lub błędy routingu w sieci lokalnej.

Jak wyczyścić pamięć podręczną DNS w systemie Windows

Procedura jest identyczna dla systemów Windows 7, 8, 10 i 11. Jedyna istotna różnica polega na tym, czy preferujesz wiersz polecenia czy PowerShell.

Metoda 1: Wiersz polecenia (ipconfig /flushdns)

  1. Naciśnij Win + R, wpisz cmd, a następnie naciśnij Ctrl + Shift + Enter, aby uruchomić wiersz polecenia z uprawnieniami administratora. Alternatywnie wyszukaj Wiersz polecenia w menu Start, kliknij go prawym przyciskiem myszy i wybierz Uruchom jako administrator.
  2. Uruchom polecenie opróżniania:
ipconfig /flushdns
  1. Pomyślne opróżnienie zwraca:
Windows IP Configuration

Successfully flushed the DNS Resolver Cache.

Jeśli zamiast tego pojawi się błąd, upewnij się, że wiersz polecenia został otwarty z podwyższonymi uprawnieniami. Standardowe sesje użytkownika nie mają dostępu do zapisu w pamięci podręcznej usługi klienta DNS.

Metoda 2: Windows PowerShell

PowerShell udostępnia dedykowane polecenie cmdlet, które bezpośrednio współdziała z usługą klienta DNS, zamiast kierować przez starszy interfejs ipconfig.

  1. Naciśnij Win + X i wybierz Windows PowerShell (Administrator) lub Terminal (Administrator) w systemie Windows 11.
  2. Uruchom:
Clear-DnsClientCache

Po pomyślnym wykonaniu nie pojawia się żadne potwierdzenie — polecenie kończy się cicho. Aby sprawdzić, czy pamięć podręczna jest pusta, uruchom Get-DnsClientCache bezpośrednio po; nie powinno zwrócić żadnych wyników.

Metoda 3: Ponowne uruchomienie usługi klienta DNS

W rzadkich przypadkach, gdy powyższe polecenia zawodzą — zazwyczaj z powodu uszkodzonego stanu usługi klienta DNS — ponowne uruchomienie samej usługi czyści pamięć podręczną jako efekt uboczny:

Stop-Service -Name Dnscache -Force
Start-Service -Name Dnscache

Ważne zastrzeżenie: W niektórych konfiguracjach systemu Windows usługa klienta DNS jest ustawiona jako zależność dla innych usług sieciowych. Jej zatrzymanie może krótko przerwać łączność sieciową. Nie uruchamiaj tego na serwerze produkcyjnym bez okna konserwacyjnego.

Przeglądanie bieżącej pamięci podręcznej DNS (Windows)

Przed opróżnieniem często przydatne jest sprawdzenie, co jest zbuforowane, aby potwierdzić, czy nieaktualny rekord jest rzeczywiście przyczyną problemu:

Get-DnsClientCache

Wyświetla to wszystkie zbuforowane wpisy z ich TTL, typem rekordu i rozwiązanymi danymi — znacznie większa wartość diagnostyczna niż ślepe opróżnianie.

Jak wyczyścić pamięć podręczną DNS w systemie macOS

macOS używa mDNSResponder jako demona usługi DNS we wszystkich nowoczesnych wersjach. Mechanizm opróżniania pozostaje spójny od macOS Sierra, ale starsze wersje wymagały innych poleceń.

macOS Ventura, Monterey, Big Sur, Catalina, Mojave, High Sierra, Sierra (10.12 i nowsze)

  1. Otwórz Terminal przez Applications > Utilities > Terminal lub naciśnij Cmd + Space i wpisz Terminal.
  2. Uruchom:
sudo killall -HUP mDNSResponder
  1. Wprowadź hasło administratora, gdy zostaniesz o to poproszony. Pole hasła nie będzie wyświetlać znaków — jest to oczekiwane zachowanie. Naciśnij Enter, aby potwierdzić.

Nie pojawia się żaden komunikat o powodzeniu. Sygnał -HUP instruuje mDNSResponder, aby przeładował swoją konfigurację i wyczyścił pamięć podręczną bez pełnego restartu.

macOS El Capitan i Yosemite (10.11 / 10.10)

El Capitan używa tego samego polecenia mDNSResponder co powyżej. Yosemite tymczasowo zastąpił mDNSResponder przez discoveryd, wymagając innego podejścia:

sudo discoveryutil udnsflushcaches

macOS Mavericks, Mountain Lion i Lion (10.9 i starsze)

sudo killall -HUP mDNSResponder

Opróżnianie dodatkowych warstw pamięci podręcznej DNS w macOS

macOS utrzymuje więcej niż jedną pamięć podręczną DNS. Aby przeprowadzić dokładne opróżnienie — szczególnie istotne podczas debugowania problemów z split-DNS lub mDNS — uruchom wszystkie trzy polecenia kolejno:

sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache

dscacheutil -flushcache czyści pamięć podręczną usług katalogowych, która przechowuje dodatkowe dane rozwiązywania nazw używane przez procesy systemowe. Pominięcie go może pozostawić rezydualne wpisy, których mDNSResponder samo w sobie nie usuwa.

Jak wyczyścić pamięć podręczną DNS w Google Chrome

Chrome utrzymuje własną wewnętrzną pamięć podręczną DNS, która działa całkowicie niezależnie od resolvera na poziomie systemu operacyjnego. Jest to celowa decyzja architektoniczna — stos sieciowy Chrome (zbudowany na bibliotece net:: Chromium) wstępnie rozwiązuje domeny, które przewiduje, że odwiedzisz, i buforuje te wyniki w procesie. Oznacza to, że możesz opróżnić pamięć podręczną DNS systemu operacyjnego, a Chrome nadal będzie serwować nieaktualne rekordy z własnego magazynu.

Krok po kroku: Opróżnianie pamięci podręcznej DNS Chrome

  1. Otwórz Google Chrome.
  2. W pasku adresu przejdź do:
chrome://net-internals/#dns
  1. Kliknij przycisk Clear host cache. Natychmiast usuwa to wszystkie wpisy DNS przechowywane w pamięci podręcznej procesu Chrome.

Resetowanie pul gniazd Chrome

Wpisy pamięci podręcznej DNS i otwarte połączenia TCP/TLS to osobne kwestie. Jeśli wyczyściłeś pamięć podręczną DNS, ale Chrome nadal kieruje ruch przez stare połączenie (np. po zmianie IP serwera), musisz również opróżnić pulę gniazd:

  1. Przejdź do:
chrome://net-internals/#sockets
  1. Kliknij Flush socket pools.

Zamyka to wszystkie bezczynne i aktywne połączenia keep-alive, zmuszając Chrome do ponownego nawiązania świeżych połączeń TCP przy użyciu nowo rozwiązanych adresów IP.

Ponowne uruchamianie Chrome po opróżnieniu

Zamknij wszystkie okna Chrome całkowicie i ponownie otwórz przeglądarkę. W macOS upewnij się, że Chrome nie działa nadal w tle przez Dock — kliknij prawym przyciskiem myszy ikonę i wybierz Quit, zamiast tylko zamykać okno.

Porównanie pamięci podręcznej DNS: poziom systemu operacyjnego vs. poziom przeglądarki

WłaściwośćPamięć podręczna DNS systemu operacyjnegoPamięć podręczna DNS Chrome
ZakresWszystkie aplikacje w całym systemieTylko przeglądarka Chrome
Polecenie opróżniania (Windows)`ipconfig /flushdns``chrome://net-internals/#dns`
Polecenie opróżniania (macOS)`sudo killall -HUP mDNSResponder``chrome://net-internals/#dns`
Respektuje ustawienia TTL systemu operacyjnegoTakCzęściowo (używa własnej logiki TTL)
Dotyczy zmian DNS VPNTakNie natychmiast
Widoczny dla narzędzi diagnostycznych`Get-DnsClientCache`, `dscacheutil -cachedump`Tylko przez wewnętrzne narzędzia Chrome
Czyszczona przy restarcie systemuTakTak (pamięć procesu)
Czyszczona przy restarcie przeglądarkiNieTak

Polecenia opróżniania według platformy — przegląd

Platforma / WersjaPolecenie
Windows (wszystkie wersje)`ipconfig /flushdns`
Windows PowerShell`Clear-DnsClientCache`
macOS 10.12 i nowsze`sudo killall -HUP mDNSResponder`
macOS Yosemite (10.10)`sudo discoveryutil udnsflushcaches`
macOS (pełne opróżnienie)`sudo killall -HUP mDNSResponder && sudo dscacheutil -flushcache`
Google Chrome (wszystkie systemy operacyjne)`chrome://net-internals/#dns` > Clear host cache
Linux (systemd-resolved)`sudo systemd-resolve –flush-caches`
Linux (nscd)`sudo service nscd restart`

Linux jest tutaj uwzględniony, ponieważ administratorzy zarządzający środowiskami Hostingu VPS często muszą opróżniać pamięci podręczne DNS zarówno na lokalnej stacji roboczej, jak i na zdalnym serwerze jednocześnie podczas propagowania zmian DNS.

Typowe błędy rozwiązywane przez opróżnienie pamięci podręcznej DNS

  • ERR_NAME_NOT_RESOLVED — Chrome nie może rozwiązać nazwy hosta. Prawie zawsze jest to problem z DNS; opróżnij pamięci podręczne systemu operacyjnego i Chrome.
  • DNS_PROBE_FINISHED_NXDOMAIN — Resolver zwrócił odpowiedź o nieistniejącej domenie. Może to być nieaktualny negatywny wpis w pamięci podręcznej.
  • ERR_CONNECTION_TIMED_OUT po migracji serwera — Stary adres IP jest nadal buforowany. Opróżnij pamięć podręczną systemu operacyjnego i sprawdź za pomocą nslookup lub dig, czy zwracany jest nowy adres IP.
  • Błędy niezgodności certyfikatu TLS/SSL — Jeśli buforowany adres IP wskazuje na inny serwer niż ten, który posiada prawidłowy certyfikat, pojawi się błąd niezgodności nazwy certyfikatu. Jest to częste, gdy domena przenosi się między dostawcami hostingu. Jeśli zarządzasz infrastrukturą SSL, upewnij się, że Twoje Certyfikaty SSL są udostępnione na właściwym serwerze źródłowym przed wygaśnięciem TTL DNS.
  • Sporadyczne błędy 404 po migracji CMS — Witryna ładuje się, ale zasoby lub strony zwracają błąd 404. Często spowodowane przez CDN lub odwrotne proxy, które nadal rozwiązuje adres do starego źródła. Opróżnij pamięci podręczne na każdej warstwie.

Propagacja DNS a lokalna pamięć podręczna: kluczowe rozróżnienie

Powszechnym błędnym przekonaniem jest to, że wyczyszczenie lokalnej pamięci podręcznej DNS sprawi, że nowo opublikowany rekord DNS będzie natychmiast widoczny. Tak nie jest — jeśli nadrzędny resolver rekurencyjny (serwer DNS Twojego dostawcy usług internetowych lub publiczny resolver, taki jak 8.8.8.8) również zbuforował stary rekord, będziesz nadal otrzymywać stary adres IP do momentu wygaśnięcia pamięci podręcznej tego resolvera.

Prawidłowy przepływ diagnostyczny to:

  1. Sprawdź autorytatywny rekord bezpośrednio za pomocą dig @8.8.8.8 example.com A lub nslookup example.com 1.1.1.1.
  2. Jeśli autorytatywny rekord jest prawidłowy, ale lokalne rozwiązywanie jest błędne, opróżnij lokalną pamięć podręczną systemu operacyjnego.
  3. Jeśli sam autorytatywny rekord jest nadal błędny, problem leży na poziomie rejestratora DNS lub panelu sterowania hostingu — nie w lokalnej pamięci podręcznej.

Podczas zarządzania DNS dla domen hostowanych na Serwerach Dedykowanych zawsze ustawiaj niski TTL (300 sekund) co najmniej 24 godziny przed planowaną migracją. Minimalizuje to okno propagacji i zmniejsza zasięg nieaktualnych wpisów w pamięci podręcznej w całym internecie.

Implikacje bezpieczeństwa zarządzania pamięcią podręczną DNS

Zatrucie pamięci podręcznej DNS (znane również jako DNS spoofing) to klasa ataku, w której przeciwnik wstrzykuje złośliwe rekordy A lub CNAME do pamięci podręcznej resolvera, przekierowując użytkowników na fałszywe serwery. Chociaż DNSSEC zapewnia kryptograficzną walidację na poziomie protokołu, higiena lokalnej pamięci podręcznej pozostaje praktycznym środkiem pierwszej odpowiedzi.

Jeśli podejrzewasz, że Twoja pamięć podręczna DNS została zatruta:

  1. Natychmiast opróżnij lokalną pamięć podręczną za pomocą odpowiedniego polecenia dla Twojego systemu operacyjnego.
  2. Przełącz się na resolver walidujący DNSSEC, taki jak Cloudflare (1.1.1.1) lub Google (8.8.8.8).
  3. Sprawdź uruchomione procesy pod kątem złośliwego oprogramowania, które może modyfikować plik hosts (C:WindowsSystem32driversetchosts w systemie Windows, /etc/hosts w systemach Unix).
  4. Sprawdź ustawienia DNS routera — atakujący, którzy przejmują router, mogą przekierowywać wszystkie zapytania DNS w sieci niezależnie od stanu lokalnej pamięci podręcznej.

Dla firm prowadzących własną infrastrukturę poczty elektronicznej integralność DNS jest szczególnie krytyczna. Błędnie skonfigurowane lub zatrute rekordy DNS bezpośrednio wpływają na walidację SPF, DKIM i DMARC. Jeśli korzystasz z usług Hostingu Poczty E-mail, sprawdź, czy rekordy MX, SPF i DKIM są poprawnie rozwiązywane po każdej zmianie DNS.

Automatyzacja opróżniania pamięci podręcznej DNS

Dla deweloperów i administratorów systemów, którzy regularnie pracują ze zmianami DNS — szczególnie podczas konfiguracji Paneli Sterowania VPS, przełączania środowisk testowych lub migracji domen — automatyzacja opróżniania całkowicie eliminuje ręczny krok.

Zaplanowane zadanie 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 Highest

Plik plist launchd macOS (codzienne opróżnianie o 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>

Zapisz ten plik w ~/Library/LaunchAgents/com.local.flushdns.plist i załaduj go za pomocą launchctl load ~/Library/LaunchAgents/com.local.flushdns.plist.

Automatyczne opróżnianie jest najbardziej przydatne w potokach CI/CD, gdzie rekordy DNS są aktualizowane programowo jako część przepływu pracy wdrożenia, a agenci kompilacji muszą natychmiast rozwiązywać nowe rekordy po zastosowaniu zmiany.

Macierz decyzyjna: kiedy i gdzie opróżniać pamięć podręczną

ObjawOpróżnij pamięć podręczną systemu operacyjnegoOpróżnij pamięć podręczną ChromeOpróżnij pamięć podręczną routeraSprawdź nadrzędny resolver
Witryna ładuje się w Firefox, ale nie w ChromeNieTakNieNie
Witryna niedostępna we wszystkich przeglądarkachTakTakNieTak
Witryna niedostępna na wszystkich urządzeniach w sieciTakTakTakTak
Prawidłowy adres IP wyświetlany przez `nslookup`, ale witryna nadal nie działaNieTak (gniazda)NieNie
Witryna ładuje się u współpracowników, ale nie u CiebieTakTakNieTak
Właśnie zakończono migrację serweraTakTakNieTak
Podejrzewane zatrucie DNSTakTakTakTak

Praktyczna lista kontrolna przed i po opróżnieniu pamięci podręcznej

  • Potwierdź, że zmiana DNS propagowała się do autorytatywnych serwerów za pomocą dig lub narzędzia online, takiego jak whatsmydns.net, przed lokalnym opróżnieniem.
  • Zanotuj bieżący TTL rekordu, który rozwiązujesz — jeśli wynosi 86400 sekund (24 godziny), lokalne opróżnienie pomaga tylko Tobie; inni użytkownicy będą nadal widzieć stary rekord przez maksymalnie 24 godziny.
  • W systemie Windows uruchom ipconfig /displaydns przed opróżnieniem, aby uchwycić migawkę bieżącego stanu pamięci podręcznej do celów diagnostycznych.
  • Po opróżnieniu użyj nslookup example.com lub ping example.com, aby potwierdzić, że nowy adres IP jest zwracany przed otwarciem przeglądarki.
  • Jeśli pracujesz w środowisku Współdzielonego Hostingu WWW, pamiętaj, że serwery nazw dostawcy hostingu również buforują rekordy — skontaktuj się z pomocą techniczną, jeśli propagacja wydaje się zablokowana na poziomie serwera.
  • W przypadku Chrome, po wyczyszczeniu pamięci podręcznej DNS, wyczyść również pulę gniazd i wykonaj twarde przeładowanie (Ctrl + Shift + R w systemie Windows/Linux, Cmd + Shift + R w macOS), aby ominąć również pamięć podręczną HTTP przeglądarki.
  • Udokumentuj opróżnienie w dzienniku zmian, jeśli zostało wykonane w środowisku produkcyjnym — zmiany DNS i opróżnienia pamięci podręcznej są często pomijane podczas diagnozowania problemów po wdrożeniu kilka dni później.

FAQ

Czy wyczyszczenie pamięci podręcznej DNS wpływa na szybkość przeglądania?

Tymczasowo tak. Po opróżnieniu system musi wykonać nowe wyszukiwania DNS dla każdej nazwy hosta, z którą się kontaktuje, co dodaje niewielkie opóźnienie (zazwyczaj 20–100 ms na wyszukiwanie) do momentu ponownego zapełnienia pamięci podręcznej. Dla większości użytkowników jest to niezauważalne. Pamięć podręczna odbudowuje się automatycznie w ciągu kilku minut normalnego przeglądania.

Czy opróżnienie pamięci podręcznej DNS wyloguje mnie z witryn?

Nie. Wpisy pamięci podręcznej DNS są całkowicie oddzielone od plików cookie przeglądarki, tokenów sesji i stanu uwierzytelniania. Opróżnienie DNS nie dotyka żadnego z tych elementów.

Czym różni się ipconfig /flushdns od Clear-DnsClientCache?

Oba polecenia instruują usługę klienta DNS systemu Windows, aby wyczyściła swoją pamięć podręczną. ipconfig /flushdns to starszy interfejs, który komunikuje się z usługą za pośrednictwem narzędzia ipconfig; Clear-DnsClientCache to natywne polecenie cmdlet PowerShell, które bezpośrednio używa interfejsu WMI/CIM. Końcowy wynik jest identyczny, ale Clear-DnsClientCache jest skryptowalny i zwraca ustrukturyzowane obiekty, co czyni go preferowanym w kontekstach automatyzacji.

Dlaczego Chrome nadal wyświetla starą witrynę po opróżnieniu pamięci podręcznej DNS systemu operacyjnego?

Chrome utrzymuje własną wewnętrzną pamięć podręczną DNS, na którą opróżnienia na poziomie systemu operacyjnego nie mają wpływu. Musisz osobno wyczyścić pamięć podręczną Chrome przez chrome://net-internals/#dns. Ponadto, jeśli stare połączenie TCP jest nadal aktywne w puli gniazd Chrome, musisz również opróżnić pule gniazd przez chrome://net-internals/#sockets.

Jak często powinienem czyścić pamięć podręczną DNS?

Nie ma uniwersalnego harmonogramu. Czyść ją reaktywnie — gdy napotkasz błędy związane z DNS, po migracji serwera lub domeny, po podejrzanym incydencie bezpieczeństwa lub podczas przełączania między konfiguracjami sieci VPN i bez VPN. Rutynowe zaplanowane opróżnienia są uzasadnione tylko w środowiskach deweloperskich lub testowych, gdzie rekordy DNS zmieniają się często.

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij