Linux'ta dig Komutu Nasıl Kullanılır

Yayınlanan: 2022-01-29
Bir Linux sisteminde stilize edilmiş bir terminal penceresi.
Fatmawati Achmad Zaenuri/Shutterstock

Linux dig komutu, DNS sunucularını sorgulamanıza ve DNS aramaları gerçekleştirmenize olanak tanır. Bir IP adresinin geri götürdüğü etki alanını da bulabilirsiniz. Size nasıl olduğunu göstereceğiz!

Kazı Komutu Nasıl Çalışır?

İnsanlar, Etki Alanı Adı Sistemi (DNS) sunucularını sorgulamak için Linux dig komutunu kullanır. dig , Domain Information Groper'ın kısaltmasıdır. dig ile, ana bilgisayar adresleri, posta alışverişleri, ad sunucuları ve ilgili bilgiler dahil olmak üzere çeşitli DNS kayıtlarıyla ilgili bilgiler için DNS sunucularını sorgulayabilirsiniz. DNS sorunlarını teşhis etmek için bir araç olması amaçlanmıştır. Ancak, internet yönlendirme trafiğini tutan merkezi sistemlerden biri olan DNS hakkında daha fazla bilgi edinmek ve dolaşmak için kullanabilirsiniz.

İnternet, web'deki "konumları" tanımlamak için internet protokolü (IP) adreslerini kullanır, ancak insanlar alan adlarını kullanır. Bir web tarayıcısı veya SSH istemcisi gibi bir uygulamaya bir alan adı yazdığınızda, alan adından gerçek IP adresine bir şeyin çevrilmesi gerekir. Alan Adı Sisteminin devreye girdiği yer burasıdır.

İnternete bağlı herhangi bir programla bir alan adı kullandığınızda, yerel yönlendiriciniz bunu çözemez (önceki bir istekten önbelleğe alınmadığı sürece). Bu nedenle yönlendiriciniz, İnternet Servis Sağlayıcınızın (ISS) DNS sunucusunu veya sisteminizi kullanmak üzere yapılandırdığınız diğer sunucuları sorgular. Bunlara DNS öncü sunucuları denir.

DNS sunucusu yakın zamanda aynı bilgisayardaki başka birinden aynı isteği aldıysa , yanıt önbelleğinde olabilir. Durum buysa, aynı bilgiyi programınıza geri gönderir.

DNS öncü sunucusu, etki alanını önbelleğinde bulamazsa, bir DNS kök ad sunucusuyla bağlantı kurar. Bir kök sunucu, alan adlarını IP adreslerine çözümlemek için gereken bilgileri tutmaz, ancak isteğinize yardımcı olabilecek sunucuların listesini tutar.

Reklamcılık

Kök sunucu, alan adınızın ait olduğu .COM, .ORG, .CO.UK vb. gibi üst düzey alan adına bakar. Ardından, bu tür etki alanlarını işleyen üst düzey etki alanı sunucularının bir listesini DNS öncü sunucusuna gönderir. DNS öncü sunucusu daha sonra bir kez daha üst düzey bir etki alanı sunucusuna istekte bulunabilir.

Üst düzey etki alanı sunucusu, yetkili ad sunucusunun ayrıntılarını (etki alanının ayrıntılarının depolandığı yer) DNS öncü sunucusuna geri gönderir. DNS sunucusu daha sonra, programınıza ilk olarak girdiğiniz etki alanının bölgesini barındıran yetkili ad sunucusunu sorgular. Yetkili ad sunucusu, IP adresini DNS sunucusuna geri gönderir, o da size geri gönderir.

kazı yükleme

dig Ubuntu 18.04 ve Fedora 30 bilgisayarlarımızda zaten kuruluydu. Ancak, aşağıdaki komutla Manjaro 18.04 bilgisayarına yüklememiz gerekiyordu:

 sudo pacman -Sy bağlama araçları 

Kazmaya Başlarken

İlk örneğimizde, bir alan adıyla ilişkili IP adreslerini döndüreceğiz. Çoğu zaman, birden çok IP adresi tek bir alan adıyla ilişkilendirilir. Bu genellikle, örneğin yük dengeleme kullanılırsa olur.

Aşağıda gösterildiği gibi bize kısa bir yanıt veren +short sorgu seçeneğini kullanıyoruz:

 dig howtogeek.com +short 

Howtogeek.com alan adıyla ilişkili tüm IP adresleri bizim için listelenmiştir. Spektrumun diğer ucunda, +short sorgu seçeneğini kullanmazsak , çıktı oldukça ayrıntılı olur.

Reklamcılık

Bu nedenle, less iletmek için aşağıdakini yazıyoruz:

 kazmak howtogeek.com | az 

Çıktı, aşağıda gösterildiği gibi less olarak görüntülenir.

İşte tam liste:

 ; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> howtogeek.com
;; genel seçenekler: +cmd
;; Cevap var:
;; ->>BAŞLIK<<- işlem kodu: QUERY, durum: NOERROR, id: 12017
;; bayraklar: qr rd ra; SORU: 1, CEVAP: 4, YETKİ: 0, EK: 1

;; OPT SÖZSEKSİYON:
; EDNS: sürüm: 0, işaretler:; udp: 65494
;; SORU BÖLÜMÜ:
;howtogeek.com.tr İÇİNDE

;; CEVAP BÖLÜMÜ:
howtogeek.com.tr 3551 A 151.101.194.217 İÇİNDE
howtogeek.com.tr 3551 A 151.101.130.217 İÇİNDE
howtogeek.com.tr 3551 A 151.101.66.217'DE
howtogeek.com.tr 3551 A 151.101.2.217'DE

;; Sorgu süresi: 0 msn
;; SUNUCU: 127.0.0.53#53(127.0.0.53)
;; NE ZAMAN: 22 Mart Paz 07:44:37 EDT 2020
;; MSG BOYUTU rcvd: 106

Parça parça inceleyelim.

başlık

İlk olarak, Header'da sahip olduğumuza bir göz atalım:

 ; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> howtogeek.com
;; genel seçenekler: +cmd
;; Cevap var:
;; ->>BAŞLIK<<- işlem kodu: QUERY, durum: NOERROR, id: 12017
;; bayraklar: qr rd ra; SORU: 1, CEVAP: 4, YETKİ: 0, EK: 1

Şimdi, tüm bunların anlamı şudur:

  • İlk satır: dig sürümü ve sorgulanan alan.
  • Genel seçenekler: Göreceğimiz gibi, aynı anda birden çok alanı sorgulamak için dig kullanabilirsiniz. Bu satır, tüm etki alanı sorgularına uygulanan seçenekleri gösterir. Basit örneğimizde bu yalnızca varsayılan +cmd (komut) seçeneğiydi.
  • Opcode: Sorgu: Bu, bu durumda bir query olan talep edilen işlem türüdür. Bu değer ayrıca bir ters iquery için sorgu veya yalnızca DNS sisteminin durumunu test ediyorsanız status olabilir.
  • Durum: Hata Yok: Hata yoktu ve istek doğru bir şekilde çözüldü.
  • Kimlik: 12017 : Bu rastgele kimlik, istek ve yanıtı birbirine bağlar.
  • Bayraklar: qr rd ra: Bunlar, query , recursion desired recursion available . Özyineleme, bir DNS arama biçimidir (diğeri yinelemelidir). Ayrıca, Yetkili Ad Sunucusunun yanıtı sağladığı anlamına gelen Yetkili Yanıt anlamına gelen AA ifadesini de görebilirsiniz.
  • Sorgu: 1: Bu oturumdaki bir olan sorgu sayısı.
  • Cevap: 4: Bu cevaptaki cevap sayısı dörttür.
  • Yetki: 0: Bu durumda sıfır olan bir Yetkili Ad Sunucusundan gelen yanıtların sayısı. Yanıt, bir DNS öncü sunucusunun önbelleğinden döndürüldü. Cevapta yetkili bir bölüm olmayacak.
  • Ek: 1: Bir parça ek bilgi var. (Garip bir şekilde, bu değer iki veya daha yüksek olmadığı sürece hiçbir şey listelenmez.)

İsteğe Bağlı Sözde Kesim

Ardından, Opt Pseudo bölümünde aşağıdakileri görüyoruz:

 ;; OPT SÖZSEKSİYON:
; EDNS: sürüm: 0, işaretler:; udp: 65494

Bunu parçalayalım:

  • EDNS: sürüm 0: Kullanılan DNS için Uzantı Sistemi sürümü. EDNS, Kullanıcı Datagram Protokolü (UDP) paketlerinin boyutunu genişleterek genişletilmiş verileri ve bayrakları iletir. Bu, değişken boyutlu bir bayrakla gösterilir.
  • bayraklar: Hiçbir bayrak kullanımda değildir.
  • udp : 4096: UDP paket boyutu.

Soru Bölümü

Soru bölümünde aşağıdakileri görüyoruz:

 ;; SORU BÖLÜMÜ:
;howtogeek.com.tr İÇİNDE

Bunun anlamı şudur:

  • howtogeek.com: Sorguladığımız alan adı.
  • IN: Bir internet sınıfı sorgusu yapıyoruz.
  • A: Biz aksini belirtmedikçe dig , DNS sunucusundan bir A (adres) kaydı isteyecektir.

Cevap Bölümü

Yanıt bölümü, DNS sunucusundan aldığımız aşağıdaki dört yanıtı içerir:

 howtogeek.com.tr 3551 A 151.101.194.217 İÇİNDE
howtogeek.com.tr 3551 A 151.101.130.217 İÇİNDE
howtogeek.com.tr 3551 A 151.101.66.217'DE
howtogeek.com.tr 3551 A 151.101.2.217'DE

İşte bu cevapların anlamı:

  • 3551: Bu, bir kaydın önbelleğe alınabileceği zaman aralığını tutan 32 bitlik işaretli bir tam sayı olan Yaşam Süresidir (TTL). Süresi dolduğunda, veriler DNS sunucusu tarafından yenilenene kadar bir isteğe yanıt olarak kullanılmalıdır.
  • IN: İnternet sınıfı sorgusu yaptık.
  • C: DNS sunucusundan A kaydı istedik.

İstatistik Bölümü

İstatistikler son bölümdür ve aşağıdaki bilgileri içerir:

 ;; Sorgu süresi: 0 msn 
;; SUNUCU: 127.0.0.53#53(127.0.0.53) 
;; NE ZAMAN: 22 Mart Paz 07:44:37 EDT 2020 
;; MSG BOYUTU rcvd: 106

İşte elimizdekiler:

  • Sorgu Süresi: 0 msn: Yanıtın alınması için geçen süre.
  • SUNUCU: 127.0.0.53#53(127.0.0.53): Yanıt veren DNS sunucusunun IP Adresi ve bağlantı noktası numarası. Bu durumda, yerel önbelleğe alma saplama çözümleyicisine işaret ediyor. Bu, DNS isteklerini yapılandırılmış olan yukarı akış DNS sunucularına iletir. Manajro test bilgisayarında burada listelenen adres, Google'ın genel DNS hizmeti olan 8.8.8.8#53 idi.
  • NE ZAMAN: 22 Mart Paz 07:44:37 EDT 2020: Talep yapıldığında.
  • MSG SIZE rcvd: 106: DNS sunucusundan alınan mesajın boyutu.

seçici olmak

Ağzı sıkı ve gevezeliğin iki ucuna razı olmak zorunda değilsiniz. dig komutu, sonuçlara bölümleri seçerek dahil etmenize veya hariç tutmanıza olanak tanır.

Aşağıdaki sorgu seçenekleri, bu bölümü sonuçlardan kaldıracaktır:

  • +nocomments: Yorum satırlarını gösterme.
  • +noauthority: Yetki bölümünü gösterme.
  • +noadditional: Ek bölümü gösterme.
  • +nostats: İstatistikler bölümünü gösterme.
  • +noanswer: Cevap bölümünü gösterme.
  • +noall: Hiçbir şey gösterme!
Reklamcılık

+noall sorgu seçeneği, sonuçlara bir bölüm eklemek için genellikle yukarıdakilerden biriyle birleştirilir. Bu nedenle, birden çok bölümü kapatmak için uzun bir sorgu seçeneği dizisi yazmak yerine hepsini kapatmak için +noall kullanabilirsiniz.

Ardından, tekrar görmek istediklerinizi açmak için aşağıdaki kapsamlı sorgu seçeneklerini kullanabilirsiniz:

  • +yorumlar: Yorum satırlarını göster.
  • +yetki: Yetki bölümünü göster.
  • +ek: Ek bölümü göster.
  • +stats: İstatistikler bölümünü gösterir.
  • +cevap: Cevap bölümünü göster.
  • +tümü: Her şeyi göster.

Bir istekte bulunmak ve yorum satırlarını hariç tutmak için aşağıdakileri yazıyoruz:

 dig howtogeek.com +nocomments 

+noall sorgu seçeneğini aşağıda gösterildiği gibi tek başına kullanırsak, herhangi bir yararlı çıktı alamayız:

 kaz howtogeek.com +noall 

Görmek istediğimiz bölümleri seçerek ekleyebiliriz. Cevap bölümünü eklemek için şunu yazıyoruz:

 Howtogeek.com'u inceleyin +noall +cevap 

+stats açmak için aşağıdakini yazarsak, istatistikler bölümünü de görürüz:

 dig howtogeek.com +noall +cevap +stats 

Reklamcılık

+noall +answer kombinasyonu sıklıkla kullanılır. Gerektiğinde komut satırına başka bölümler ekleyebilirsiniz. dig 'i her kullandığınızda komut satırına +noall +answer yazmaktan kaçınmak istiyorsanız, bunları “.digrc” adlı bir yapılandırma dosyasına koyabilirsiniz. Ev dizininizde bulunur.

echo ile bir tane oluşturmak için aşağıdakileri yazıyoruz:

 echo "+noall +cevap" > $HOME/.digrc

Daha sonra içeriğini kontrol etmek için aşağıdakini yazabiliriz:

 kedi .digrc 

Bu iki seçenek, aşağıda gösterildiği gibi dig gelecekteki tüm kullanımlarına uygulanacaktır:

 ubuntu.org'u inceleyin
 linux.org'u kaz
 github.com'u kaz 

Bu dig yapılandırma dosyası, bu makaledeki kalan örnekler için kullanılacaktır.

DNS Kayıtları

dig isteklerinize döndürülen bilgiler, DNS sunucusunda tutulan farklı kayıt türlerinden alınır. Farklı bir şey istemediğimiz sürece dig , A (adres) kaydını sorgular. Aşağıdakiler, dig ile yaygın olarak kullanılan kayıt türleridir:

  • A Kayıt: Etki alanını bir IP sürüm 4 adresine bağlar.
  • MX Kaydı: Posta alışverişi, alan adlarına gönderilen e-postaları doğru posta sunucusuna yönlendirir.
  • NS Kaydı: Ad sunucusu kayıtları, bir etki alanını (veya alt etki alanını) bir dizi DNS sunucusuna devreder.
  • TXT Kaydı: Metin kayıtları, alanla ilgili metin tabanlı bilgileri depolar. Tipik olarak, sahte veya sahte e-postaları bastırmak için kullanılabilirler.
  • SOA Kaydı: Yetki başlangıcı kayıtları, etki alanı hakkında birçok bilgiyi tutabilir. Burada, birincil ad sunucusunu, sorumlu tarafı, değişiklikler için bir zaman damgasını, bölge yenileme sıklığını ve yeniden denemeler ve vazgeçmeler için bir dizi zaman sınırını bulabilirsiniz.
  • TTL: Yaşam süresi, her DNS kaydı için, bir DNS öncü sunucusunun her bir DNS sorgusunu önbelleğe almasına ne kadar süreyle izin verileceğini belirten bir ayardır. Bu süre sona erdiğinde, sonraki istekler için verilerin yenilenmesi gerekir.
  • HERHANGİ: Bu, dig yapabileceği her tür DNS kaydını döndürmesini söyler.
Reklamcılık

A kayıt türünün belirtilmesi, aşağıda gösterildiği gibi adres kaydını sorgulamak ve IP adresini almak olan varsayılan eylemi değiştirmez:

 kaz redhat.com A 

Posta alışverişi kayıtlarını sorgulamak için aşağıdaki MX bayrağını kullanıyoruz:

 yahoo.com MX'i kaz 

Ad sunucusu bayrağı, üst düzey etki alanıyla ilişkili kök ad sunucularının aşağıdaki adını döndürür:

 kaz fedora.com NS 

Yetki kaydının başlangıcını sorgulamak için aşağıdaki SOA bayrağını yazıyoruz:

 manjaro.com SOA'yı kaz 

TTL bayrağı, DNS sunucusunun önbelleğindeki veriler için yaşama süresini bize gösterecektir. Bir dizi istekte bulunursak, yaşama süresinin sıfıra indiğini ve ardından başlangıç ​​değerine geri döndüğünü görürüz.

Aşağıdakileri yazıyoruz:

 usa.gov TTL'yi kaz 

Metin kayıtlarını görmek için TX bayrağını yazıyoruz:

 kaz usa.gov TXT 

DNS Sunucusunu Belirtme

İsteğiniz için belirli bir DNS sunucusu kullanmak istiyorsanız, komut satırı parametresi olarak dig geçirmek için at işaretini ( @ ) kullanabilirsiniz.

Reklamcılık

Varsayılan DNS sunucusuyla (aşağıya bakın), dig , 127.0.0.53'teki yerel önbelleğe alma saplama çözümleyicisine başvurur.

 usa.gov + istatistiklerini kaz

Şimdi, 8.8.8.8'de Google'ın genel DNS sunucusunu kullanmak için aşağıdakini yazıyoruz:

 kazı @8.8.8.8 usa.gov +stats 

Dig'i Birden Çok Etki Alanıyla Kullanma

Aşağıda gösterildiği gibi, komut satırında dig için birden çok etki alanı iletebiliriz:

 kaz ubuntu.org fedora.org manjaro.com 

Bir dizi etki alanını düzenli olarak kontrol ediyorsanız, bunları bir metin dosyasında saklayabilir ve dig iletebilirsiniz. Dosyadaki tüm alanlar sırayla kontrol edilecektir.

Dosyamızın adı “domains.txt”. İçeriğini göstermek için cat kullanacağız ve ardından -f (dosya) seçeneğiyle onu dig ileteceğiz. Aşağıdakileri yazıyoruz:

 kedi alan adları.txt
 dig -f domains.txt 

Ters DNS Aramaları

Bir IP adresiniz varsa ve nereye gittiğini bilmek istiyorsanız, ters DNS aramasını deneyebilirsiniz. Bir DNS sunucusuna kayıtlı bir sunucuya çözümlenirse, etki alanını öğrenebilirsiniz.

Reklamcılık

Bunu yapıp yapamayacağınız, bir PTR'nin (işaretçi kaydı) varlığına bağlıdır. PTR'ler, bir IP adresini tam nitelikli bir etki alanı adına çözümler. Ancak bunlar zorunlu olmadığından, her zaman bir etki alanında bulunmazlar.

Bakalım 209.51.188.148 IP adresinin bizi nereye götürdüğünü bulabilecek miyiz. -x (ters arama) seçeneğini kullanarak aşağıdakileri yazıyoruz:

 kazmak -x 209.51.188.148 

Presto! IP adresi gnu.org olarak çözülür.

Bir PTR bir DNS kaydı olduğundan ve dig belirli DNS kayıtlarını talep edebileceğini bildiğimizden, dig'in bizim için dig almasını isteyemez miyiz? Evet, yapabiliriz, ancak biraz daha fazla çalışma gerektiriyor.

IP adresini ters sırada sağlamamız ve aşağıda gösterildiği gibi .in-addr.arpa sonuna eklememiz gerekir:

 dig ptr 148.188.51.209.in-addr.arpa 

Reklamcılık

Aynı sonucu elde ederiz; sadece biraz daha çaba gerektirdi.

Kazabilir misin?

Hepimiz interneti her gün kullanıyoruz ve meraklı zihinler genellikle bir web sitesinin adını bir tarayıcıya yazdığımızda sihrin nasıl olduğunu merak ediyor. dig ile ağ oluşturma süreçlerini keşfedebilirsiniz.

İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar