Przejdź do treści
Poczta Gabinet Wybierz plan

DNS_PROBE_FINISHED_NXDOMAIN: jak naprawić błąd w przeglądarce i w DNS

DNS_PROBE_FINISHED_NXDOMAIN: jak naprawić błąd w przeglądarce i w DNS

DNS_PROBE_FINISHED_NXDOMAIN oznacza, że Chrome nie zdołał ustalić adresu IP strony, choć Twój DNS ogólnie działa. Jako odwiedzający sprawdź adres, wyczyść pamięć podręczną DNS i spróbuj innego serwera DNS. Jako właściciel strony uruchom dig i odczytaj status: NXDOMAIN, puste NOERROR i SERVFAIL wskazują na różne przyczyny, mimo że przeglądarka pokazuje dla wszystkich trzech ten sam kod.

Odtworzyliśmy typowe scenariusze w izolowanym laboratorium DNS i zapisaliśmy prawdziwe wyniki dig, nslookup, host i Chromium. Poniżej: co oznacza każda odpowiedź, jak długo trwa negatywne cache oraz tabela „co pokazuje dig -> przyczyna -> rozwiązanie”.

Jak testowaliśmy

Stanowisko testowe RichHost, izolowany kontener Ubuntu 24.04 (2 vCPU / 8 GB), październik 2026. Autorytatywne serwery BIND 9.18.39 z własnym „rootem”, strefą test. i jedną domeną na każdy scenariusz; rekurencyjny resolver Unbound 1.19.2 z walidacją DNSSEC; jako klienci DiG 9.18.39 i Chromium 141 (headless). Publiczny DNS jest z kontenera niedostępny, dlatego wszystkie nazwy są testowe (domena .test jest zarezerwowana w RFC 6761), a adresy pochodzą z zakresów dokumentacyjnych 192.0.2.0/24 i 198.51.100.0/24. To wyniki laboratoryjne, a nie dane z produkcyjnej infrastruktury RichHost.

Co naprawdę mówi DNS_PROBE_FINISHED_NXDOMAIN

Gdy nazwa się nie rozwiązuje, Chrome dostaje wewnętrzny błąd ERR_NAME_NOT_RESOLVED (kod -105, „The host name could not be resolved”) i uruchamia sondę: przez Twój obecny DNS rozwiązuje nazwę, która na pewno działa, czyli google.com. Jeśli to się uda, Chrome wnioskuje „DNS działa, więc domena nie istnieje” i pokazuje DNS_PROBE_FINISHED_NXDOMAIN. Tak opisuje to kod źródłowy Chromium (dns_probe_service_impl.cc, net_error_info.h). Kod opisuje więc stan Twojego DNS, a nie rodzaj odpowiedzi, którą dostała nazwa strony.

Sprawdziliśmy to w laboratorium, otwierając w Chromium 141 nazwy z różnymi usterkami.

Co zepsuło się w DNS Status w dig Co pokazał Chromium 141
Domena nie istnieje NXDOMAIN DNS_PROBE_FINISHED_NXDOMAIN
Nazwa istnieje, ale nie ma rekordu A NOERROR, ANSWER: 0 DNS_PROBE_FINISHED_NXDOMAIN
Serwer nazw domeny nie obsługuje strefy SERVFAIL DNS_PROBE_FINISHED_NXDOMAIN
Wygasłe podpisy DNSSEC SERVFAIL, EDE 7 DNS_PROBE_FINISHED_NXDOMAIN
To samo, ale sonda google.com też zawiodła NXDOMAIN ERR_NAME_NOT_RESOLVED
Nazwa wpisana w pliku hosts NXDOMAIN ERR_ADDRESS_UNREACHABLE (przeglądarka użyła IP z hosts)

Wniosek: jeden kod przeglądarki może ukrywać cztery różne usterki. Zwykły ERR_NAME_NOT_RESOLVED zostaje na ekranie, gdy sonda nie daje jednoznacznego wyniku. Jeśli Twój DNS nie działa, ale Google DNS tak, Chrome pokazuje DNS_PROBE_FINISHED_BAD_CONFIG; jeśli Google DNS też jest niedostępny, DNS_PROBE_FINISHED_NO_INTERNET.

Porównanie odpowiedzi dig i kodu błędu Chromium 141 dla pięciu awarii DNS
Chromium pokazuje DNS_PROBE_FINISHED_NXDOMAIN zarówno przy NXDOMAIN, jak i przy pustej odpowiedzi i SERVFAIL

Odwiedzający: naprawa w 5 minut

  1. Sprawdź adres. Dodatkowa litera (wwww) lub zła końcówka domeny daje prawdziwe NXDOMAIN.
  2. Otwórz stronę na telefonie przez dane komórkowe. Jeśli tam działa, problem leży w Twoim cache, w DNS routera lub u dostawcy internetu. Jeśli nie, problem jest po stronie właściciela i możesz tylko poczekać albo się z nim skontaktować.
  3. Wyczyść cache Chrome: otwórz chrome://net-internals/#dns i kliknij Clear host cache (w Chromium 141 przycisk nazywa się dokładnie tak).
  4. Wyczyść cache systemu poleceniami poniżej.
  5. Wyłącz VPN, filtry DNS i ochronę WWW w antywirusie albo ustaw inny serwer DNS (1.1.1.1, 8.8.8.8) w ustawieniach sieci. W Chrome sprawdź też Ustawienia -> Prywatność i bezpieczeństwo -> Bezpieczeństwo -> Używaj bezpiecznego DNS.
# Windows (Command Prompt as administrator)
ipconfig /flushdns

# macOS
sudo killall -HUP mDNSResponder

# Linux with systemd-resolved
resolvectl flush-caches

Microsoft podaje, że ipconfig /flushdns usuwa też wpisy negatywnego cache (dokumentacja ipconfig). Polecenie dla macOS pochodzi z artykułu pomocy Apple.

Właściciele stron: jak czytać wynik dig

dig yourdomain A (w Windows nslookup) pokazuje status w linii HEADER. Poniżej prawdziwe wyniki z laboratorium, skrócone do istotnych linii.

1. NXDOMAIN: nazwa nie istnieje. AUTHORITY pokazuje, kto tak twierdzi

$ dig moi-sait-neisnuie.test
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 36364
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; AUTHORITY SECTION:
test.   3600  IN  SOA  ns1.test. hostmaster.test. 1 7200 3600 1209600 3600

$ nslookup moi-sait-neisnuie.test
** server can't find moi-sait-neisnuie.test: NXDOMAIN

$ host moi-sait-neisnuie.test
Host moi-sait-neisnuie.test not found: 3(NXDOMAIN)

$ dig wwww.lab.test
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40202
;; AUTHORITY SECTION:
lab.test.  300  IN  SOA  ns1.lab.test. hostmaster.lab.test. 2026102501 7200 3600 1209600 300

Najcenniejsza wskazówka to rekord SOA w sekcji AUTHORITY. Jeśli to SOA domeny najwyższego poziomu (w praktyce com., ua., org.), rejestr informuje, że domena nie jest delegowana: nie jest zarejestrowana, wygasła albo ma status clientHold lub serverHold, które według definicji ICANN wyłączają domenę z DNS. Jeśli to SOA Twojej własnej strefy (jak lab.test. w drugim przykładzie), delegacja jest w porządku, ale w strefie brakuje tej konkretnej nazwy: zapomnianego www lub subdomeny.

2. NOERROR z pustą odpowiedzią: nazwa istnieje, rekord A nie

$ dig lab.test A
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10630
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; AUTHORITY SECTION:
lab.test.  287  IN  SOA  ns1.lab.test. hostmaster.lab.test. 2026102501 ...

$ nslookup lab.test
*** Can't find lab.test: No answer

$ host lab.test
lab.test mail is handled by 10 mail.lab.test.

$ dig +short www.lab.test
192.0.2.10

Typowy przypadek: rekord A utworzono tylko dla www, a o apeksie (@) zapomniano. NOERROR wprowadza w błąd: nie ma żadnego „błędu”, a mimo to ANSWER wynosi 0. host jest jeszcze bardziej podchwytliwy: bez podania typu wyświetlił tylko rekord MX, co wygląda na sukces. Zawsze podawaj typ: host -t A lab.test odpowiedział „lab.test has no A record”. Jak współgrają rekordy A, CNAME i MX, wyjaśniamy w poradniku o rekordach DNS i zarządzaniu domeną.

3. SERVFAIL: zepsuta delegacja lub DNSSEC

SERVFAIL oznacza, że resolver nie zdołał uzyskać wiarygodnej odpowiedzi. Odtworzyliśmy trzy przyczyny.

# The nameserver answers but does not host the zone (lame delegation)
$ dig www.lame.test
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 30167
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; Query time: 4 msec
$ dig +norec @127.0.0.3 www.lame.test      # straight to the domain's NS
;; ->>HEADER<<- opcode: QUERY, status: REFUSED

# Expired DNSSEC signatures
$ dig www.signed.test
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 13020
; EDE: 7 (Signature Expired): (validation failure <www.signed.test. A IN>:
  signature expired from 127.0.0.2 for trust anchor signed.test. ...)
$ dig +cd www.signed.test                  # validation disabled
;; ->>HEADER<<- opcode: QUERY, status: NOERROR
www.signed.test.  3600  IN  A  192.0.2.50

# The nameserver does not answer at all
$ time dig +time=200 +tries=1 www.broken.test
;; communications error to 127.0.0.1#53: timed out
;; no servers could be reached
real  3m20.124s
$ dig www.broken.test                      # second query
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL

REFUSED przy bezpośrednim zapytaniu oznacza, że domena jest delegowana na serwer, który nie ma dla niej strefy. Zwykle zdarza się to po przeprowadzce, gdy u rejestratora wciąż wpisane są serwery nazw starego hostingu. Zobacz jak zmienić serwery nazw domeny. Nowoczesne resolvery dodają linię EDE (Extended DNS Errors, RFC 8914), która często wprost podaje przyczynę. Jeśli z +cd jest odpowiedź, a zwykłe zapytanie zwraca SERVFAIL, łańcuch DNSSEC jest zerwany: nieaktualny rekord DS u rejestratora albo wygasłe podpisy. Niedziałający serwer nazw zachował się inaczej: pierwsze zapytanie do Unbound przez 200 sekund nie dostało odpowiedzi, a następne od razu zwróciło SERVFAIL, gdy resolver oznaczył serwer jako niedostępny.

4. Negatywne cache: dlaczego dopiero dodanego rekordu „nie ma”

Resolver zapisuje NXDOMAIN w cache tak samo jak zwykłą odpowiedź. RFC 2308 ustala czas na mniejszą z dwóch wartości: TTL samego rekordu SOA i pole MINIMUM w SOA (ostatnia liczba). Dla lab.test daje to min(3600, 300) = 300 sekund. Odpytaliśmy nieistniejącą nazwę, 20 sekund później dodaliśmy rekord, przeładowaliśmy strefę i odpytywaliśmy resolver co 5 sekund:

T+0   23:52:16 first query: status: NXDOMAIN
      lab.test. 300 IN SOA ns1.lab.test. hostmaster.lab.test. 2026102503 7200 3600 1209600 300
T+21  23:52:37 record added, authoritative now says: 192.0.2.79
T+21  23:52:37 resolver: status: NXDOMAIN neg-TTL-left=279
T+152 23:54:48 resolver: status: NXDOMAIN neg-TTL-left=148
T+298 23:57:14 resolver: status: NXDOMAIN neg-TTL-left=2
T+303 23:57:19 resolver: status: NOERROR
      novyi3.lab.test. 3600 IN A 192.0.2.79

Rekord był już na serwerze autorytatywnym, a resolver jeszcze przez 282 sekundy (od T+21 do T+303) twierdził, że nazwa nie istnieje: dokładnie do wygaśnięcia negatywnego TTL wynoszącego 300 sekund. Odliczanie zaczyna się w chwili, gdy resolver zapisał NXDOMAIN w cache, a nie wtedy, gdy dodajesz rekord. W drugim przebiegu z inną nazwą Unbound wykorzystał pozostały TTL już zapisanego SOA (258 sekund zamiast 300) i rekord pojawił się 241 sekund po dodaniu. Czas oczekiwania wynosi więc od zera do pełnego negatywnego TTL, zależnie od tego, kiedy ktoś pierwszy raz zapytał o nazwę. Po Twojej stronie jedynym skrótem jest wyczyszczenie cache resolvera: Google Public DNS ma formularz Flush Cache, Cloudflare stronę Purge Cache, a w przypadku resolvera dostawcy internetu pozostaje czekać. Dlatego nie testuj nowej subdomeny w przeglądarce, zanim rekord zostanie utworzony.

5. Plik hosts: dig i przeglądarka się nie zgadzają

$ tail -2 /etc/hosts
192.0.2.200  moi-sait-neisnuie.test
198.51.100.5  www.lab.test

$ getent hosts moi-sait-neisnuie.test
192.0.2.200     moi-sait-neisnuie.test
$ dig moi-sait-neisnuie.test | grep -oE "status: [A-Z]+"
status: NXDOMAIN

$ getent hosts www.lab.test
198.51.100.5    www.lab.test
$ dig +short www.lab.test
192.0.2.10
$ curl -v http://www.lab.test/
*   Trying 198.51.100.5:80...

dig, nslookup i host odpytują serwer DNS bezpośrednio i ignorują plik hosts. Przeglądarki, curl i inne programy najpierw czytają hosts (w Windows to C:\Windows\System32\drivers\etc\hosts). Linia pozostawiona po testach migracji daje efekt „widzę starą stronę, a dig pokazuje nowe IP”. Testuj tak, jak rozwiązuje przeglądarka: getent hosts w Linuksie, ping w Windows i macOS.

Tabela decyzyjna: co pokazuje dig -> przyczyna -> rozwiązanie

Co widzisz Przyczyna Rozwiązanie
NXDOMAIN, SOA domeny najwyższego poziomu (com., ua.) w AUTHORITY Domena niezarejestrowana, wygasła lub zawieszona (hold) Sprawdzić whois, odnowić, zweryfikować NS u rejestratora
NXDOMAIN, SOA Twojej strefy w AUTHORITY W strefie brakuje nazwy (www, subdomena) Dodać rekord A lub CNAME
NXDOMAIN, AUTHORITY: 0, Query time 0 ms, nawet dla google.com Odpowiedź generuje filtr, VPN, antywirus lub sieć Sprawdzić przez inny resolver, wyłączyć filtr
NOERROR, ANSWER: 0 Nazwa istnieje, ale nie ma A/AAAA (często apeks @) Dodać rekord A dla tej nazwy
SERVFAIL, bezpośrednie zapytanie do NS zwraca REFUSED Serwer nazw nie obsługuje strefy Utworzyć strefę na serwerze DNS lub poprawić NS u rejestratora
SERVFAIL, odpowiedź z +cd, EDE 6-10 Zepsuty DNSSEC Zaktualizować lub usunąć DS u rejestratora, ponownie podpisać strefę
timed out, no servers could be reached NS domeny lub Twój resolver nie odpowiada Odpytać NS bezpośrednio, sprawdzić serwer i port 53 UDP/TCP
NXDOMAIN po dodaniu rekordu Negatywne cache resolvera Odczekać min(TTL SOA, MINIMUM) lub wyczyścić cache resolvera
dig pokazuje właściwe IP, przeglądarka trafia gdzie indziej Wpis w hosts lub cache systemu albo przeglądarki Sprawdzić getent hosts i plik hosts, wyczyścić cache

Jeszcze jeden przypadek złapaliśmy w samym kontenerze: dig @8.8.8.8 google.com zwrócił NXDOMAIN w 0 ms bez niczego w AUTHORITY, bo wychodzący ruch DNS był przechwytywany. Prawdziwe NXDOMAIN z rejestru zawsze zawiera SOA strefy. Jeśli go brak, a nawet google.com „nie istnieje”, szukaj filtra między sobą a internetem.

Naprawa po stronie domeny

  1. Odnów domenę, jeśli WHOIS pokazuje minioną datę wygaśnięcia albo statusy clientHold, serverHold, redemptionPeriod. Delegacja wraca po opłaceniu, ale resolvery, które już zapisały NXDOMAIN w cache, trzymają je do wygaśnięcia negatywnego TTL domeny najwyższego poziomu, w granicach własnego limitu (Unbound 1.19.2 domyślnie ma cache-max-negative-ttl: 3600, czyli godzinę). Rejestracja i odnowienie są na stronie domeny w RichHost.
  2. Utwórz strefę na serwerze, na który delegowana jest domena. W panelu sterowania hostingu otwórz sekcję DNS i dodaj strefę; panel zwykle tworzy standardowe rekordy, w tym rekord A kierujący domenę na IP serwera.
  3. Dodaj brakujące rekordy: A dla @, A lub CNAME dla www i subdomen.
  4. Przed zmianą dostawcy DNS przy włączonym DNSSEC najpierw usuń stary DS u rejestratora, odczekaj jego TTL, a dopiero potem zmień NS.
  5. Sprawdź bezpośrednim zapytaniem do serwera nazw (dig +norec @ns1.your-dns yourdomain) oraz przez 2-3 publiczne resolvery.

FAQ

Czy ERR_NAME_NOT_RESOLVED i DNS_PROBE_FINISHED_NXDOMAIN to różne błędy?

Nie, przyczyna jest ta sama: nazwa się nie rozwiązała. Chrome przełącza się na kod NXDOMAIN, gdy jego sonda potwierdzi, że Twój DNS działa. Jeśli wynik sondy jest niejednoznaczny, zostaje ERR_NAME_NOT_RESOLVED; dokładnie to widzieliśmy w laboratorium, dopóki nazwa sondy google.com też się nie rozwiązywała.

Dlaczego strona otwiera się koledze, a mnie nie?

Różne resolvery i różne cache. Resolver kolegi nigdy nie pytał o nazwę, zanim rekord powstał, a Twój trzyma negatywną odpowiedź do wygaśnięcia jej TTL. Albo jeden resolver waliduje DNSSEC, a drugi nie.

Ile czekać po dodaniu rekordu?

Dla nazwy, o którą nikt jeszcze nie pytał, wcale. Dla nazwy, która dostała już NXDOMAIN, do min(TTL SOA, MINIMUM) Twojej strefy; dla świeżo odnowionej domeny do wartości SOA domeny najwyższego poziomu, ograniczonej przez resolver.

Czy odwiedzający może to naprawić, jeśli domena wygasła?

Nie. Gdy AUTHORITY pokazuje SOA domeny najwyższego poziomu, domena jest wyłączona w rejestrze i naprawić to może tylko właściciel, odnawiając ją.

Więcej na ten temat

Wszystkie artykuły
Poczta firmowa we własnej domenie: usługi, ceny i konfiguracja
Dla biznesu04.11.2026

Poczta firmowa we własnej domenie: usługi, ceny i konfiguracja

Google Workspace, Microsoft 365, Zoho Mail, Proton Mail i poczta na hostingu w porównaniu, stan na październik 2026: ceny, rozmiar skrzynek, limity,…

Krytyczny błąd WordPress: jak znaleźć przyczynę i naprawić stronę
Rodzaje hostingu21.10.2026

Krytyczny błąd WordPress: jak znaleźć przyczynę i naprawić stronę

Krok po kroku: jak znaleźć przyczynę komunikatu „There has been a critical error on this website” i białego ekranu WordPress dzięki e-mailowi…

Ustawienia IMAP i SMTP: porty 993, 465, 587 i serwery poczty
Domeny i DNS15.10.2026

Ustawienia IMAP i SMTP: porty 993, 465, 587 i serwery poczty

Jakich serwerów i portów używać dla IMAP, POP3 i SMTP (993, 995, 465, 587), jak skonfigurować pocztę w Gmailu, Outlooku, Thunderbirdzie, iPhonie…