Giriş
Bir alan adının çözümlenememesi, e-postaların geri dönmesi veya basitçe bir alan adının hangi IP adresine yönlendirildiğini öğrenmek istediğinizde, DNS'e doğrudan soru sormanın hızlı bir yoluna ihtiyaç duyarsınız. Linux'teki host komutu tam olarak bu amaçla tasarlanmıştır. Küçük, hızlı ve en yaygın sorulara tek satırlık temiz yanıtlar verir. Bu nedenle, daha karmaşık araçlara başvurmadan önce ilk durak olarak tercih edilir.
host komutu, BIND (Berkeley Internet Name Domain) paketinin bir parçasıdır ve adları adreslere, adresleri de adlara dönüştürür. nslookup komutunun kısa ve dig komutunun detaylı çıktısı arasında yer alır. Günlük DNS sorguları için yeterli bilgiyi sağlar.
host Komutu Hakkında Ön Bilgiler
Bu rehberde, host komutunun aşağıdaki kullanımlarını ayrıntılı olarak ele alacağız:
- İleri ve geri DNS sorguları (Forward & Reverse Lookup)
- Belirli DNS kayıt türlerini sorgulama (MX, NS, TXT, CNAME vb.)
- Özel bir DNS sunucusuna sorgu gönderme
host Komutunu Yükleme
host komutu, çoğu Linux dağıtımında BIND yardımcı programlarının bir parçası olarak gelir. Eğer sisteminizde yüklü değilse, aşağıdaki komutlarla kolayca kurabilirsiniz:
Ubuntu, Debian ve Türevlerinde Kurulum
sudo apt update
sudo apt install bind9-host
Fedora, RHEL ve Türevlerinde Kurulum
sudo dnf install bind-utils
Not: Bazı sistemlerde paket adı
bind-utilsyerinebind9-hostolarak da geçebilir. Kurulum sırasında hata alırsanız, sisteminizdeki paket adı içinapt search bindveyadnf search bindkomutlarını kullanabilirsiniz.
Temel Kullanım: Komut Sözdizimi
host komutunun genel sözdizimi aşağıdaki gibidir:
host [SEÇENEKLER] AD [SUNUCU]
Parametreler:
AD: Çözümlenecek alan adı, ana bilgisayar adı veya IP adresi.SUNUCU(isteğe bağlı): Sorguyu sistemin varsayılan DNS sunucusu yerine belirli bir sunucuya göndermek için kullanılır.
Alan Adını IP Adresine Çözümleme (Forward Lookup)
En yaygın kullanım, bir alan adını IP adreslerine dönüştürmektir. Bunun için herhangi bir seçenek kullanmadan komutu çalıştırmanız yeterlidir:
host example.com
Çıktı örneği:
example.com has address 23.215.0.136
example.com has address 96.7.128.175
example.com has IPv6 address 2600:1406:bc00:53::b81e:94c8
example.com has IPv6 address 2600:1406:3a00:21::173e:2e65
example.com mail is handled by 0 .
Açıklamalar:
has addresssatırları, alan adının IPv4 adreslerini gösterir.has IPv6 addresssatırları, IPv6 adreslerini gösterir.mail is handled bysatırı, alan adının posta sunucularını belirtir. Burada0 .ifadesi, RFC 7505'e göre boş MX kaydını temsil eder ve bu alan adının posta kabul etmediğini gösterir.
Önemli: DNS kayıtları dinamik olabilir. Yukarıdaki örnekteki adresler, gerçek adreslerden farklı olabilir. Birden fazla A kaydına sahip bir alan adı için
host, her adres için ayrı bir satır yazdırır.
IP Adresini Alan Adına Çözümleme (Reverse Lookup)
Tersine, bir IP adresinden alan adını bulmak için IP adresini doğrudan komuta geçirin. host komutu, girdiğiniz değerin bir IP adresi olduğunu otomatik olarak algılar ve PTR (Pointer) kaydını sorgular:
host 8.8.8.8
Çıktı örneği:
8.8.8.8.in-addr.arpa domain name pointer dns.google.
Not: Ters DNS kayıtları (PTR), IP adresini kontrol eden kuruluş tarafından yapılandırılır. Bu nedenle, her IP adresinin ters DNS kaydı olmayabilir.
Belirli DNS Kayıt Türlerini Sorgulama
DNS, sadece IP adresleriyle sınırlı değildir. host komutunda -t seçeneğini kullanarak belirli kayıt türlerini sorgulayabilirsiniz. Örneğin:
MX (Mail Exchange) Kayıtlarını Sorgulama
Bir alan adının posta sunucularını öğrenmek için:
host -t MX gmail.com
Çıktı örneği:
gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.
gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 20 alt2.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 30 alt3.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 40 alt4.gmail-smtp-in.l.google.com.
Açıklamalar:
- Her satırdaki sayı, posta sunucusunun önceliğini (priority) gösterir. Daha düşük sayı, daha yüksek önceliği temsil eder.
- Eşit önceliğe sahip sunucuların sırası değişebilir.
NS (Name Server) Kayıtlarını Sorgulama
Bir alan adının yetkili DNS sunucularını listelemek için:
host -t NS example.com
TXT Kayıtlarını Sorgulama
TXT kayıtları genellikle SPF, DKIM gibi e-posta doğrulama bilgilerini veya alan adı doğrulama dizelerini içerir:
host -t TXT example.com
CNAME Kayıtlarını Sorgulama
Bir alan adının başka bir alan adına yönlendirildiğini (alias) öğrenmek için:
host -t CNAME www.example.com
ANY Kayıt Türünü Sorgulama
-a seçeneği, ayrıntılı çıktı verir ve ANY kayıt türünü sorgular. Ancak, birçok DNS sunucusu RFC 8482'ye göre ANY sorgularına minimal yanıt verir:
host -a example.com
Uyarı:
-aseçeneği, tüm DNS kayıtlarını geri getirmez. Belirli kayıt türlerini sorgulamak için-tseçeneğini kullanmanız önerilir.
Belirli Bir DNS Sunucusuna Sorgu Gönderme
Varsayılan olarak, host komutu sisteminizde yapılandırılmış DNS sunucularına sorgu gönderir. Farklı bir sunucuya sorgu göndermek için, son parametre olarak sunucu adresini ekleyin. Bu, DNS değişikliklerinin yayılmasını kontrol etmek için kullanışlıdır:
host example.com 1.1.1.1
Bu örnekte, sorgu Cloudflare'ın 1.1.1.1 sunucusuna gönderilir. Eğer yanıt yerel sunucudan farklıysa, sunucuların önbelleklerinde farklı zaman aşımı değerleri olabilir. Yerel önbelleği temizlemek için sisteminize göre systemd-resolve --flush-caches veya sudo service nscd restart gibi komutları kullanabilirsiniz.
Yaygın Kullanılan Seçenekler
Aşağıdaki seçenekler, temel sorguların ötesinde çoğu kullanım durumunu kapsar:
| Seçenek | Açıklama |
|---|---|
-t TYPE |
Belirli bir kayıt türünü sorgular (A, AAAA, MX, NS, TXT, CNAME, PTR, SOA vb.). |
-a |
ANY kayıtlarını ayrıntılı çıktıyla sorgular. Sunucu minimal yanıt verebilir. |
-v |
Çıktıyı dig komutuna benzer şekilde ayrıntılı hale getirir. |
-W SECONDS |
Yanıt gelene kadar belirtilen saniye kadar bekler. Zaman aşımı süresini ayarlar. |
-R NUMBER |
Başarısız UDP sorgularını yeniden deneme sayısını ayarlar. |
-4 |
Sadece IPv4 kullanarak sorguları gerçekleştirir. |
-6 |
Sadece IPv6 kullanarak sorguları gerçekleştirir. |
Sık Kullanılan Komut Örnekleri
Aşağıda, host komutunu kullanırken sıkça karşılaşılan görevler için örnekler bulunmaktadır:
| Görev | Komut |
|---|---|
| Bir alan adını çözümlemek | host example.com |
| Bir IP adresini tersine çözümlemek | host 8.8.8.8 |
| Bir alan adının posta sunucularını listelemek | host -t MX gmail.com |
| Bir alan adının yetkili DNS sunucularını listelemek | host -t NS example.com |
| Bir alan adının TXT kayıtlarını görüntülemek | host -t TXT example.com |
| ANY kayıtlarını ayrıntılı olarak sorgulamak | host -a example.com |
| Belirli bir DNS sunucusuna sorgu göndermek | host example.com 1.1.1.1 |
| Zaman aşımı süresini ayarlamak | host -W 2 example.com |
| Sadece IPv4 kullanarak sorgulamak | host -4 example.com |
| Sadece IPv6 kullanarak sorgulamak | host -6 example.com |
Sıkça Sorulan Sorular (SSS)
host, dig ve nslookup arasındaki fark nedir?
host komutu, kısa ve okunabilir yanıtlar verir. Bu nedenle hızlı sorgular için idealdir. dig komutu, ayrıntılı ve yapılandırılmış çıktı sağlar ve hata ayıklama için tercih edilir. nslookup komutu ise eski bir etkileşimli araçtır ve hala yaygın olarak kullanılmaktadır.
Ters DNS araması nasıl yapılır?
IP adresini doğrudan komuta geçirin. Örneğin:
host 8.8.8.8
Komut, girdiğiniz adresin bir IP olduğunu algılar ve karşılık gelen PTR kaydını sorgular.
host komutu "not found: 3(NXDOMAIN)" hatasını neden verir?
NXDOMAIN yanıtı, adı DNS'de bulunamadığı anlamına gelir. Bunun nedenleri şunlar olabilir:
- Alan adında yazım hatası olabilir.
- Kayıt henüz oluşturulmamış olabilir.
- DNS değişiklikleri henüz yayılmamış olabilir.
Bu durumda, adın doğru yazıldığından emin olun ve kayıtların oluşturulduğunu doğrulayın. Eğer yeni bir kayıt oluşturduysanız, değişikliklerin yayılması için biraz zaman tanıyın.
host komutu belirli bir DNS sunucusuna sorgu gönderebilir mi?
Evet. Sunucu adresini son parametre olarak ekleyin. Örneğin:
host example.com 1.1.1.1
Bu, DNS değişikliklerinin yayılmasını kontrol etmek için farklı sunucuların yanıtlarını karşılaştırmak amacıyla kullanılır.
Sonuç
host komutu, terminalden "bu ad hangi adrese çözümlenir?" sorusuna hızlı yanıtlar almanın en kolay yoludur. Eğer bir sorgu daha fazla soru işareti oluşturursa, daha ayrıntılı çıktı için dig komutuna başvurun. E-posta doğrulama gibi durumlarda whois komutunu kullanabilirsiniz.
İpucu:
hostkomutunu kullanırken, çıktıyı daha okunabilir hale getirmek için çıktıları bir dosyaya yönlendirebilirsiniz:host example.com > dns_output.txt


