nslookup komutu: kullanımı ve seçenekleri, kayıt sorgulama ve DNS sunucusu belirleme
nslookup komutu, bir alan adını DNS sunucusuna sorup IP adreslerini ve MX, NS, TXT gibi DNS kayıtlarını getiren bir sorgulama komutudur. AlmaLinux 9 sunucusunda example.com kayıtlarını türe göre sorgulayıp sorulan DNS sunucusunu değiştirdiğimizde, aynı alan adı hangi sunucuya sorulduğuna göre farklı sonuç verdi: yanıtın başındaki Non-authoritative answer satırı kayboldu ya da ANY sorgusunun sonucu değişti.
Aşağıdaki çıktı, AlmaLinux 9.8 sunucusunda root hesabıyla çalıştırılarak alındı. Sunucuda ayarlı DNS sunucusunun adresi örnek değer 192.0.2.53 ile, paket sürüm numaraları da örnek değerlerle değiştirildi.
1️⃣ nslookup komutunun kullanımı
Temel biçim [nslookup -seçenek ad DNS-sunucusu] sırasıdır; seçenekler ve DNS sunucusu yazılmayabilir. Yalnızca bir ad yazarsanız nslookup o adın adresini sunucuda ayarlı DNS sunucusuna sorar.
nslookup example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3En üstteki Server ve Address satırları sorguyu alan DNS sunucusunu gösterir, sondaki #53 ise DNS bağlantı noktası numarasıdır. Kayıt türü belirtilmezse nslookup önce A kaydını (IPv4), sonra AAAA kaydını (IPv6) sorgular; bu yüzden iki IPv4 adresinin ardından iki IPv6 adresi geldi.
Non-authoritative answer, example.com kayıtlarını doğrudan yöneten sunucunun değil, bu değeri önbelleğinde tutan bir DNS sunucusunun yanıt verdiği anlamına gelir. Bu nedenle bir kayıt değiştirildikten hemen sonra değer gerçek değerden farklı olabilir.
2️⃣ nslookup seçenekleri
Seçenekler, adının önüne kısa çizgi konarak yazılır.
-type, -query veya kısa biçimi -q ile aynı seçenektir. 8.8.8.8 sunucusuna -q=mx ile sorulduğunda -type=mx ile aynı tek posta sunucusu satırı geldi.
nslookup -q=mx google.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
google.com mail exchanger = 10 smtp.google.com.
Authoritative answers can be found from:-timeout ve -retry, yanıt vermeyen bir DNS sunucusunun ne kadar bekleneceğini belirler. 192.0.2.1 belgelerde örnek için ayrılmış bir adres olduğundan orada yanıt veren sunucu yoktur.
nslookup -timeout=2 -retry=1 example.com 192.0.2.1;; connection timed out; no servers could be reached-timeout=2 -retry=1 ile çalıştırıldığında nslookup 2 saniye sonra [connection timed out] satırını yazdırıp bitti. -retry=2 ile 4 saniye, seçenek olmadan ise 15 saniye sürdü. Bir betiğin yanıt vermeyen bir sunucu yüzünden uzun süre takılmaması için iki değeri de düşürün.
-debug eklendiğinde yanıt paketinin soru ve yanıt bölümleri olduğu gibi yazdırılır.
nslookup -debug example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
------------
QUESTIONS:
example.com, type = A, class = IN
ANSWERS:
-> example.com
internet address = 104.20.23.154
ttl = 300
-> example.com
internet address = 172.66.147.243
ttl = 300
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 172.66.147.243
------------
QUESTIONS:
example.com, type = AAAA, class = IN
ANSWERS:
-> example.com
has AAAA address 2606:4700:10::6814:179a
ttl = 300
-> example.com
has AAAA address 2606:4700:10::ac42:93f3
ttl = 300
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
------------
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3Her kayda, normal çıktıda görünmeyen bir ttl = 300 eklendi. Bu, yanıtı alan DNS sunucusunun kaydı en fazla 300 saniye önbellekte tutabileceğini gösteren değerdir.
-norecurse, DNS sunucusundan başka sunuculara başvurmadan yalnızca elindeki değerle yanıt vermesini ister. Aynı 8.8.8.8 sunucusuna seçeneksiz sorulduğunda dört adres geldi, ancak -norecurse eklenince sorgu [SERVFAIL] ile bitti.
nslookup -norecurse example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find example.com: SERVFAIL| Seçenek | Kopyala | Açıklama |
|---|---|---|
| -type= | Sorgulanacak kayıt türünü belirler; yazılmazsa önce A, sonra AAAA | |
| -q= | -type ile aynı seçenek, sorgulanacak kayıt türünü belirler | |
| -timeout= | İlk sorgunun yanıtı için bekleme süresi (saniye) | |
| -retry= | Yanıt gelmezse sorgunun gönderilme sayısı | |
| -debug | Yanıt paketinin soru ve yanıtını TTL ile birlikte yazdırır | |
| -norecurse | Başka sunuculara başvurmadan yalnızca o sunucudaki değerleri ister |
| Seçenek | Kopyala | Açıklama |
|---|---|---|
| -query= | -type ile aynı seçenek, sorgulanacak kayıt türünü belirler | |
| -port= | Sorgulanacak bağlantı noktasını belirler, varsayılan 53 | |
| -version | Sürümü yazdırıp çıkar |
3️⃣ nslookup ile kayıt sorgulama (MX, NS, TXT, SOA)
-type= sonrasına bir kayıt türü yazılırsa yalnızca o kayıt sorgulanır. Değer büyük ya da küçük harfle yazılabilir.
| -type= değeri | İçerdiği bilgi |
|---|---|
| A · AAAA | IPv4 adresi, IPv6 adresi |
| MX | Postayı alan sunucu ve önceliği |
| NS | Alan adının kayıtlarını yöneten ad sunucuları |
| TXT | SPF gibi metin değerleri |
| SOA | Bölgenin birincil ad sunucusu, yönetici e-postası, seri numarası, yenileme aralıkları |
| CNAME | Başka bir ada bağlanan takma ad |
| PTR | Bir IP adresine bağlı ana makine adı (ters) |
| ANY | O adın tüm kayıtlarını tek seferde ister |
Posta sunucuları MX kaydıyla kontrol edilir.
nslookup -type=mx google.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
google.com mail exchanger = 10 smtp.google.com.
Authoritative answers can be found from:mail exchanger sonrasındaki 10 önceliktir. Birden fazla posta sunucusu varsa gönderen taraf teslimi en küçük sayılı sunucudan başlayarak dener. example.com için aynı sorgu [mail exchanger = 0 .] verdi; yalnızca tek bir nokta içeren MX, bu alan adının posta kabul etmediği anlamına gelir.
MX sorgusunun sonundaki [Authoritative answers can be found from:], yanıtla birlikte gelen yetkili ad sunucusu bilgilerini altında gösteren bir başlık satırıdır. Bu yazıdaki MX, NS ve TXT sorgularında yanıtta bu bilgi yoktu, bu yüzden başlık satırının altı boş kaldı.
NS kaydında alan adının kayıtlarını doğrudan yöneten ad sunucuları bulunur.
nslookup -type=ns example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
example.com nameserver = hera.ns.cloudflare.com.
example.com nameserver = elliott.ns.cloudflare.com.
Authoritative answers can be found from:example.com alan adının iki ad sunucusu vardı. Bu iki sunucu, example.com için yetkili ad sunucularıdır.
TXT kaydına belirli bir biçim olmadan metin değerleri konabilir.
nslookup -type=txt example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
example.com text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com text = "v=spf1 -all"
Authoritative answers can be found from:v=spf1 -all, bu alan adıyla posta gönderebilecek hiçbir sunucu olmadığını belirten bir SPF değeridir. Bir alan adında birden fazla TXT kaydı varsa bu şekilde her satırda bir tane görünür.
SOA kaydı, bölgenin temel bilgilerini içerir.
nslookup -type=soa example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
example.com
origin = elliott.ns.cloudflare.com
mail addr = dns.cloudflare.com
serial = 2418004112
refresh = 10000
retry = 2400
expire = 604800
minimum = 1800
Authoritative answers can be found from:origin birincil ad sunucusudur; mail addr ise yöneticinin e-posta adresinde @ işaretinin nokta olarak yazıldığı değerdir. serial, kayıtlar her değiştiğinde artan seri numarasıdır; refresh, retry ve expire ise ikincil ad sunucularının kayıtları birincil sunucuyla eşitlerken kullandığı süre değerleridir (saniye). minimum, olmayan bir kayda verilen yanıtın önbellekte tutulma süresidir.
Takma adlar CNAME kaydıyla kontrol edilir. www.github.com sorgulandığında bunun github.com için bir takma ad olduğunu söyleyen tek satır geldi.
nslookup -type=cname www.github.comServer: 192.0.2.53
Address: 192.0.2.53#53
www.github.com canonical name = github.com.-type=any, o adın tüm kayıtlarını tek seferde ister. Sunucuda ayarlı DNS sunucusuna sorulduğunda A, AAAA, MX ve NS kayıtları birlikte geldi.
nslookup -type=any example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3
example.com mail exchanger = 0 .
example.com nameserver = hera.ns.cloudflare.com.
example.com nameserver = elliott.ns.cloudflare.com.
Authoritative answers can be found from:Aynı sorgu 8.8.8.8 sunucusuna gönderildiğinde yalnızca bir [hinfo = “RFC8482”] satırı ve bir imza satırı döndü.
nslookup -type=any example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
example.com hinfo = "RFC8482" ""
example.com rdata_46 = HINFO 13 2 3600 20261029212708 20261027192708 34505 example.com. 2YBHcD7GmqHiW6E7e8Lx3z/gPoCsLbYw/Uegjy801hQ+4fYp5U7wKqc2 NXOONd8WS0xjgzfW5Dn0akDqdjltOw==
Authoritative answers can be found from:RFC 8482, ANY sorgusuna tüm kayıtlar yerine kısa bir yanıt verilmesine izin veren belgedir. Bu yüzden gereken kayıtlar türleri tek tek belirtilerek sorgulanır.
4️⃣ nslookup ile DNS sunucusu belirleme
Adın arkasına bir DNS sunucusu yazılırsa nslookup, sunucuda ayarlı DNS sunucusu yerine o sunucuya sorar.
nslookup example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3Server satırı 8.8.8.8 olarak değişti ve dört adres, sunucuda ayarlı DNS sunucusunun yanıtıyla aynıydı. Ad sunucularını değiştirdikten sonra yeni değerlerin her genel DNS sunucusuna yayılıp yayılmadığını kontrol ederken bu biçim kullanılır.
NS sorgusunda çıkan ad sunucularından biri DNS sunucusu olarak belirtilirse yetkili sunucuya doğrudan sorulmuş olur.
nslookup example.com elliott.ns.cloudflare.comServer: elliott.ns.cloudflare.com
Address: 2606:4700:58::a29f:2ce4#53
Name: example.com
Address: 104.20.23.154
Name: example.com
Address: 172.66.147.243
Name: example.com
Address: 2606:4700:10::6814:179a
Name: example.com
Address: 2606:4700:10::ac42:93f3Bu kez Non-authoritative answer satırı kayboldu. Değer, kayıtları yöneten sunucunun doğrudan verdiği yanıt olduğu için önbellekten geçmemiş güncel değerdir. Server satırının hemen altındaki Address bölümünde bu ad sunucusunun IPv6 adresi göründü.
Var olmayan bir ad sorgulandığında [NXDOMAIN] görünür. .invalid hiç kullanılmaması için ayrılmış bir üst düzey alan adı olduğundan, adın var olmadığı yanıtı döndü.
nslookup example.invalidServer: 192.0.2.53
Address: 192.0.2.53#53
** server can't find example.invalid: NXDOMAINBuna karşılık no-such-host.example.com, NXDOMAIN yerine [No answer] ile bitti. Bu, sorgulanan kaydın yanıtta olmadığı anlamına gelir; adın kendisinin olmadığı NXDOMAIN durumundan farklı bir sonuçtur.
nslookup no-such-host.example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
*** Can't find no-such-host.example.com: No answer5️⃣ nslookup ile ters sorgu
Ad yerine bir IP adresi yazılırsa nslookup PTR kaydını sorgular ve o adrese bağlı ana makine adını bulur.
nslookup 8.8.8.88.8.8.8.in-addr.arpa name = dns.google.
Authoritative answers can be found from:8.8.8.8.in-addr.arpa, IPv4 adresinin tersten yazılıp sonuna in-addr.arpa eklenmesiyle oluşan addır. Bu adın PTR kaydının değeri olan dns.google., 8.8.8.8 adresinin ana makine adıdır.
Ters sorguda en üstteki iki Server satırı görünmedi. Aynı adres bir Debian 12 sunucusunda nslookup 9.18 ile sorgulandığında da görünüm aynıydı.
6️⃣ nslookup etkileşimli modu
nslookup bağımsız değişken olmadan çalıştırılırsa > istemiyle etkileşimli moda girilir. Birden fazla adı ve kayıt türünü art arda sorgularken komutu her seferinde baştan yazmak gerekmez.
nslookup> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> set type=mx
> google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
google.com mail exchanger = 10 smtp.google.com.
Authoritative answers can be found from:
> set type=txt
> example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
example.com text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com text = "v=spf1 -all"
Authoritative answers can be found from:
> exitserver ile sorgulanacak DNS sunucusunu değiştirip set type= ile kayıt türünü belirlerseniz, sonrasında yalnızca ad yazmak o ayarlarla sorgulamaya yeter. exit yazınca kabuğa dönülür.
set all, geçerli tüm ayar değerlerini yazdırır.
nslookup> set type=txt
> set all
Default server: 192.0.2.53
Address: 192.0.2.53#53
Set options:
novc nodebug nod2
search recurse
timeout = 0 retry = 3 port = 53 ndots = 1
querytype = txt class = IN
srchlist = example.internal
> exitquerytype, önceden belirlenen txt değerine geçmişti. retry = 3 ve port = 53 değiştirilmemiş varsayılan değerlerdir.
7️⃣ Linux'ta nslookup kurulumu ve dig ile host karşılaştırması
Linux'ta nslookup çalıştırıldığında [command not found] görünürse BIND araçları paketini kurun. AlmaLinux sunucusunda nslookup, bind-utils paketinden geliyordu.
rpm -qf /usr/bin/nslookupbind-utils-9.16.20-30.el9_8.2.x86_64Debian 12 sunucusunda bu paket bind9-dnsutils idi. Eski ad dnsutils, bind9-dnsutils paketini kuran bir geçiş paketi olarak duruyordu.
dpkg -S /usr/bin/nslookupbind9-dnsutils: /usr/bin/nslookupRHEL tabanlı sistemlerde bind-utils paketi aşağıdaki komutla kurulur.
dnf install bind-utilsDebian tabanlı sistemlerde bind9-dnsutils paketi kurulur.
apt install bind9-dnsutilsAynı pakette dig ve host da bulunur. Üç komut da DNS sorgular, ancak çıktılarının görünümü farklıdır.
| Komut | Çıktı | Kullanım yeri |
|---|---|---|
| nslookup | Server satırı + yanıt, etkileşimli mod | Birden fazla adı ve kaydı art arda sorgulama |
| dig | Yanıt paketinin tüm bölümleri; +short ile yalnızca değerler | Betikte yalnızca değerleri almak |
| host | Her kayıt için tek satırlık cümle | A, AAAA ve MX'i tek seferde kontrol etme |
host example.comexample.com has address 172.66.147.243
example.com has address 104.20.23.154
example.com has IPv6 address 2606:4700:10::6814:179a
example.com has IPv6 address 2606:4700:10::ac42:93f3
example.com mail is handled by 0 .host, hiçbir seçenek olmadan da A, AAAA ve MX kayıtlarını tek seferde sorgulayıp her birini tek satırlık bir cümle olarak yazdırdı. dig komutuna +short eklenirse yalnızca IP adresleri kalır.
dig +short example.com104.20.23.154
172.66.147.243Betikte yalnızca değerleri almak için dig +short daha kolay işlenir; birden fazla adı art arda kontrol etmek için ise nslookup etkileşimli modu daha rahattır.
🔲 nslookup komutu simülatörü
Aşağıdaki simülatörde kayıt türünü ve DNS sunucusunu değiştirerek nslookup komutunu kendiniz yazabilirsiniz.
🔢 SSS & önerilen içerikler
DNS sorgusu
Linux host komutu | DNS sorgulama komutu
host komutuyla bir ana makine adının IP adresini ve tersine bir IP adresinin ana makine adını bulma yöntemini anlatan yazı.
Web sorgusu
DNS kayıtlarını kontrol etme ve ad sunucusu performansını ölçme siteleri
whatsmydns ile birden fazla bölgeden DNS kayıt değerlerini kontrol etmeyi ve DNSPerf ile DNS sunucularının yanıt hızını karşılaştırmayı anlatan yazı.
ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.