nslookup wysyła pytanie prosto do serwera DNS i pokazuje surową odpowiedź. Pomija plik hosts oraz pamięć podręczną systemu, więc jego wynik bywa inny niż to, co widzi przeglądarka. Ta różnica jest informacją, nie usterką narzędzia.
Najkrótsze użycie wygląda tak:
nslookup smashinglabs.pl
Polecenie działa tak samo w Windows, macOS i Linuksie. Zanim jednak zaczniesz zmieniać cokolwiek w panelu domeny, ustal, kto ci właściwie odpowiedział i czy odpowiedź w ogóle była odmowna.
Jak czytać odpowiedź nslookup?
Typowa odpowiedź wygląda tak:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: smashinglabs.pl
Address: 188.210.221.85
Cztery wiersze niosą cztery różne informacje:
| Wiersz | Co znaczy | Dlaczego to ważne |
|---|---|---|
Server |
nazwa serwera DNS, który odpowiedział | to on ustala, jaki wynik zobaczysz |
Address z portem #53 |
adres tego serwera i port usługi DNS | potwierdza, że pytanie poszło tam, gdzie chciałeś |
Non-authoritative answer |
odpowiedź pochodzi z pamięci pośrednika, nie od serwera odpowiadającego za domenę | wynik może być starszy niż aktualny stan strefy |
Name i Address |
nazwa i przypisany jej adres IP | dopiero to jest wynik zapytania |
Wiersz o odpowiedzi spoza źródła widuje się prawie zawsze i sam w sobie niczego złego nie oznacza. Mówi tylko, że pytany serwer trzymał gotową odpowiedź w pamięci. Jeśli przed chwilą zmieniłeś adres w panelu domeny, a widzisz stary adres, ten wiersz właśnie wyjaśnia dlaczego.
Czym różni się NXDOMAIN od pustej odpowiedzi?
To dwie różne odmowy i prowadzą do dwóch różnych ludzi. Pierwsza mówi, że nazwa nie istnieje:
** server can't find docs.smashinglabs.pl: NXDOMAIN
Druga mówi, że nazwa istnieje, ale nie ma pytanego rodzaju rekordu. Widać ją dopiero wtedy, gdy w komendzie wskażesz rodzaj rekordu:
nslookup -type=mx przyklad.pl
*** Can't find przyklad.pl: No answer
Pierwszy wynik to problem właściciela domeny - brakuje wpisu albo subdomena nigdy nie powstała. Drugi oznacza, że nazwa jest w porządku, a brakuje konkretnej informacji, o którą pytałeś. Przy zapytaniu o pocztę taki wynik znaczy, że domena nie ma rekordu MX i nikt nie przyjmie na nią wiadomości.
Firma zgłasza, że przestała dostawać maile na adres w swojej domenie. Strona otwiera się normalnie, więc pierwsze podejrzenie pada na serwer pocztowy. Zapytanie o rekord MX kończy się jednak odpowiedzią „No answer”, choć zapytanie o adres strony wraca poprawnie. Poczta nie działa, bo nikt nie odtworzył wpisu MX po przenosinach domeny do nowego operatora. To fikcyjna scena, ale każdy jej element zdarza się naprawdę.
Rozróżnienie ma jeszcze jedno zastosowanie. Gdy przeglądarka pokazuje komunikat o nieistniejącej domenie, sprawdź, czy ten sam wynik daje nslookup - a pełną procedurę takiej diagnozy rozpisaliśmy w tekście o odpowiedzi NXDOMAIN w przeglądarce.
Jak zapytać konkretny serwer DNS?
Adres serwera podajesz jako drugi argument, po nazwie domeny:
nslookup wikipedia.org 1.1.1.1
Domyślnie pytany jest resolwer ustawiony w systemie albo podany przez router. Wskazując serwer jawnie, porównujesz dwa źródła tej samej informacji. Zadaj to samo pytanie swojemu resolwerowi i publicznemu, a wynik rozstrzygnie, gdzie siedzi problem.
| Wynik porównania | Co z tego wynika |
|---|---|
| Oba serwery zwracają ten sam adres | DNS działa, szukaj przyczyny w warstwie połączenia albo aplikacji |
| Twój resolwer zwraca stary adres, publiczny nowy | zmiana się rozchodzi, poczekaj do wygaśnięcia zapamiętanej odpowiedzi |
| Twój resolwer odpowiada, publiczny zwraca NXDOMAIN | nazwa istnieje tylko w twojej sieci albo wpis jest lokalny |
| Oba zwracają NXDOMAIN | wpisu nie ma w strefie, wracaj do panelu domeny |
Czas życia zapamiętanej odpowiedzi określa TTL rekordu, ustawiony przez operatora strefy. Przed planowaną zmianą adresu obniż TTL z wyprzedzeniem - po zmianie nie skrócisz już tego, co inne serwery zdążyły zapamiętać.
Jak sprawdzić rekord MX, TXT, NS albo PTR?
Rodzaj rekordu wskazuje przełącznik -type, jednakowy we wszystkich systemach:
nslookup -type=mx wp.pl
Odpowiedź wygląda tak:
Non-authoritative answer:
wp.pl mail exchanger = 5 mx5.wp.pl.
wp.pl mail exchanger = 0 mx.wp.pl.
Liczba przed nazwą to priorytet, a niższa wartość znaczy wyższe pierwszeństwo. Serwer nadawcy próbuje najpierw wpisu z zerem, a po wpis z piątką sięga dopiero wtedy, gdy pierwszy nie odpowiada.
Cztery rodzaje zapytań pokrywają większość pracy przy domenie:
| Zapytanie | Po co je zadajesz |
|---|---|
nslookup -type=a nazwa |
adres, pod który trafi przeglądarka |
nslookup -type=mx nazwa |
serwery przyjmujące pocztę dla domeny |
nslookup -type=txt nazwa |
wpisy tekstowe, w tym polityka nadawców SPF |
nslookup -type=ns nazwa |
serwery nazw odpowiadające za strefę |
Zapytanie odwrotne, z adresu na nazwę, nie wymaga żadnego przełącznika:
nslookup 1.1.1.1
Odpowiedzią jest wpis PTR - w tym wypadku one.one.one.one. Ta nazwa należy do właściciela adresu i nie musi mieć nic wspólnego z domeną, która na ten adres wskazuje. Wynik zapytania odwrotnego traktuj więc jako informację o serwerze, nie o stronie.
Osobnego odczytu wymaga wpis pośredni, czyli CNAME:
www.github.com canonical name = github.com.
Name: github.com
Address: 140.82.121.3
Pytana nazwa wskazuje tu inną nazwę i dopiero ta druga ma adres. Zmieniając cokolwiek, zmieniasz wtedy nie ten wpis, który sprawdzałeś.
Kiedy wynik nslookup myli?
Cztery sytuacje potrafią pokazać obraz niezgodny z tym, co widzi klient twojej strony.
- Pamięć pośrednika oddaje starą odpowiedź. Wpis w panelu jest już nowy, a serwer wciąż podaje poprzedni adres, dopóki nie minie TTL.
- Plik hosts na komputerze kieruje ruch gdzie indziej. nslookup go nie czyta, więc pokaże adres z DNS, a przeglądarka pójdzie pod adres z pliku - i oba wyniki będą prawdziwe.
- Sieć firmowa ma własną strefę o tej samej nazwie. Wewnątrz biura nazwa rozwiązuje się na adres lokalny, z zewnątrz na publiczny.
- Domena ma kilka rekordów adresowych. nslookup pokaże wszystkie, a przeglądarka wybierze jeden, więc wynik testu nie musi opisywać tego samego serwera, z którym rozmawia klient.
Poprawnie rozwiązana nazwa nie dowodzi też, że strona odpowiada. DNS kończy pracę w chwili podania adresu, a wszystko dalsze rozstrzyga droga żądania do serwera. Adres masz, więc sprawdź teraz osiągalność hosta - wtedy przydaje się pomiar czasu powrotu pakietu.
nslookup czy dig?
Oba narzędzia pytają serwer DNS i oba pomijają plik hosts. Różni je forma odpowiedzi i dostępność.
| Kryterium | nslookup | dig |
|---|---|---|
| Windows | wbudowany w system | wymaga instalacji |
| Linux i macOS | ten sam pakiet narzędzi DNS co dig | standard w pracy administratora |
| Postać wyniku | krótka, gotowa do przeczytania | pełna odpowiedź z sekcjami i kodem wyniku |
| Do czego pasuje | szybkie sprawdzenie na cudzym komputerze | diagnoza, zgłoszenie, zapis do dokumentacji |
Na maszynie z Windows bez uprawnień do instalowania czegokolwiek nslookup jest jedynym narzędziem pod ręką i w zupełności wystarcza. Do zgłoszenia awarii lepszy jest dig, bo pokazuje kod odpowiedzi protokołu i czas życia rekordu wprost, bez interpretacji.
Za wygodę nslookup płacisz utratą szczegółu. Krótki wynik nie mówi, ile sekund zostało do wygaśnięcia zapamiętanej odpowiedzi - a przy rozchodzeniu się zmiany to jest pytanie rozstrzygające.
Co zapisać w zgłoszeniu do operatora?
Zgłoszenie odbite pytaniem o szczegóły kosztuje dzień zwłoki. Zbierz komplet od razu:
- Pytaną nazwę w pełnej postaci, razem z subdomeną.
- Rodzaj rekordu, o który pytałeś.
- Adres serwera DNS z wiersza
Serveroraz wynik z drugiego, publicznego serwera. - Pełną odpowiedź w postaci tekstowej, nie zrzut ekranu.
- Datę, godzinę i miejsce wykonania polecenia - biuro, dom czy serwer.
- Informację, czy i kiedy zmieniano wpisy w panelu domeny.
Punkt trzeci rozstrzyga najwięcej sporów. Dwa różne wyniki z dwóch serwerów są dowodem, że pytanie dotyczy rozchodzenia się zmiany, a nie awarii usługi.
Kolejne polecenia, którymi domykasz diagnozę na serwerze, zebraliśmy w mapie komend administracyjnych. Podział odpowiedzialności między domeną, DNS i środowiskiem strony opisuje z kolei tekst o tym, czym jest hosting i za co odpowiada.
Pytania o nslookup
Co to jest nslookup i do czego służy?
To polecenie wiersza poleceń, które wysyła zapytanie do serwera DNS i wypisuje odpowiedź. Sprawdzisz nim adres domeny, serwery poczty, wpisy tekstowe i serwery nazw strefy. Służy do diagnozy, nie do zmiany czegokolwiek - niczego nie modyfikuje ani w systemie, ani w domenie.
Jak sprawdzić adres IP domeny w Windows?
Otwórz wiersz poleceń i wpisz nslookup nazwa-domeny.pl. W odpowiedzi zobaczysz adres serwera DNS, który udzielił informacji, oraz nazwę i adres IP domeny. Narzędzie jest wbudowane w system, więc nie musisz niczego instalować ani mieć uprawnień administratora.
Co oznacza „Non-authoritative answer”?
Że odpowiedź przyszła z pamięci serwera pośredniczącego, a nie od serwera odpowiadającego za strefę domeny. To normalny stan przy większości zapytań. Znaczy jednak, że wynik może być starszy niż aktualny wpis - jeśli właśnie zmieniałeś rekord, poczekaj do wygaśnięcia jego czasu życia.
Dlaczego nslookup pokazuje inny adres niż przeglądarka?
Bo pytają w innych miejscach. nslookup rozmawia z serwerem DNS, a przeglądarka pyta system, a ten najpierw sprawdza plik hosts i swoją pamięć podręczną. Różnica pojawia się też wtedy, gdy przeglądarka korzysta z szyfrowanego DNS ustawionego we własnych opcjach, innego niż serwer systemowy.
Jak sprawdzić rekord MX domeny?
Wpisz nslookup -type=mx nazwa-domeny.pl. Wynik pokaże serwery przyjmujące pocztę oraz ich priorytety, gdzie niższa liczba oznacza wyższe pierwszeństwo. Odpowiedź „No answer” przy poprawnie działającej nazwie znaczy, że domena nie ma rekordu MX i poczta na nią nie dojdzie.