Konfiguracja i rozwiązywanie problemów z DNS
Poznają Państwo sposób, w jaki serwery Linux rozwiązują nazwy hostów na adresy IP: skonfigurują resolvery, edytują /etc/hosts oraz użyją dig, nslookup i host do diagnozowania problemów z DNS, które przerywają łączność nawet wtedy, gdy sieć działa prawidłowo.
Konfiguracja i rozwiązywanie problemów z DNS to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Dlaczego DNS ma znaczenie na serwerze
Serwer może mieć idealnie skonfigurowaną sieć i zaporę, a mimo to nie być w stanie połączyć się ze światem zewnętrznym, jeśli nie potrafi rozpoznawać nazw. DNS tłumaczy przyjazne dla ludzi nazwy hostów, takie jak example.com, na adresy IP.
Znajomość sposobu rozpoznawania nazw — oraz metod jego diagnozowania — jest niezbędną umiejętnością sieciową.
Ścieżka rozpoznawania nazw
Gdy program potrzebuje adresu IP dla danej nazwy, Linux sprawdza źródła w określonej kolejności, zazwyczaj:
- Lokalny plik
/etc/hosts - Skonfigurowane serwery DNS (resolvery)
Kolejność określa wpis hosts: w pliku /etc/nsswitch.conf.
grep hosts /etc/nsswitch.conf
# hosts: files dnsPlik /etc/hosts
/etc/hosts lokalnie mapuje nazwy na adresy IP, z pominięciem DNS. Doskonale nadaje się do testów, obsługi wewnętrznych nazw hostów lub przypisania domeny do konkretnego adresu IP.
Każdy wiersz zawiera adres IP, a po nim jedną lub więcej nazw.
127.0.0.1 localhost
192.168.1.50 db.internal dbGdzie konfiguruje się resolvery
Klasycznym plikiem konfiguracyjnym jest /etc/resolv.conf, który zawiera listę serwerów nazw. We współczesnych systemach jest on często zarządzany przez systemd-resolved lub NetworkManager, dlatego bezpośrednia edycja może nie przynieść trwałego efektu.
Przed wprowadzeniem zmian sprawdź, jaka konfiguracja jest faktycznie używana.
cat /etc/resolv.conf
resolvectl statusUstawianie serwera DNS
W systemie korzystającym z systemd-resolved ustaw DNS dla konkretnego interfejsu zamiast edytować resolv.conf. Na serwerach opartych na Netplan konfigurację definiuje się w pliku YAML.
Ten przykład ustawia publiczne resolvery dla interfejsu.
sudo resolvectl dns eth0 1.1.1.1 8.8.8.8
resolvectl dns eth0Wyszukiwanie rekordów za pomocą dig
dig to najbardziej rozbudowane narzędzie do odpytywania DNS. Wyświetla odpowiedź oraz metadane zapytania.
Opcja +short ogranicza wynik do samej odpowiedzi — idealnie sprawdza się w skryptach.
dig example.com
dig +short example.comOdpytywanie o określone typy rekordów
DNS przechowuje wiele typów rekordów. Określ typ, aby sprawdzić pocztę, serwery nazw lub aliasy.
A— adres IPv4AAAA— adres IPv6MX— serwery pocztoweNS— serwery nazwCNAME— alias
dig example.com MX +short
dig example.com NS +shortnslookup i host
nslookup i host to prostsze alternatywy dla dig. Przydają się do szybkich kontroli oraz wyszukiwania odwrotnego (zamiany adresu IP na nazwę).
Wyszukiwanie odwrotne odpyta o rekord PTR przypisany do adresu.
host example.com
nslookup example.com
dig -x 8.8.8.8 +shortOdpytywanie konkretnego serwera
Aby sprawdzić, czy problem dotyczy konkretnego resolvera, skieruj zapytanie do określonego serwera za pomocą składni @. Jeśli publiczny resolver działa, a Twój nie, problem leży w konfiguracji DNS.
dig @1.1.1.1 example.com +short
dig @8.8.8.8 example.com +shortProcedura diagnozowania problemów
Gdy nazwa nie zostaje rozpoznana, sprawdzaj kolejne warstwy:
- Czy możesz pingować adres IP bezpośrednio? (wyklucza problemy z siecią)
- Czy działa
dig @1.1.1.1 name? (wyklucza problem z samą nazwą) - Czy działa
dig namez użyciem domyślnego resolvera? (pozwala zawęzić problem do konfiguracji resolvera) - Czy nieaktualny wpis w
/etc/hostsnie nadpisuje wyniku?
ping -c1 1.1.1.1
dig @1.1.1.1 example.com +short
dig example.com +shortNajlepsze praktyki
Zadbaj o niezawodne rozpoznawanie nazw:
- Używaj co najmniej dwóch resolverów, aby zapewnić nadmiarowość
- Nie edytuj ręcznie
resolv.conf, jeśli jest zarządzany automatycznie - Używaj
/etc/hostsdo testów, ale usuwaj nieaktualne wpisy - W skryptach preferuj
dig +short, aby uzyskać przejrzyste dane wyjściowe
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat diagnozowania problemów z DNS.
Podsumowanie
Potrafisz teraz konfigurować i diagnozować DNS na serwerze:
- Kolejność rozpoznawania nazw za pomocą
/etc/nsswitch.confi/etc/hosts - Resolvery w
resolv.conf/systemd-resolved - Odpytywanie za pomocą
dig,hostinslookup, w tym o określone typy rekordów i do konkretnych serwerów - Warstwowa procedura diagnozowania problemów
Uzupełnia to umiejętności związane z siecią i zaporą o warstwę nazewnictwa.
Często zadawane pytania
Czy lekcja „Konfiguracja i rozwiązywanie problemów z DNS” jest bezpłatna?
Tak — pełny tekst „Konfiguracja i rozwiązywanie problemów z DNS” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Co nauczysz się w „Konfiguracja i rozwiązywanie problemów z DNS”?
Poznają Państwo sposób, w jaki serwery Linux rozwiązują nazwy hostów na adresy IP: skonfigurują resolvery, edytują /etc/hosts oraz użyją dig, nslookup i host do diagnozowania problemów z DNS, które p… Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?
Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Konfiguracja i rozwiązywanie problemów z DNS”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?
Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawowa konfiguracja sieci
- Poznawanie zapór sieciowych (UFW/firewalld)
- Zarządzanie portami i bezpieczeństwo
- Konfiguracja i rozwiązywanie problemów z DNS