Linux'ta dig Komutu Nasıl Kullanılır
Yayınlanan: 2022-01-29 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.
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.
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 tersiquery
için sorgu veya yalnızca DNS sisteminin durumunu test ediyorsanızstatus
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 gelenAA
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!
+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
+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.
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.
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.
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
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.
Linux Komutları | ||
Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw |
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar