DNS zamienia nazwy takie jak example.cz na adresy IP, które rozumieją komputery. Ten artykuł wyjaśnia, do czego służy każdy typ rekordu, dlaczego zmiana nie działa od razu i jak samodzielnie sprawdzić rekord. Na tych podstawach opierają się poradniki o domenie dla VPS i domenie dla serwera Minecraft.
Czego potrzebujesz
- Własna domena (u dowolnego rejestratora) albo po prostu chęć zrozumienia, jak działa DNS
- Dostęp do zarządzania rekordami DNS domeny
- Komputer z Windows, macOS lub Linux do sprawdzania rekordów
- Około 15 minut
Jak działa DNS#
Gdy gracz wpisze mc.example.cz w Minecrafcie albo odwiedzający wpisze example.cz w przeglądarce, jego komputer pyta resolver (serwer DNS dostawcy internetu albo publiczny, na przykład 1.1.1.1). Resolver ustala, który autorytatywny serwer DNS przechowuje rekordy domeny, pyta go i zapamiętuje odpowiedź na pewien czas.
Trzy role, które często się mylą:
| Rola | Co robi | Przykład |
|---|---|---|
| Rejestrator | Tam, gdzie domena została kupiona i gdzie za nią płacisz. Ustala, które nameservery zarządzają domeną. | Firma, u której masz domenę .cz lub .com. |
| Hosting DNS (nameservery) | Serwer, który przechowuje rekordy domeny (A, MX …). Tu edytujesz rekordy. | Często sam rejestrator albo Cloudflare. |
| Resolver | Wyszukuje odpowiedzi dla użytkowników i je buforuje. | DNS Twojego dostawcy internetu, 1.1.1.1, 8.8.8.8. |
Edytuj rekordy tam, gdzie wskazują nameservery
Jeśli domena używa nameserverów Cloudflare, rekordy u rejestratora w ogóle nie są używane, nawet jeśli je tam widzisz. Najpierw ustal, gdzie faktycznie działa Twój DNS (polecenie dla rekordu NS znajdziesz niżej).
Typy rekordów#
| Typ | Do czego służy | Przykładowa wartość | Na co uważać |
|---|---|---|---|
| A | Przypisuje nazwie adres IPv4. | 203.0.113.10 | Tylko jeden rekord na nazwę, chyba że adresy mają się rotować. |
| AAAA | Przypisuje nazwie adres IPv6. | 2001:db8::10 | Jeśli usługa nie nasłuchuje na IPv6, klienci z IPv6 się nie połączą. |
| CNAME | Nazwa jest aliasem innej nazwy. | example.cz. | Nie może być w korzeniu domeny ani obok innego rekordu o tej samej nazwie. |
| SRV | Gdzie (nazwa i port) działa konkretna usługa. | 0 5 25570 mc.example.cz. | Celem musi być nazwa z rekordem A/AAAA, nie adres IP i nie CNAME. |
| MX | Dokąd dostarczana jest poczta domeny. | 10 mail.example.cz. | Cel musi mieć rekord A/AAAA; nie może być CNAME ani adresem IP. |
| TXT | Dowolny tekst: weryfikacja domeny, SPF, DKIM, DMARC. | "v=spf1 mx -all" | Domena może mieć tylko jeden rekord SPF. |
| NS | Które nameservery zarządzają domeną. | ns1.example.net. | Zmieniaj tylko przy przenoszeniu DNS gdzie indziej. |
| CAA | Które urzędy certyfikacji mogą wystawić certyfikat. | 0 issue "letsencrypt.org" | Jeśli ustawiasz CAA, nie zapomnij dopuścić urzędu, z którego korzystasz. |
| PTR | Przypisuje adresowi IP nazwę (reverse DNS). | mail.example.cz. | Ustawia go właściciel adresu IP, nie Ty w swojej domenie. Zobacz rDNS. |
A i AAAA#
Podstawa wszystkiego: mówią, na jaki adres IP wskazuje nazwa. Adres IPv4 swojego VPS znajdziesz w strefie klienta w zakładce Sieć (na przykład 203.0.113.10), tam też adres IPv6 (na przykład 2001:db8::10).
Rekord AAAA dodaj tylko wtedy, gdy usługa pod tą nazwą naprawdę nasłuchuje na adresie IPv6. Urządzenia z IPv6 zazwyczaj najpierw próbują IPv6.
CNAME#
CNAME mówi: „ta nazwa to tylko inna nazwa dla tamtej nazwy”. Typowo www.example.cz jako alias dla example.cz. Resolver wyszukuje wtedy rekord A/AAAA nazwy docelowej.
Zasady:
- Nazwa z rekordem CNAME nie może mieć żadnego innego rekordu (według standardu DNS, RFC 1034). Dlatego CNAME nie może być w korzeniu domeny (
example.cz), gdzie zawsze są rekordy NS i SOA. - Niektórzy dostawcy DNS obchodzą to własną funkcją (Cloudflare nazywa ją CNAME flattening): w korzeniu zwracają bezpośrednio adres IP celu.
SRV#
Rekord SRV mówi, pod jaką nazwą i na jakim porcie działa konkretna usługa. Używa go na przykład Minecraft Java Edition: dzięki niemu gracze nie muszą wpisywać portu.
_minecraft._tcp.mc.example.cz. 300 IN SRV 0 5 25570 mc.example.cz.| Część | Znaczenie |
|---|---|
_minecraft | Nazwa usługi, zawsze z podkreśleniem. |
_tcp | Protokół, zawsze z podkreśleniem. |
mc.example.cz. | Nazwa, której dotyczy rekord (to, co gracz wpisuje w grze). |
300 | TTL w sekundach. |
0 | Priorytet – klient najpierw próbuje celu z najniższym priorytetem. |
5 | Waga – stosunek wag rozstrzyga między celami o tym samym priorytecie. Przy jednym celu nie ma znaczenia. |
25570 | Port, na którym usługa faktycznie działa. |
mc.example.cz. | Cel – nazwa z rekordem A/AAAA zawierającym adres IP serwera. |
W interfejsie WWW dostawcy DNS pola mają podobne nazwy (Name / Service / Protocol, Priority, Weight, Port, Target). Pełną procedurę dla Minecrafta znajdziesz w artykule Adres serwera i własna domena. Bedrock Edition nie używa rekordów SRV.
MX i TXT#
- MX ustawia serwer pocztowy domeny. Wygrywa niższa liczba (priorytet). Celem musi być nazwa z rekordem A/AAAA.
- TXT przenosi tekst. Usługi takie jak Google czy Microsoft używają go do weryfikacji, że domena należy do Ciebie. Poczta używa go do SPF (kto może wysyłać pocztę dla domeny), DKIM (podpisywanie wiadomości) i DMARC (co robić z podrobionymi wiadomościami, rekord
_dmarc.example.cz).
Korzeń domeny i subdomeny#
- Korzeń (także „apex”,
@) to sama domena,example.cz. - Subdomena to wszystko przed nią:
www.example.cz,mc.example.cz,panel.example.cz. Subdomeny nie trzeba nigdzie „tworzyć”; wystarczy dodać dla niej rekord. - Gwiazdka (
*.example.cz) to rekord wieloznaczny dla wszystkich nazw, które nie mają własnego rekordu.
W polu Name wpisuj tylko pierwszą część
Większość interfejsów WWW DNS sama dokleja domenę do nazwy. Dla mc.example.cz wpisz w polu Name (Host) tylko mc, a dla korzenia @. Jeśli wpiszesz pełne mc.example.cz, skończysz z niechcianym mc.example.cz.example.cz.
Kropka na końcu (example.cz.) w zapisie pliku strefy oznacza „pełna nazwa, niczego nie dodawaj”. W interfejsach WWW zazwyczaj nie trzeba jej wpisywać; jeśli interfejs wymaga kropki, poinformuje o tym.
TTL i „propagacja”#
TTL (time to live) to liczba sekund, przez którą resolvery mogą pamiętać odpowiedź. Gdy zmienisz rekord, resolver, który aktualnie go pamięta, zwraca starą wartość, dopóki nie minie TTL. To właśnie potocznie nazywa się „propagacją DNS”.
| TTL | Kiedy używać |
|---|---|
300 (5 minut) | Planujesz zmianę (przenosiny serwera) albo jeszcze dostrajasz ustawienia. |
3600 (1 godzina) | Normalna praca, nic się nie zmienia. |
86400 (1 dzień) | Rekordy, które nie zmieniają się latami. |
Przenosiny bez przestoju
Dzień przed przenosinami serwera obniż TTL rekordu do 300. Po przenosinach nowy adres IP rozejdzie się w ciągu 5 minut. Gdy wszystko działa, możesz znów podnieść TTL.
Jeszcze dwie sytuacje:
- Zmiana nameserverów u rejestratora trwa dłużej, zwykle do 24 godzin.
- Zapamiętywane są także odpowiedzi negatywne. Jeśli ktoś zapyta o nazwę, zanim rekord powstanie, resolver zapamięta na pewien czas „taka nazwa nie istnieje”. Dlatego najpierw utwórz rekord, a dopiero potem go testuj.
Jak sprawdzić rekord#
W poleceniach zamień example.cz i mc.example.cz na własną domenę.
Windows
Otwórz PowerShell (lub Windows Terminal) i użyj nslookup:
nslookup example.cz
nslookup -type=AAAA example.cz
nslookup -type=SRV _minecraft._tcp.mc.example.cz
nslookup -type=NS example.cz
nslookup example.cz 1.1.1.1nslookup example.cz– pyta domyślny serwer DNS o adresy nazwy.-type=AAAA– typ rekordu, o który pytasz (A,AAAA,SRV,MX,TXT,NS,CNAME).1.1.1.1na końcu – pyta konkretny resolver zamiast domyślnego. Przydatne, gdy chcesz ominąć cache swojego dostawcy.
Server: one.one.one.one
Address: 1.1.1.1
Non-authoritative answer:
Name: example.cz
Address: 203.0.113.10Non-authoritative answer jest w porządku: odpowiedź przyszła z resolvera, a nie bezpośrednio z nameservera domeny.
W PowerShell możesz też użyć Resolve-DnsName:
Resolve-DnsName -Name example.cz -Type A -Server 1.1.1.1-Name– nazwa, której szukasz.-Type– typ rekordu.-Server– resolver, który pytasz (opcjonalnie).
macOS
Otwórz aplikację Terminal. Program dig jest w macOS preinstalowany:
dig +noall +answer example.cz A
dig +noall +answer example.cz AAAA
dig +noall +answer _minecraft._tcp.mc.example.cz SRV
dig +short example.cz NS
dig @1.1.1.1 +short example.cz Adig– narzędzie do zapytań DNS.+noall +answer– wypisuje tylko sekcję odpowiedzi, bez szczegółów technicznych.+short– wypisuje tylko samą wartość.example.cz A– nazwa i typ rekordu.@1.1.1.1– pyta konkretny resolver.
example.cz. 300 IN A 203.0.113.10Kolumny to: nazwa, pozostały TTL w sekundach, klasa (zawsze IN), typ rekordu i wartość.
Linux
Na Ubuntu 24.04 i Debianie 13 (na przykład bezpośrednio na swoim VPS) zainstaluj pakiet z programem dig, jeśli system go nie ma:
apt update && apt install bind9-dnsutilsapt update– pobiera aktualną listę pakietów. Bez tegoapt installmoże zakończyć się błędemUnable to locate package.&&– uruchamia drugie polecenie tylko wtedy, gdy pierwsze zakończyło się bez błędu.apt install– instaluje pakiet z repozytoriów systemowych. Uruchom jako root; jako zwykły użytkownik dodajsudoprzed oboma poleceniami.bind9-dnsutils– pakiet z narzędziamidiginslookup.
Następnie użyj tych samych poleceń co w macOS:
dig +noall +answer example.cz A
dig +noall +answer _minecraft._tcp.mc.example.cz SRV
dig +short example.cz NS
dig @1.1.1.1 +short example.cz A+noall +answer– tylko sekcja odpowiedzi.+short– tylko wartość.@1.1.1.1– zapytanie do konkretnego resolvera.
Przydatne publiczne resolvery do sprawdzania: 1.1.1.1 (Cloudflare), 8.8.8.8 (Google), 9.9.9.9 (Quad9). Jeśli nowy rekord widać tam, ale nie u Ciebie, masz w cache starą odpowiedź.
Dla zaawansowanych: zapytanie bezpośrednio do nameservera domeny
Cache nie wpływa na odpowiedź autorytatywnego nameservera. Znajdź nameserver domeny i zapytaj go bezpośrednio. Zamień ns1.example.net na jeden z nameserverów z pierwszego wyniku:
dig +short example.cz NS
dig @ns1.example.net +short mc.example.cz AJeśli rekord tam jest, a gdzie indziej nie, po prostu poczekaj, aż minie TTL. dig +trace example.cz pokazuje całą ścieżkę od serwerów root.
Częste błędy#
| Błąd | Co się dzieje | Rozwiązanie |
|---|---|---|
| Pełna domena w polu Name | Powstaje mc.example.cz.example.cz i adres nie działa. | W polu Name wpisz tylko mc. |
| Dwa różne rekordy A dla jednej nazwy | Raz się łączysz, raz nie. | Zostaw tylko rekord z właściwym IP. |
| Zapomniany rekord AAAA wskazujący na stary serwer | Strona lub serwer nie działają z sieci IPv6 (dane mobilne). | Skieruj rekord AAAA na nowe IPv6 albo go usuń. |
| CNAME obok innego rekordu | Dostawca DNS odrzuca rekord albo zachowuje się nieprzewidywalnie. | Dla nazwy użyj albo CNAME, albo A/AAAA, nie obu. |
| Celem SRV lub MX jest adres IP | Klient nie może znaleźć adresu. | Celem musi być nazwa z rekordem A/AAAA. |
| Proxy Cloudflare (pomarańczowa chmurka) dla serwera gier lub SSH | Strona działa, ale gra i SSH nie. | Ustaw te rekordy na DNS only (szara chmurka). Zobacz domena na VPS i Cloudflare. |
| Edycja rekordów u rejestratora, gdy NS wskazuje gdzie indziej | Zmiana nigdy nie zaczyna działać. | Edytuj rekordy tam, gdzie wskazuje NS. |
Wpis w pliku hosts na komputerze | Nazwa prowadzi u Ciebie gdzie indziej niż u wszystkich pozostałych. | Sprawdź plik hosts (Windows C:\, macOS i Linux /etc/hosts). |
Rozwiązywanie problemów#
Non-existent domain (Windows) lub NXDOMAIN (dig)#
Nazwa nie istnieje. Sprawdź literówki, czy rekord jest zapisany i czy edytujesz go u właściwych nameserverów. Jeśli zapytano o nazwę przed utworzeniem rekordu, odczekaj kilka minut (negatywna odpowiedź w cache).
Odpowiedź jest pusta, ale nazwa istnieje (No answer, ANSWER: 0)#
Nazwa istnieje, ale nie ma rekordu typu, o który pytasz. Na przykład masz rekord A, a pytasz o AAAA. Każde narzędzie pokazuje to nieco inaczej:
dig +shortnie wypisuje nic. Pełne wyjściedigpokazujestatus: NOERRORiANSWER: 0.nslookupw macOS i Linux wypisuje*** Can't find …: No answer.nslookupw Windows zamiast adresu wypisuje tylko szczegóły nameservera domeny (liniaprimary name server).
Dla SRV sprawdź, czy nazwa zawiera _minecraft._tcp. i właściwą subdomenę.
1.1.1.1 pokazuje nowe IP, ale u mnie wciąż jest stare#
Twój komputer albo dostawca internetu ma w cache starą odpowiedź. Poczekaj, aż minie TTL, albo wyczyść cache komputera:
Windows
ipconfig /flushdnsipconfig /flushdns– czyści cache DNS w Windows (łącznie z zapamiętanymi odpowiedziami negatywnymi).
macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSRespondersudo– uruchamia polecenie z uprawnieniami administratora (pyta o hasło do Maca; podczas wpisywania nic się nie wyświetla).dscacheutil -flushcache– czyści cache usługi katalogowej systemu.;– uruchamia drugie polecenie po pierwszym.killall -HUP mDNSResponder– sygnalizuje systemowej usłudze DNS, aby porzuciła cache.
Linux
sudo resolvectl flush-cachessudo– uruchamia polecenie z uprawnieniami administratora. Na VPS, gdzie logujesz się jako root, pomiń je.resolvectl flush-caches– czyści cache usługi systemd-resolved, której używa Ubuntu i wiele innych dystrybucji.
Jeśli polecenie się nie powiedzie (na przykład z błędem resolvectl: command not found), system nie używa systemd-resolved. Tak jest na przykład w standardowej instalacji Debiana: system sam nie buforuje odpowiedzi DNS i nie ma czego czyścić.
Przeglądarki mają własny cache; pomaga ich zamknięcie i ponowne otwarcie.
dig: command not found lub nslookup: command not found#
W Linuxie zainstaluj pakiet bind9-dnsutils (zobacz zakładkę Linux wyżej). W Windows zamiast dig użyj nslookup lub Resolve-DnsName.
Zmiana nie zadziałała nawet po kilku godzinach#
- Znajdź nameservery domeny:
dig +short example.cz NS(Windows:nslookup -type=NS example.cz). - Sprawdź, czy edytujesz rekordy u tego samego dostawcy, na którego wskazuje NS.
- Zapytaj nameserver bezpośrednio (zobacz „Dla zaawansowanych” wyżej). Jeśli rekordu tam nie ma, zmiana nie została zapisana.
Podsumowanie
- A i AAAA kierują nazwę na adres IP, CNAME na inną nazwę, SRV podaje nazwę i port usługi, MX kieruje pocztę.
- Rekordy edytujesz u dostawcy DNS, na którego wskazują nameservery domeny, niekoniecznie u rejestratora.
- TTL określa, jak długo resolvery pamiętają starą wartość; przed zmianą obniż go do 300 s.
- CNAME nie należy do korzenia domeny, a celem SRV/MX musi być nazwa, nie IP.
- Rekord sprawdzisz przez
nslookup(Windows) lubdig(macOS, Linux).