- DNS_PROBE_FINISHED_NXDOMAIN hatası ne anlama gelir?
- DNS_PROBE_FINISHED_NXDOMAIN neden oluşur?
- Hatanın alan adından mı, bilgisayardan mı kaynaklandığı nasıl anlaşılır?
- DNS kayıtlarını ve nameserver ayarlarını nasıl kontrol ederim?
- DNS önbelleği ve TTL hatayı nasıl etkiler?
- Alan adı doğru olduğu hâlde tarayıcı hatayı gösteriyorsa ne yapmalı?
- DNSSEC veya hosts dosyası soruna neden olabilir mi?
- DNS_PROBE_FINISHED_NXDOMAIN için hızlı kontrol listesi
- Sık Sorulan Sorular
- Kaynaklar
DNS_PROBE_FINISHED_NXDOMAIN hatası ne anlama gelir?
DNS_PROBE_FINISHED_NXDOMAIN, tarayıcının yazdığınız alan adı için DNS üzerinden geçerli bir IP adresi bulamadığını gösterir. Alan adı yanlış yazılmış, DNS kaydı eksik veya hatalı, alan adı süresi dolmuş ya da kullandığınız DNS çözümleyici güncel bilgiyi alamamış olabilir. Çözüm, önce hatanın hangi DNS katmanında oluştuğunu ayırmaktır.
Bu hata, web sunucusunun mutlaka kapalı olduğu anlamına gelmez. Tarayıcı daha sunucuya HTTP isteği göndermeden önce alan adını IP adresine çevirmeye çalışır. Bu çeviri başarısız olursa Apache, nginx, PHP veya uygulamanızın loglarında hiçbir kayıt göremeyebilirsiniz. Sorun daha kapıda, DNS tarafındadır.
DNS_PROBE_FINISHED_NXDOMAIN neden oluşur?
DNS, alan adını bir IP adresiyle eşleştirir. Örneğin example.com için bir A kaydı varsa IPv4 adresi, AAAA kaydı varsa IPv6 adresi döndürülebilir. DNS sunucuları herhangi bir kayıt bulamadığında ya da alan adının yetkili sunucularına ulaşamadığında istemciye NXDOMAIN yanıtı verebilir.
ICANN’in alan adı sistemiyle ilgili açıklamalarında da görüldüğü gibi kayıt kuruluşu, alan adı kayıtları ve DNS barındırması birbirinden ayrı katmanlardır. Alan adını bir firmadan alıp DNS hizmetini başka bir firmada kullanabilirsiniz. Bu esneklik, yanlış nameserver tanımlandığında işleri biraz daha ilginç hâle getirir.
- Yanlış yazım: Alan adında bir harf eksik, fazla veya yanlış uzantı olabilir.
- Eksik DNS kaydı: Özellikle yeni açılan bir alt alan adı için
AveyaCNAMEkaydı oluşturulmamış olabilir. - Yanlış nameserver: Alan adı, DNS kayıtlarının bulunduğu sunucular yerine başka nameserver adreslerine delegasyon yapıyor olabilir.
- Süresi dolmuş alan adı: Kayıt yenilenmediğinde alan adı pasif duruma geçebilir veya DNS yanıtı değişebilir.
- Yerel önbellek: Bilgisayar, modem veya DNS çözümleyici daha önce aldığı olumsuz yanıtı bir süre saklayabilir.
- DNSSEC uyuşmazlığı: DNSSEC imzası ile alan adı delegasyonu uyumlu değilse DNS yanıtı doğrulanamayabilir. Bu durum her tarayıcıda aynı hata metniyle görünmez.
Hatanın alan adından mı, bilgisayardan mı kaynaklandığı nasıl anlaşılır?
İlk kontrolü tarayıcıda değil, terminalde yapıyorum. Çünkü tarayıcı kendi önbelleğini, işletim sistemi çözümleyicisini ve bazen güvenli DNS ayarlarını aynı anda devreye sokabilir. Terminal çıktısı, hangi sunucunun ne cevap verdiğini daha açık gösterir.
dig +short A example.com
dig +short AAAA example.com
dig +short NS example.com
dig +short yalnızca kısa cevabı gösterir. İlk iki komut IP adresi döndürmüyorsa web sitesinin sunucusuna henüz ulaşmamışızdır. NS sorgusu ise alan adının hangi yetkili DNS sunucularına emanet edildiğini gösterir. Kendi alan adınızda example.com yerine gerçek alan adını kullanın.
Daha ayrıntılı cevap için:
dig example.com A
dig example.com NS
dig example.com +trace
+trace, sorgunun kök DNS sunucularından başlayarak hangi delegasyonlardan geçtiğini gösterir. Çıktının sonunda alan adınızın yetkili sunucularından cevap gelmiyorsa sorun çoğunlukla DNS yönetim panelindeki kayıtta veya nameserver delegasyonundadır.
Farklı çözümleyicileri karşılaştırmak da işe yarar:
dig @1.1.1.1 example.com A
dig @8.8.8.8 example.com A
dig @9.9.9.9 example.com A
Bu satırlardan biri IP döndürüyor, diğeri NXDOMAIN veriyorsa yerel DNS sağlayıcısı veya önbellekleme katmanı incelenmelidir. Hepsi NXDOMAIN döndürüyorsa kaydın gerçekten bulunmadığını varsayarak yetkili DNS sunucusuna bakarım. Tek bir komuta güvenmek yerine bu karşılaştırmayı yapmak, gereksiz modem yeniden başlatmalarını azaltıyor.
Windows, macOS ve Linux’ta temel kontrol
Windows’ta DNS önbelleğini görüntülemek ve temizlemek için:
ipconfig /displaydns
ipconfig /flushdns
nslookup example.com
ipconfig /flushdns bilgisayarın yerel DNS önbelleğini temizler. Bu komut, alan adının DNS panelindeki kaydını değiştirmez; yalnızca bilgisayarın daha önce sakladığı cevapları siler.
Linux’ta kullanılan çözümleme servisine göre önbellek temizleme komutu değişir. systemd-resolved aktifse:
resolvectl status
resolvectl query example.com
sudo resolvectl flush-caches
Ben önce resolvectl status çıktısına bakarım. Çünkü sistemin gerçekten hangi DNS sunucularını kullandığını bilmeden rastgele bir önbellek temizleme komutu çalıştırmak pek anlamlı değildir. Debian sunucularımda bazen systemd-resolved hiç aktif olmaz; bu durumda komutun etkisiz kalması normaldir.
macOS’ta sorguyu şu şekilde test edebilirsiniz:
scutil --dns
dig example.com A
scutil --dns, sistemde tanımlı DNS çözümleyicilerini gösterir. Buradaki adresler beklemediğiniz bir VPN, güvenlik yazılımı veya yerel ağ cihazını işaret ediyorsa test sırasında farklı bir ağ bağlantısı kullanmak faydalı olabilir.
DNS kayıtlarını ve nameserver ayarlarını nasıl kontrol ederim?
DNS_PROBE_FINISHED_NXDOMAIN hatasını düzeltirken sık karşılaştığım durum, kaydın bir panelde oluşturulup alan adının başka nameserver’ları kullanmasıdır. Kullanıcı DNS kaydını doğru eklemiştir; fakat sorgular o paneldeki DNS sunucularına hiç gitmiyordur.
Önce alan adının yetkili nameserver’larını sorgulayın:
dig +short NS example.com
Çıkan sunucular, DNS kayıtlarını düzenlediğiniz hizmetle aynı mı? Panelinizde kayıtlar görünmesine rağmen sorgu farklı bir sağlayıcının nameserver adreslerini gösteriyorsa iki panelden birinde yapılan değişiklik internete yansımaz.
A, AAAA ve CNAME kayıtlarını kontrol edin
| Kayıt | Ne için kullanılır? | Yaygın hata |
|---|---|---|
A |
Alan adını IPv4 adresine yönlendirir. | Eski veya yanlış IPv4 adresi yazmak. |
AAAA |
Alan adını IPv6 adresine yönlendirir. | Çalışmayan bir IPv6 adresini eklemek. |
CNAME |
Bir adı başka bir alan adına yönlendirir. | DNS kök alanında veya yanlış hedefle kullanmak. |
NS |
Alan adı için yetkili DNS sunucularını belirtir. | Kayıt sağlayıcısındaki delegasyonla panel ayarının uyuşmaması. |
Bir alt alan adı için örnek sorgular şöyle olabilir:
dig +short A app.example.com
dig +short CNAME app.example.com
dig +short NS example.com
Bir ad için hem beklenmedik bir CNAME hem de yanlış bir A kaydı varsa panelin izin verdiği yapılandırma kurallarını kontrol edin. DNS kayıtlarının aynı ada birden fazla biçimde eklenmesi, sağlayıcıya göre reddedilebilir veya tahmin edilmesi zor sonuçlar üretebilir.
Alt alan adlarıyla çalışırken Alt Alan Adı (Subdomain) Nedir? Kullanım Rehberi yazısındaki temel ayrım da işinize yarar: www.example.com ve app.example.com aynı kayıt olmak zorunda değildir. Birinin çalışması diğerinin doğru yapılandırıldığını göstermez.
Alan adının kayıt ve delegasyon durumunu inceleyin
Alan adının süresi dolmuşsa veya kayıt kuruluşunda bekleyen bir doğrulama varsa DNS panelindeki kayıtları düzeltmek tek başına yeterli olmayabilir. Kayıt kuruluşunun alan adı durumunu, nameserver listesini ve yenileme bildirimlerini kontrol edin.
Alan adı yeni taşındıysa delegasyonun güncellenmesi zaman alabilir. Burada “DNS propagasyonu 24 saat sürer” cümlesini otomatik cevap gibi kullanmamaya çalışıyorum. Değişimin ne kadar süreceği TTL değerine, ilgili resolver’ın önbelleğine ve delegasyonun gerçekten değiştirilip değiştirilmediğine bağlıdır. Yanlış nameserver kullanıyorsanız 24 saat beklemek yalnızca yanlış ayarı daha uzun süre korur.
DNS önbelleği ve TTL hatayı nasıl etkiler?
DNS yanıtlarının önbellekte tutulma süresi, kaydın TTL değerine bağlıdır. Bir kaydı değiştirdiğinizde herkesin aynı anda yeni cevabı görmesi beklenmez. Daha önce alınmış olumlu yanıtlar kadar olumsuz yanıtlar da belirli koşullarda önbelleğe alınabilir.
RFC 2308, negatif DNS cevaplarının önbelleğe alınmasıyla ilgili davranışları açıklar. RFC 8020 ise bir alan adının var olmadığına dair NXDOMAIN cevabının alt adları açısından nasıl değerlendirileceğini tanımlar. Pratikte bunun karşılığı şudur: Kayıt az önce eklendiyse kendi bilgisayarınızda hâlâ eski bir “yok” cevabı görebilirsiniz.
TTL’i görmek için:
dig example.com A
Çıktıda ANSWER SECTION altında görünen sayı, cevabın kalan önbellek süresidir. Bu değer saniye cinsindendir. TTL’in düşük olması değişikliklerin anında görüleceğini garanti etmez; farklı çözümleyicilerin daha önce aldığı cevaplar ve negatif önbellek süreleri ayrıca devreye girebilir.
Alan adı doğru olduğu hâlde tarayıcı hatayı gösteriyorsa ne yapmalı?
Alan adı başka bir ağda açılıyorsa sorun büyük ihtimalle yerel ağ, modem, VPN veya DNS çözümleyicisindedir. Şu sırayla ilerliyorum:
- Alan adını farklı bir cihazda ve mümkünse mobil internet üzerinden deneyin.
- Gizli DNS, VPN veya kurumsal güvenlik yazılımı kullanıyorsanız geçici olarak ayırın.
- Yerel DNS önbelleğini temizleyin.
- Modemin DNS yönlendirmesini kontrol edin veya kısa süreliğine güvenilir farklı bir çözümleyiciyle test yapın.
dig,nslookupveyaresolvectlçıktısını karşılaştırın.
Tarayıcıdaki “güvenli DNS kullan” seçeneği de sorgunun gittiği yeri değiştirebilir. Bu ayarı kapatmak kalıcı çözüm değildir; yalnızca yerel DNS ile tarayıcının kendi DNS-over-HTTPS çözümleyicisi arasındaki farkı ayırmak için kullanılabilir.
Bir VPS üzerinde DNS değişikliği yaptıysanız, sunucunun kendisinden de sorgu alın. Sunucunun dışarıdan erişilebilir olması, sunucunun doğru DNS çözümleyicisini kullandığı anlamına gelmez:
cat /etc/resolv.conf
getent ahosts example.com
curl -I https://example.com
getent ahosts, sistemin uygulamalar için kullandığı çözümleme yolunu test eder. curl -I ise DNS çözüldükten sonra HTTP katmanına geçer. İlk komut başarısızsa nginx ayarına bakmanın henüz zamanı değildir. DNS düzeldikten sonra curl ile gelen HTTP durum kodunu, yönlendirmeleri ve sertifika adını ayrıca inceleyebilirsiniz.
Web sunucunuz 502 Bad Gateway döndürüyorsa bu, DNS_PROBE_FINISHED_NXDOMAIN ile aynı katman değildir. DNS çözülüp istek proxy sunucusuna ulaştıktan sonra upstream erişimi başarısız oluyorsa 502 Bad Gateway Hatası Nedir ve Nasıl Çözülür? başlığındaki kontrol adımları daha uygun olur.
DNSSEC veya hosts dosyası soruna neden olabilir mi?
DNSSEC etkin bir alan adında DS kaydı ile DNS bölgesindeki DNSKEY ve imzaların uyumlu olması gerekir. Nameserver değiştirirken eski DS kaydı bırakılırsa bazı doğrulayıcı çözümleyiciler alan adını güvenilir biçimde doğrulayamaz. Tarayıcı bunu her zaman doğrudan DNSSEC hatası diye göstermeyebilir.
DNSSEC’ten şüpheleniyorsanız kayıt kuruluşundaki DS kaydını ve DNS sağlayıcısının DNSSEC durumunu karşılaştırın. DNSSEC’i rastgele kapatmak yerine önce hangi anahtarın imzalama yaptığını, nameserver değişiminin tamamlanıp tamamlanmadığını kontrol edin. Bu noktada dig +dnssec example.com çıktısı ve DNS sağlayıcısının doğrulama araçları yardımcı olur.
Yerel hosts dosyası da DNS sorgusunu atlayabilir. Linux ve macOS’ta /etc/hosts, Windows’ta C: extbackslash Windows extbackslash System32 extbackslash drivers extbackslash etc extbackslash hosts dosyasını kontrol edin. Burada alan adını yanlış bir adrese yönlendiren satır varsa tarayıcı DNS panelindeki güncel kaydı görmez.
Ben bir keresinde test amacıyla eklediğim hosts satırını haftalarca kaldırmamıştım. Yeni IP’ye taşınan servis herkeste açılırken bende eski makineye gidiyordu; hata mesajı NXDOMAIN değildi ama aynı kontrol alışkanlığı sorunu hemen ayırdı. Test kayıtlarını iş bitince silmek, DNS incelemesinin küçük ama işe yarayan bir parçası.
DNS_PROBE_FINISHED_NXDOMAIN için hızlı kontrol listesi
- Alan adını ve uzantısını harf harf kontrol edin.
dig +short NS alanadiniz.tldile yetkili nameserver’ları bulun.- Yetkili sunucudan doğrudan cevap alın:
dig @nameserver alanadiniz.tld A. - Kök alan adı ile sorunlu alt alan adını ayrı ayrı sorgulayın.
A,AAAAveCNAMEkayıtlarını uygulamanızın beklediği hedeflerle karşılaştırın.- Kayıt kuruluşunda alan adının süresi, kilidi ve delegasyon durumunu inceleyin.
- Farklı DNS çözümleyicilerinden gelen cevapları karşılaştırın.
- Yerel cihazda DNS önbelleğini ve hosts dosyasını kontrol edin.
- DNSSEC kullanıyorsanız DS ve DNSKEY uyumunu doğrulayın.
- DNS düzeldikten sonra web sunucusu, TLS ve uygulama katmanına geçin.
DNS incelemesinde benim için en yararlı alışkanlık, tarayıcıdaki hata metnine takılı kalmamak oldu. Önce dig ile yetkili cevabı, sonra istemcinin hangi çözümleyiciyi kullandığını kontrol ediyorum. Bu iki çıktı aynı şeyi söylemiyorsa sorun genellikle henüz nginx’e veya uygulamaya ulaşmamıştır.
Sık Sorulan Sorular
DNS_PROBE_FINISHED_NXDOMAIN virüs veya modem arızası mıdır?
Genellikle doğrudan virüs anlamına gelmez; alan adının çözümlenemediğini gösterir. Farklı cihazlarda ve farklı ağlarda karşılaştırma yaparak sorunun bilgisayarda, yerel ağda veya alan adının DNS yapılandırmasında olduğunu ayırabilirsiniz.
DNS_PROBE_FINISHED_NXDOMAIN ne kadar sürede düzelir?
Doğru DNS kaydı eklendikten sonra süre TTL, negatif önbellek ve nameserver delegasyonuna bağlıdır. Yanlış nameserver veya süresi dolmuş alan adı gibi temel bir hata düzeltilmeden beklemek sorunu çözmez.
DNS önbelleğini temizlemek hatayı kesin olarak çözer mi?
Yalnızca bilgisayarınızdaki eski DNS cevabı soruna neden oluyorsa çözebilir. Yetkili DNS sunucusunda kayıt yoksa, nameserver yanlışsa veya alan adı askıya alınmışsa önbellek temizlemek kalıcı bir değişiklik yapmaz.
DNS_PROBE_FINISHED_NXDOMAIN ile 502 hatası arasındaki fark nedir?
NXDOMAIN, alan adının DNS seviyesinde çözülemediğini ve isteğin web sunucusuna ulaşamayabileceğini belirtir. 502 ise DNS çözümlemesinden sonra bir proxy veya gateway’in upstream sunucudan geçerli yanıt alamamasıyla ilgilidir.
Kaynaklar
- ICANN – Domain Name System — icann.org
- RFC 2308 – Negative Caching of DNS Queries — rfc-editor.org
- RFC 8020 – NXDOMAIN Cut — rfc-editor.org
- RFC 4033 – DNS Security Introduction and Requirements — rfc-editor.org
Türkçe
English
فارسی
Русский