Flush DNS na Linux: Systemd-Resolved, NetworkManager i NSCD
Opublikowany: 2025-09-26Kiedy system Linux zachowuje się dziwnie podczas uzyskiwania dostępu do stron internetowych - lub rozwiązywanie nieprawidłowych domen - może być czas na wypłukanie pamięci podręcznej DNS. Podobnie jak pamięć podręczna przeglądarki, pamięć podręczna DNS przechowuje dane tymczasowe, które pomagają poprawić prędkość przeglądania sieci i zmniejszyć opóźnienie. Jednak gdy ta pamięć podręczna staje się przestarzała lub uszkodzona, może prowadzić do problemów z łącznością. Jest to szczególnie ważne w scenariuszach rozwojowych lub sieciowych, w których nazwy domeny często się zmieniają. W tym artykule zbadamy, jak wypłukać pamięć podręczną DNS w systemach Linux, które używająsystemu,NetworkManagerlubNSCD(demon nazwy serwisowej pamięci podręcznej).
Zrozumienie buforowania DNS w Linux
Buforowanie DNS jest mechanizmem, który przechowuje lokalnie wyszukiwania DNS. Zapobiega to urazie powtarzających się zapytań dla tej samej nazwy domeny na serwery DNS, które mogą zwiększyć wydajność. Jednak Linux rozpowszechnia obowiązki rozwiązywania DNS w zależności od komponentów lub usług systemowych w użyciu.
W nowoczesnych dystrybucjach najprawdopodobniej napotkasz jeden z następujących systemów Resolver:
- Systemd-rozdzielony: powszechne w nowszych dystrybucjach, takich jak Ubuntu 18.04+ i Fedora.
- NetworkManager: Często współpracuje z systemem lub innym backendem.
- NSCD(demon pamięci podręcznej serwisowej): Znaleziono w niektórych tradycyjnych systemach UNIX i Enterprise Linux.
Każdy z tych systemów obsługuje DNS buforujący inaczej, co oznacza, że metoda spłukiwania pamięci podręcznej również różni się. Przejdźmy do każdego z nich szczegółowo.
Płuczanie pamięci podręcznej DNS w rozdzielczonym systemie
SystemD-Resolvedto usługa świadczona przezSystemDdo zarządzania zapytaczami DNS i buforowaniem. Staje się standardem w wielu rozkładach Linuksa głównego nurtu. Możesz sprawdzić, czy system korzysta z systemu-rozdzielonego przez działanie:
systemctl is-active systemd-resolved
Jeśli jest aktywny, przejdź do płukania pamięci podręcznej DNS za pomocą następującego polecenia:
sudo systemd-resolve --flush-caches
Aby potwierdzić, że pamięć podręczna została wyczyszczona lub wyświetlić bieżące statystyki, możesz użyć:
systemd-resolve --statistics
To polecenie wyświetla wskaźniki takie jak liczba wpisów pamięci podręcznej, trafień i braków, pomagając zapewnić, że płukanie pamięci podręcznej zakończyło się powodzeniem.

konfiguracja i debugowanie z rozdzielczością systemu
Dla zaawansowanych użytkowników konfiguracja usługi znajduje się w /etc/systemd/resolved.conf
. Możesz dostosowywać ustawienia, takie jak serwery DNS lub zachowania awarii. Jeśli doświadczasz uporczywych problemów DNS, rozważ sprawdzanie dzienników journalctl
w celurozwiązywania systemu:
journalctl -u systemd-resolved
Może to być niezwykle pomocne, gdy rozwiązywanie problemów z rozwiązywaniem problemów wynikających z błędnej konfiguracji DNS lub zatrucia pamięci podręcznej.
Korzystanie z NetworkManager do odświeżenia DNS
NetworkManager to narzędzie, które automatycznie obsługuje konfigurację sieci w wielu dystrybucjach Linux, w tym środowiska stacjonarne, takie jak GNOME i KDE. Chociaż sam NetworkManager nie buforuje DNS, często określa, jakie usługi (jak systemd-rozdzielone) obsługuje DN.
Aby odświeżyć ustawienia DNS za pomocą NetworkManager, możesz ponownie uruchomić usługę:
sudo systemctl restart NetworkManager
Ta metoda pośrednio wymusza ponowną rozdzielczość DNS poprzez ponowne uruchomienie połączeń i powiązanych usług. Jeśli chcesz być bardziej szczegółowy, możesz również wyłączyć i ponownie włączyć określone interfejsy sieciowe. Na przykład:
nmcli networking off nmcli networking on
Lub dla określonego urządzenia:
nmcli device disconnect eth0 nmcli device connect eth0
Ta metoda jest szczególnie przydatna podczas przełączania między sieciami lub rozwiązywanie problemów propagacji domen po zmianach DNS.
Sprawdzanie ustawień DNS za pomocą NMCLI
Jeśli chcesz sprawdzić, z którego DNS używa Twój NetworkManager, polecenie:
nmcli dev show | grep DNS
Wymienia obecnie aktywne adresy DNS. Jest to przydatne, gdy weryfikuje, że ustawienia DNS z DHCP lub adresowanie statyczne są prawidłowo stosowane.


Flushing DNS z NSCD (Demon nazwy serwisowej Cache)
Chociaż jest to mniej powszechne w nowoczesnych systemach stacjonarnych,NSCDjest nadal używany w środowiskach przedsiębiorstwa i starszych. Buforuje żądania usługi nazwy w celu przyspieszenia rozdzielczości nazw hosta, haseł i innych obiektów bazy danych. Najpierw upewnij się, że jest zainstalowany i uruchomiony:
sudo systemctl status nscd
Jeśli jest aktywny, płukanie pamięci podręcznej DNS jest proste:
sudo nscd -i hosts
To polecenie mówi NSCD do unieważnienia (-i) wpisów pamięci podręcznej dla nazw hostów. Jeśli chcesz spłukać wszystko, a nie tylko wpisy DNS, użyj:
sudo nscd -I
To ponownie załaduje całą konfigurację i wyczyści buforowane dane dla wszystkich obsługiwanych baz danych.
Konfigurowanie i monitorowanie NSCD
NSCD jest skonfigurowany przez /etc/nscd.conf
. Możesz włączyć lub wyłączyć buforowanie dla różnych typów danych, takich jak:
- Passwd
- grupa
- zastępy niebieskie
Plik jest dobrze wyznaczony, co czyni go rozsądnie przystępnym. Monitorowanie dzienników za pośrednictwem journalctl -u nscd
pozwala mieć oko na jego zachowanie i identyfikować potencjalne problemy.
Jak ustalić, jakiego mechanizmu buforowania używasz
Nie jesteś pewien, na którym systemie opiera się Twoja maszyna Linux w celu buforowania DNS? Oto kilka szybkich kontroli:
- Czy
systemd-resolve --status
zwraca znaczące wyjście? Jeśli tak, Twój system prawdopodobnie korzysta z systemu. - Czy
nscd -g
zapewnia wpisy do tabeli? Możesz użyćNSCD. - Czy
resolvectl
działa w twoim systemie? To dobra wskazówka dlarozdzielonego systemu. - Czy
dnsmasq
lubBIND
jest zainstalowany? Wskazuje to na bardziej zaawansowane konfiguracje wymagające osobnych kroków.
Zidentyfikowanie używanego DNS w użyciu ma kluczowe znaczenie przed próbą spłukiwania lub debugowania pamięci podręcznej DNS, ponieważ płukanie niewłaściwej pamięci podręcznej nie rozwiązuje twojego problemu.
Dlaczego regularne spłukiwanie DN jest korzystne
Podczas gdy buforowanie DNS poprawia wydajność, może to być również problematyczne. Oto dlaczego i kiedy możesz to spłukać:
- Po zmianie wpisów DNS:Niepełnane kamery mogą wskazywać na stare serwery IPS lub DNS.
- Rozwiązywanie problemów z problemami:uszkodzona lub zatruta pamięć podręczna prowadzi do nieudanych rozdzielczości.
- Scenariusze z czasów rozwoju:podczas testowania migracji domeny lub przełączania między serwerami oceny i serwerów produkcyjnych.
Regularne spłukiwanie pamięci podręcznej DNS pomaga utrzymać zdrowie systemu i pozwala uniknąć nieoczekiwanych problemów z dostępem do witryny - zwłaszcza dla zaawansowanych użytkowników, administratorów systemów i programistów.
Zaawansowane wskazówki i narzędzia
Jeśli pracujesz w złożonym środowisku lub potrzebujesz większej kontroli nad rozdzielczością DNS, oto kilka dodatkowych narzędzi i wskazówek:
- DNSMASQ:Działa jako lekki napastnik DNS z możliwościami buforowania.
- BIND (nazwany):serwer DNS klasy korporacyjnej z buforowaniem strefy strefy i niestandardowym wygaśnięciem.
dig
inslookup
:Narzędzia debugowania do testowania rekordów DNS w czasie rzeczywistym.host
:Prosty i bezpośredni do zapytania o rekordy DNS bez zakłócenia pamięci podręcznej.

Ostateczne myśli
Spłukanie pamięci podręcznej DNS w Linux jest prostym zadaniem - tylko wiesz, które narzędzie lub usługa obsługuje rozdzielczość DNS w twoim systemie. Niezależnie od tego, czy korzystaszz systemu,NetworkManager, czyNSCD, zrozumienie, w jaki sposób każdy działa, uzbroi cię w umiejętności szybkiego rozwiązania scenariusza rozwiązywania problemów związanych z DNS. Utrzymanie czystości pamięci podręcznej DNS to nie tylko dobra higiena - jest to niezbędne do niezawodnego i dokładnego rozdzielczości nazwy domeny w dzisiejszym dynamicznym krajobrazie sieciowym.