nslookup Komutu Nasıl Kullanılır?
Kayıt tipine göre sorgulama, farklı DNS sunucusuna sorma ve çıktının okunması.
nslookup, bir alan adını DNS sunucusuna sorup cevabı gösteren komut. Windows, macOS ve Linux'ta hazır geliyor; kurulum gerektirmiyor. Kısa kullanımı tek satır: nslookup ornek.com.
Temel komutları ve kayıt tiplerini DNS sorgulama nasıl yapılır yazısında verdik. Bu yazı komutun çıktısını satır satır okumak, etkileşimli modu kullanmak ve hata mesajlarından teşhis çıkarmakla ilgili. Tarayıcıdan hızlıca bakmak isterseniz DNS sorgulama aracı aynı kayıtları listeler.
Çıktının anatomisi
Basit bir sorgunun çıktısı iki bloktan oluşur:
| Satır | Anlamı |
|---|---|
| Server: dns.google | Soruyu cevaplayan DNS sunucusunun adı |
| Address: 8.8.8.8 | O sunucunun adresi — bilgisayarınızın kullandığı DNS |
| Non-authoritative answer: | Cevap önbellekten geliyor, alan adının kendi sunucusundan değil |
| Name: ornek.com | Sorulan ad (CNAME varsa zincirin sonundaki ad) |
| Addresses: … | Bulunan IPv4 ve IPv6 adresleri |
| Aliases: … | Sorduğunuz adın takma ad (CNAME) olduğu |
İlk blok çoğu zaman gözden kaçar ama teşhisin yarısı orada: hangi DNS sunucusunu kullandığınızı söyler. Orada modeminizin adresini (192.168.1.1 gibi) görüyorsanız sorgular modeme, modem de operatörün sunucusuna gidiyor. DNS'i değiştirdiğinizi düşünüyorsanız ve hâlâ modemi görüyorsanız, değişiklik o cihazda uygulanmamış.
"Non-authoritative answer" bir hata değil. Cevabın aracı bir sunucunun önbelleğinden geldiğini söyler; günlük sorguların neredeyse hepsi böyledir.
Yetkili sunucuya doğrudan sormak
Bir kaydı yeni değiştirdiyseniz önbellekli cevap eski olabilir. Kaynağa gitmek için önce alan adının ad sunucularını bulun, sonra doğrudan onlardan birine sorun:
- nslookup -type=NS ornek.com — ad sunucularını listeler.
- nslookup ornek.com ns1.saglayici.com — o sunucuya doğrudan sorar.
İkinci komutun çıktısında "Non-authoritative" satırı yoksa cevap yetkilidir, yani kaydın şu anki gerçek hâlidir. Diğer sunucular hâlâ eskiyi söylüyorsa beklemeniz gereken süre kaydın TTL değeridir; TTL nedir yazısında bunu açtık.
Etkileşimli mod
Komutu tek başına nslookup olarak yazarsanız bir istem açılır ve art arda sorgu yapabilirsiniz. Aynı alan adının birçok kaydına bakarken işe yarar:
| Komut | İşi |
|---|---|
| set type=MX | Sonraki sorguların kayıt tipini ayarlar |
| set type=ANY | Tüm kayıtları ister (çoğu sunucu artık sınırlı cevap verir) |
| server 1.1.1.1 | Sorguların gideceği sunucuyu değiştirir |
| set debug | Ham cevabı, TTL değerleriyle birlikte gösterir |
| set timeout=5 | Cevap bekleme süresini uzatır |
| exit | Moddan çıkar |
set debug özellikle değerli: normal çıktı TTL göstermez, debug çıktısı her kaydın kalan önbellek süresini verir. Bir değişikliğin ne zaman her yere ulaşacağını buradan tahmin edebilirsiniz.
Ters sorgu
Alan adı yerine IP adresi yazarsanız nslookup ters sorgu yapar ve adresin PTR kaydını, yani adına bağlı ismi arar: nslookup 8.8.8.8. E-posta sunucularının itibarı, bir adresin hangi firmaya ait olduğu gibi sorularda ilk ipucudur.
Sık görülen bir uyarı: *** Can't find server name for address 192.168.1.1. Bu, nslookup'ın kullandığınız DNS sunucusunun kendi adını bulamadığını söyler — modeminizin PTR kaydı yok. Zararsızdır; sorgunun geri kalanı normal çalışır.
Hata mesajları ve anlamları
| Mesaj | Anlamı | Sıradaki adım |
|---|---|---|
| Non-existent domain | Böyle bir ad yok (NXDOMAIN) | Yazımı kontrol edin; yeni alan adıysa ad sunucularına bakın |
| DNS request timed out | Sunucu cevap vermedi | Başka bir sunucuyla deneyin; hepsi zaman aşımıysa bağlantı sorunu |
| Server failed | Sunucu cevabı çözemedi (SERVFAIL) | Çoğunlukla alan adının kendi ad sunucularında hata ya da DNSSEC sorunu |
| No answer | Ad var ama o tipte kayıt yok | Kayıt tipini değiştirin; ör. AAAA yoksa site IPv6 kullanmıyordur |
| Query refused | Sunucu size cevap vermeyi reddetti | O sunucu yalnızca kendi ağına hizmet veriyor |
Bir karşılaştırma çoğu durumu çözer: aynı sorguyu önce varsayılan sunucunuza, sonra 1.1.1.1 gibi bağımsız bir sunucuya sorun. Bağımsız sunucu doğru cevap veriyor, sizinki vermiyorsa sorun operatörün DNS'inde ya da yerel önbellektedir. Tarayıcıdaki karşılığı için DNS_PROBE_FINISHED_NXDOMAIN yazısına bakabilirsiniz; önbelleği temizlemek için DNS önbelleği temizleme.
Sıkça sorulan sorular
nslookup komutu ne işe yarar?
Bir alan adını DNS sunucusuna sorup IP adresini ve diğer kayıtlarını gösterir. Windows, macOS ve Linux’ta kurulum gerektirmeden çalışır.
Non-authoritative answer ne demek?
Cevabın alan adının kendi sunucusundan değil, aracı bir sunucunun önbelleğinden geldiğini söyler. Hata değildir; günlük sorguların çoğu böyledir.
Can’t find server name for address uyarısı sorun mu?
Hayır. Kullandığınız DNS sunucusunun, çoğunlukla modemin, kendi adına ait PTR kaydı olmadığını söyler. Sorgunun geri kalanı normal çalışır.
nslookup ile belirli bir DNS sunucusuna nasıl sorulur?
Sunucuyu komutun sonuna ekleyin: nslookup ornek.com 1.1.1.1. Etkileşimli modda server komutuyla da değiştirebilirsiniz.
nslookup TTL değerini gösterir mi?
Normal çıktıda göstermez. Etkileşimli modda set debug yazdıktan sonra yapılan sorgular her kaydın kalan TTL süresini verir.