DNS_PROBE_FINISHED_NXDOMAIN: co to znamená a jak to opravit
DNS_PROBE_FINISHED_NXDOMAIN znamená, že dotaz na zadaný název hostitele skončil odpovědí "no such name". Prohlížeč nikdy nedostal IP adresu, takže nikdy neotevřel spojení. Problém je v překladu názvu, ne na webovém serveru webu.
Co chyba znamená
NXDOMAIN je DNS odpovědní kód, zkratka pro non-existent domain. Resolver ho vrátí poté, co projde řetězec od kořene až k zóně, kde by měl být váš hostitel uveden, a nic tam nenajde. Chrome vypíše DNS_PROBE_FINISHED_NXDOMAIN. Firefox hlásí, že se nelze připojit k serveru. Safari hlásí, že server nelze nalézt. Všechny tři hlásí stejnou odpověď.
NXDOMAIN není totéž co selhání resolveru, a tento rozdíl rozhoduje, kde hledat dál. Pokud je váš resolver nedostupný nebo vyprší časový limit, dostanete místo toho zprávu "DNS server neodpovídá". Pokud zóna odpoví, ale je rozbitá, například řetězec DNSSEC, který se neověří, obvykle dostanete SERVFAIL. NXDOMAIN je definitivní odpověď: název není zveřejněn.
Jedna vlastnost NXDOMAIN je při řešení problémů důležitější než cokoli jiného. Záporné odpovědi se ukládají do mezipaměti. Podle RFC 2308 resolver ukládá výsledek "no such name" po dobu uvedenou v záznamu SOA dané zóny, běžně mezi 5 a 60 minutami. Doména, která před dvěma minutami začala fungovat, může na vašem počítači stále selhávat, a žádné množství obnovování stránky to nezmění, dokud záznam v mezipaměti nevyprší nebo ho sami nevymažete.
Proč k tomu dochází
- Překlep v názvu hostitele. Zdaleka nejčastější příčina, a ta, kterou každý zkontroluje jako poslední.
- Doména není zaregistrovaná, nebo vypršela. Vypršelá doména bývá ze zóny odstraněna během několika hodin od konce ochranné lhůty.
- Chybí delegace na jmenné servery. Doména u registrátora existuje, ale nemá záznamy NS ukazující na DNS poskytovatele, takže nadřazená zóna nemá resolvera kam odkázat.
- Záznam byl smazán nebo přejmenován. Chybějící A nebo CNAME záznam pro
wwwvytvoří NXDOMAIN prowww.example.com, zatímco holá doména dál funguje. - Změna se k vašemu resolveru ještě nedostala. Nové záznamy se všude projeví až po uplynutí TTL předchozího záznamu.
- Uložená záporná odpověď ve vašem zařízení, prohlížeči nebo u resolveru vašeho poskytovatele internetu.
- Záznam v hosts souboru ukazující název někam, co už neexistuje, nebo pozůstatek po starém testu.
- VPN, proxy nebo filtrovací software, který si DNS řeší sám a blokuje název nebo ho nedokáže přeložit.
- Název hostitele, který existuje jen v privátní síti, ke které aktuálně nejste připojeni, například interní doména
.localnebo firemní doména.
Jak to opravit
Nejprve adresu přepište znovu, poté postupujte od prohlížeče směrem ven k síti. Testujte po každém kroku, ne až po jejich provedení všech najednou.
Prohlížeč
- Otevřete stejnou adresu v anonymním okně. Pokud se tam načte, jde o rozšíření nebo cookie, ne o DNS.
- Vymažte vlastní mezipaměť resolveru Chromu na
chrome://net-internals/#dns, poté vyprázdněte fronty soketů nachrome://net-internals/#sockets. Chrome má mezipaměť oddělenou od operačního systému, takže samotné vyčištění na úrovni OS často nic nezmění.
Windows
- Vymažte mezipaměť resolveru:
ipconfig /flushdns - Obnovte síťový pronájem, čímž se převezmou i DNS servery přidělené přes DHCP:
ipconfig /release ipconfig /renew - Pokud vyčištění nepomůže, restartujte službu mezipaměti:
net stop dnscache net start dnscache - Zkontrolujte
C:\Windows\System32\drivers\etc\hosts, zda tam není řádek s danou doménou, a pokud je zastaralý, smažte ho. - Nastavte veřejný resolver:
netsh interface ipv4 set dnsservers name="Wi-Fi" static 1.1.1.1 primary - Jako poslední možnost resetujte síťový zásobník a restartujte počítač:
netsh winsock reset
macOS
- Vymažte mezipaměť:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Zjistěte, které servery se používají:
scutil --dns | grep nameserver - Nastavte rozhraní na veřejný resolver:
sudo networksetup -setdnsservers Wi-Fi 1.1.1.1 1.0.0.1 - Prohlédněte
/etc/hostsa odstraňte jakýkoli řádek pro danou doménu.
Linux
- Na systemd-resolved:
sudo resolvectl flush-caches, poté ověřte používané servery přesresolvectl status. - Na dnsmasq:
sudo systemctl restart dnsmasq. Na nscd:sudo systemctl restart nscd. - Přečtěte
/etc/resolv.conf, abyste zjistili, který resolver dotazujete, a/etc/hostskvůli zastaralému přepisu. - Pomocí NetworkManageru změňte resolver přímo na připojení:
nmcli con mod "Wired connection 1" ipv4.dns "1.1.1.1 1.0.0.1" nmcli con up "Wired connection 1"
Router
- Vypněte a znovu zapněte router. Většina spotřebitelských routerů provozuje malý předávací resolver s vlastní mezipamětí, a restart ji vymaže.
- Ve správcovském rozhraní routeru zkontrolujte DNS servery uvedené u WAN nebo DHCP. Pokud ukazují na starý interní server nebo filtrovací službu, nahraďte je.
- Otestujte to na telefonu s mobilními daty místo Wi-Fi. Pokud se tam název přeloží, chyba je uvnitř vaší sítě.
Pokud jste vlastníkem domény
NXDOMAIN na vašem vlastním webu je problém publikace a může pocházet jen z několika míst. Nejprve zkontrolujte stav registrace a datum vypršení. Poté ověřte delegaci, což je krok, který lidé nejčastěji přeskakují:
dig NS example.com +short
dig example.com +trace
Prázdná odpověď NS znamená, že nadřazená zóna nemá žádnou delegaci, takže se k vašemu DNS poskytovateli nedostane žádný resolver bez ohledu na to, jaké záznamy jste tam vytvořili. Výstup +trace ukazuje řetězec předávání a přesný krok, kde se zastaví. Pokud je delegace v pořádku, dotažte přímo jmenný server svého poskytovatele, abyste ověřili, že záznam existuje v zóně, kterou upravujete:
dig @ns1.example-dns.net www.example.com A
Když přidáte chybějící záznam, stará záporná odpověď zůstane jinde uložena v mezipaměti tak dlouho, jak dovoluje minimální hodnota SOA, takže tomu dejte tolik času, než usoudíte, že oprava nefunguje.
Ověřte to zvenčí
Každá z výše uvedených oprav mění jen váš vlastní počítač. Žádná z nich vám neřekne, jestli se název přeloží i pro kohokoli jiného, a to je to, co chcete vědět jako první. Spusťte dotaz vůči dvěma veřejným resolverům a porovnejte je:
dig example.com +short
dig @1.1.1.1 example.com +short
dig @8.8.8.8 example.com +short
nslookup example.com 8.8.8.8
Pokud váš výchozí resolver nevrátí nic a 1.1.1.1 vrátí adresu, záznam existuje a váš resolver drží zastaralou zápornou odpověď nebo název filtruje. Pokud nevrátí nic ani jeden z resolverů, záznam skutečně chybí.
Dva resolvery stále pokrývají jen jeden úhel pohledu a DNS odpovědi se podle regionu liší častěji, než by člověk čekal. Spusťte kontrolu DNS dotazu, abyste přeložili název z kontrolních bodů v několika zemích najednou a přečetli si, co vrátil každý z nich. Rozdělený výsledek, kdy některá místa odpovídají a jiná ne, ukazuje na změnu, která se stále šíří, nebo na jmenný server jednoho poskytovatele nedostupný z části internetu. Toto sledování v čase je DNS propagace, která má vlastní návod jak zkontrolovat DNS propagaci.
Jak zachytit název, který přestane fungovat
Záznam, který zmizí, na vaší straně nezanechá žádnou stopu. Nikam se nic nezaznamená, protože žádný požadavek nikdy nedorazí, a jediným náznakem je graf provozu, který klesne. Řešením je ve všech případech dotaz, který běží podle plánu odjinud než z vaší kanceláře. HostTracker monitoruje weby od roku 2004 a nyní spouští kontroly z více než 300 kontrolních bodů ve 158 městech a upozorňuje e-mailem, SMS, hlasovým hovorem, přes Slack, Telegram a další, jakmile se název přestane překládat nebo začne odpovídat nesprávnou adresou. Další návody z této sekce najdete v clusteru oprav, a nejblíže tomuto tématu mají dva: DNS server neodpovídá, pro případ, kdy resolver vůbec neodpoví, a jak opravit pomalé DNS vyhledávání, pro případ, kdy odpoví, ale trvá to příliš dlouho.