Cara Menggunakan Perintah dig di Linux
Diterbitkan: 2022-01-29 Perintah dig
Linux memungkinkan Anda untuk menanyakan server DNS dan melakukan pencarian DNS. Anda juga dapat menemukan domain tujuan kembalinya alamat IP. Kami akan menunjukkan caranya!
Bagaimana Perintah penggalian Bekerja
Orang-orang menggunakan perintah Linux dig
untuk menanyakan server Domain Name System (DNS). dig
adalah singkatan dari Domain Information Groper. Dengan dig
, Anda dapat menanyakan server DNS untuk informasi mengenai berbagai catatan DNS, termasuk alamat host, pertukaran email, server nama, dan informasi terkait. Itu dimaksudkan untuk menjadi alat untuk mendiagnosis masalah DNS. Namun, Anda dapat menggunakannya untuk melihat-lihat dan mempelajari lebih lanjut tentang DNS, yang merupakan salah satu sistem pusat yang menjaga lalu lintas perutean internet.
Internet menggunakan alamat protokol internet (IP) untuk mengidentifikasi "lokasi" di sekitar web, tetapi orang menggunakan nama domain. Saat Anda mengetik nama domain ke dalam aplikasi, seperti browser web atau klien SSH, sesuatu harus diterjemahkan dari nama domain ke alamat IP yang sebenarnya. Di sinilah Sistem Nama Domain masuk.
Saat Anda menggunakan nama domain dengan program apa pun yang terhubung ke internet, router lokal Anda tidak dapat menyelesaikannya (kecuali jika di-cache dari permintaan sebelumnya). Jadi, router Anda menanyakan server DNS Penyedia Layanan Internet (ISP) Anda, atau server lain yang telah Anda konfigurasikan untuk digunakan oleh sistem Anda. Ini disebut server prekursor DNS.
Jika server DNS baru-baru ini menerima permintaan yang sama dari orang lain di komputer yang sama, jawabannya mungkin ada di cache -nya . Jika itu masalahnya, itu hanya mengirimkan informasi yang sama kembali ke program Anda.
Jika server prekursor DNS tidak dapat menemukan domain dalam cache-nya, server tersebut akan menghubungi server nama root DNS. Server root tidak akan menyimpan informasi yang diperlukan untuk menyelesaikan nama domain ke alamat IP, tetapi akan menyimpan daftar server yang dapat membantu permintaan Anda.
Server root melihat domain tingkat atas tempat nama domain Anda berada, seperti .COM, .ORG, .CO.UK, dan seterusnya. Kemudian mengirimkan daftar server domain tingkat atas yang menangani jenis domain tersebut kembali ke server pendahulu DNS. Server prekursor DNS kemudian dapat membuat permintaannya sekali lagi, ke server domain tingkat atas.
Server domain tingkat atas mengirimkan detail server nama otoritatif (tempat detail domain disimpan) kembali ke server pendahulu DNS. Server DNS kemudian menanyakan server nama otoritatif yang menghosting zona domain yang awalnya Anda masukkan ke dalam program Anda. Server nama otoritatif mengirimkan alamat IP kembali ke server DNS, yang, pada gilirannya, mengirimkannya kembali kepada Anda.
Menginstal penggalian
dig
sudah diinstal di komputer Ubuntu 18.04 dan Fedora 30 kami. Namun, kami harus menginstalnya di komputer Manjaro 18.04 dengan perintah berikut:
sudo pacman -Sy bind-tools
Memulai dengan dig
Dalam contoh pertama kami, kami akan mengembalikan alamat IP yang terkait dengan nama domain. Seringkali, beberapa alamat IP dikaitkan dengan satu nama domain. Ini sering terjadi jika load balancing digunakan, misalnya.
Kami menggunakan opsi kueri +short
, seperti yang ditunjukkan di bawah ini, yang memberi kami respons singkat:
gali howtogeek.com +pendek
Semua alamat IP yang terkait dengan domain howtogeek.com terdaftar untuk kami. Di ujung lain spektrum, jika kita tidak menggunakan opsi kueri +short
, hasilnya cukup bertele-tele.
Jadi, kami mengetik yang berikut untuk menyalurkannya melalui less
:
gali howtogeek.com | lebih sedikit
Output ditampilkan dalam less
, seperti yang ditunjukkan di bawah ini.
Berikut daftar lengkapnya:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> howtogeek.com ;; opsi global: +cmd ;; Mendapat jawaban: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017 ;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 4, OTORITAS: 0, TAMBAHAN: 1 ;; OPT PSEUDOSEKSI: ; EDNS: versi: 0, bendera:; udp: 65494 ;; BAGIAN PERTANYAAN: ;howtogeek.com. DI SEBUAH ;; BAGIAN JAWABAN: howtogeek.com. 3551 DALAM A 151.101.194.217 howtogeek.com. 3551 DALAM A 151.101.130.217 howtogeek.com. 3551 DALAM 151.101.66.217 howtogeek.com. 3551 DALAM A 151.101.2.217 ;; Waktu kueri: 0 mdtk ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; KAPAN: Min 22 Mar 07:44:37 EDT 2020 ;; UKURAN MSG rcvd: 106
Mari kita membedahnya sepotong demi sepotong.
tajuk
Pertama, mari kita lihat yang kita miliki di Header:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> howtogeek.com ;; opsi global: +cmd ;; Mendapat jawaban: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017 ;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 4, OTORITAS: 0, TAMBAHAN: 1
Sekarang, inilah arti semua itu:
- Baris pertama: Versi
dig
dan domain yang ditanyakan. - Opsi global: Seperti yang akan kita lihat, Anda dapat menggunakan
dig
untuk menanyakan beberapa domain secara bersamaan. Baris ini menunjukkan opsi yang telah diterapkan ke semua kueri domain. Dalam contoh sederhana kami, itu hanya opsi+cmd
(perintah) default. - Opcode: Query: Ini adalah jenis operasi yang diminta yang, dalam hal ini, adalah
query
. Nilai ini juga dapat berupaiquery
untuk kueri terbalik, ataustatus
jika Anda hanya menguji status sistem DNS. - Status: Noerror: Tidak ada kesalahan dan permintaan telah diselesaikan dengan benar.
- ID: 12017 : ID acak ini mengikat permintaan dan respons bersama-sama.
- Flags: qr rd ra: Ini berdiri untuk
query
,recursion desired
, danrecursion available
. Rekursi adalah salah satu bentuk pencarian DNS (yang lainnya adalah iteratif). Anda mungkin juga melihatAA
, yang merupakan singkatan dari Authoritative Answer, artinya Server Nama Resmi yang memberikan respons. - Kueri: 1: Jumlah kueri dalam sesi ini, yang satu.
- Jawaban: 4: Jumlah jawaban dalam jawaban ini, yaitu empat.
- Otoritas: 0: Jumlah jawaban yang berasal dari Server Nama Resmi, yang dalam kasus ini adalah nol. Respons dikembalikan dari cache server prekursor DNS. Tidak akan ada bagian otoritatif dalam tanggapan.
- Tambahan: 1: Ada satu informasi tambahan. (Anehnya, tidak ada yang terdaftar kecuali nilai ini dua atau lebih tinggi.)
Pilih Pseudosection
Selanjutnya, kita melihat yang berikut di bagian Opt Pseudo:
;; OPT PSEUDOSEKSI: ; EDNS: versi: 0, bendera:; udp: 65494
Mari kita uraikan:
- EDNS: versi 0: Versi Sistem Ekstensi untuk DNS yang sedang digunakan. EDNS mentransmisikan data dan flag yang diperluas dengan memperluas ukuran paket User Datagram Protocol (UDP). Ini ditunjukkan oleh bendera ukuran variabel.
- flag: Tidak ada flag yang digunakan.
- udp : 4096: Ukuran paket UDP.
Bagian Pertanyaan
Di bagian Pertanyaan, kita melihat yang berikut:
;; BAGIAN PERTANYAAN: ;howtogeek.com. DI SEBUAH
Berikut artinya:
- howtogeek.com: Nama domain yang kami tanyakan.
- IN: Kami sedang membuat kueri kelas internet.
- J: Kecuali jika kami menentukan lain,
dig
akan meminta catatan A (alamat) dari server DNS.
Bagian Jawaban
Bagian Jawaban berisi empat jawaban berikut yang kami terima dari server DNS:
howtogeek.com. 3551 DALAM A 151.101.194.217 howtogeek.com. 3551 DALAM A 151.101.130.217 howtogeek.com. 3551 DALAM 151.101.66.217 howtogeek.com. 3551 DALAM A 151.101.2.217
Inilah arti dari jawaban-jawaban ini:
- 3551: Ini adalah Time to Live (TTL), bilangan bulat bertanda 32-bit yang menyimpan interval waktu untuk rekaman yang dapat di-cache. Saat kedaluwarsa, data harus digunakan sebagai jawaban atas permintaan hingga di-refresh oleh server DNS.
- IN: Kami membuat kueri kelas Internet.
- A: Kami meminta catatan A dari server DNS.
Bagian Statistik
Statistik adalah bagian terakhir, dan berisi informasi berikut:
;; Waktu kueri: 0 mdtk ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; KAPAN: Min 22 Mar 07:44:37 EDT 2020 ;; UKURAN MSG rcvd: 106
Inilah yang kami dapatkan:
- Waktu Kueri: 0 mdtk: Waktu yang diperlukan untuk mendapatkan respons.
- SERVER: 127.0.0.53#53(127.0.0.53): Alamat IP dan nomor port server DNS yang merespons. Dalam hal ini, itu menunjuk ke penyelesai rintisan caching lokal. Ini meneruskan permintaan DNS ke server DNS hulu mana pun yang dikonfigurasi. Pada komputer uji Manajro, alamat yang tercantum di sini adalah 8.8.8.8#53, yang merupakan layanan DNS publik Google.
- KAPAN: Min 22 Mar 07:44:37 EDT 2020: Saat permintaan dibuat.
- UKURAN MSG rcvd: 106: Ukuran pesan yang diterima dari server DNS.
Menjadi Selektif
Anda tidak harus puas dengan dua ekstrem dari bungkam dan cerewet. Perintah dig
memungkinkan Anda untuk secara selektif memasukkan atau mengecualikan bagian dari hasil.
Opsi kueri berikut akan menghapus bagian tersebut dari hasil:
- +nocomments: Jangan tampilkan baris komentar.
- +noauthority: Jangan tampilkan bagian authority.
- +noadditional: Jangan tampilkan bagian tambahan.
- +nostats: Jangan tampilkan bagian statistik.
- +noanswer: Jangan tampilkan bagian jawaban.
- +noall: Jangan tampilkan apa pun!
Opsi kueri +noall
biasanya digabungkan dengan salah satu opsi di atas untuk menyertakan bagian dalam hasil. Jadi, alih-alih mengetik string panjang opsi kueri untuk menonaktifkan beberapa bagian, Anda dapat menggunakan +noall
untuk menonaktifkan semuanya.
Anda kemudian dapat menggunakan opsi kueri inklusif berikut untuk mengaktifkan kueri yang ingin Anda lihat kembali:
- +komentar: Tampilkan baris komentar.
- +otoritas: Tampilkan bagian otoritas.
- +tambahan: Menampilkan bagian tambahan.
- +stats: Menampilkan bagian statistik.
- +jawaban: Tampilkan bagian jawaban.
- +semua: Tampilkan semuanya.
Kami mengetik yang berikut untuk membuat permintaan dan mengecualikan baris komentar:
gali howtogeek.com +nocomments
Jika kita menggunakan opsi kueri +noall
sendiri, seperti yang ditunjukkan di bawah ini, kita tidak akan mendapatkan hasil yang berguna:
gali howtogeek.com +noall
Kita dapat secara selektif menambahkan bagian yang ingin kita lihat. Untuk menambahkan bagian jawaban, kita ketik berikut ini:
gali howtogeek.com +noall +answer
Jika kita mengetik berikut ini untuk mengaktifkan +stats
, kita juga akan melihat bagian statistik:
gali howtogeek.com +noall +answer +stats
Kombinasi +noall +answer
sering digunakan. Anda dapat menambahkan bagian lain ke baris perintah sesuai kebutuhan. Jika Anda ingin menghindari mengetik +noall +answer
pada baris perintah setiap kali Anda menggunakan dig
, Anda dapat meletakkannya di file konfigurasi bernama “.digrc.” Itu terletak di direktori home Anda.
Kami mengetik yang berikut untuk membuatnya dengan echo
:
echo "+tidak ada +jawaban" > $HOME/.digrc
Kami kemudian dapat mengetik yang berikut untuk memeriksa isinya:
kucing .digrc
Kedua opsi tersebut sekarang akan diterapkan ke semua penggunaan dig
di masa mendatang, seperti yang ditunjukkan di bawah ini:
gali ubuntu.org
gali linux.org
gali github.com
File konfigurasi dig
ini akan digunakan untuk contoh lainnya dalam artikel ini.
Catatan DNS
Informasi yang dikembalikan ke permintaan dig
Anda diambil dari berbagai jenis catatan yang disimpan di server DNS. Kecuali jika kami meminta sesuatu yang berbeda, dig
kueri catatan A (alamat). Berikut ini adalah jenis-jenis record yang biasa digunakan dengan dig
:
- A Record: Menautkan domain ke alamat IP versi 4.
- MX Record: Catatan pertukaran email mengarahkan email yang dikirim ke domain ke server email yang benar.
- Catatan NS: Catatan server nama mendelegasikan domain (atau subdomain) ke satu set server DNS.
- Catatan TXT: Catatan teks menyimpan informasi berbasis teks mengenai domain. Biasanya, mereka dapat digunakan untuk menekan email palsu atau palsu.
- Catatan SOA: Mulai dari catatan otoritas dapat menyimpan banyak informasi tentang domain. Di sini, Anda dapat menemukan server nama utama, pihak yang bertanggung jawab, stempel waktu untuk perubahan, frekuensi penyegaran zona, dan serangkaian batas waktu untuk percobaan ulang dan pengabaian.
- TTL: Time to live adalah pengaturan untuk setiap catatan DNS yang menentukan berapa lama server pendahulu DNS diizinkan untuk menyimpan cache setiap permintaan DNS. Ketika waktu itu berakhir, data harus di-refresh untuk permintaan berikutnya.
- APAPUN: Ini memberitahu
dig
untuk mengembalikan setiap jenis catatan DNS yang bisa dilakukan.
Menentukan tipe record A tidak mengubah tindakan default, yaitu mengkueri record alamat dan mendapatkan alamat IP, seperti yang ditunjukkan di bawah ini:
gali redhat.com A
Untuk mengkueri catatan pertukaran surat, kami menggunakan flag MX berikut:
gali yahoo.com MX
Bendera server nama mengembalikan nama server nama akar berikut yang terkait dengan domain tingkat atas:
gali fedora.com NS
Untuk menanyakan awal catatan otoritas, kami mengetikkan flag SOA berikut:
gali manjaro.com SOA
Bendera TTL akan menunjukkan kepada kita waktu untuk hidup untuk data dalam cache server DNS. Jika kita membuat serangkaian permintaan, kita melihat waktu untuk hidup berkurang menjadi nol, dan kemudian melompat kembali ke nilai awalnya.
Kami mengetik berikut ini:
gali usa.gov TTL
Untuk melihat catatan teks, kami mengetikkan flag TX:
gali usa.gov TXT
Menentukan Server DNS
Jika Anda ingin menggunakan server DNS tertentu untuk permintaan Anda, Anda dapat menggunakan tanda at ( @
) untuk meneruskannya ke dig
sebagai parameter baris perintah.
Dengan server DNS default (lihat di bawah), dig
mereferensikan penyelesai rintisan caching lokal di 127.0.0.53.
gali usa.gov +stats
Sekarang, kita ketik berikut ini untuk menggunakan server DNS publik Google di 8.8.8.8:
gali @8.8.8.8 usa.gov +stats
Menggunakan penggalian dengan Beberapa Domain
Kami dapat melewati beberapa domain untuk dig
pada baris perintah, seperti yang ditunjukkan di bawah ini:
gali ubuntu.org fedora.org manjaro.com
Jika Anda secara teratur memeriksa satu set domain, Anda dapat menyimpannya dalam file teks dan meneruskannya ke dig
. Semua domain dalam file akan diperiksa secara bergantian.
File kami disebut "domains.txt." Kami akan menggunakan cat
untuk menampilkan isinya, dan kemudian meneruskannya ke dig
dengan opsi -f
(file). Kami mengetik berikut ini:
domain kucing.txt
gali -f domains.txt
Pencarian DNS Terbalik
Jika Anda memiliki alamat IP dan ingin tahu ke mana alamatnya, Anda dapat mencoba pencarian DNS terbalik. Jika diselesaikan ke server yang terdaftar dengan server DNS, Anda mungkin dapat mengetahui domainnya.
Apakah Anda dapat bergantung pada keberadaan PTR (catatan penunjuk). PTR menyelesaikan alamat IP menjadi nama domain yang sepenuhnya memenuhi syarat. Namun, karena ini tidak wajib, mereka tidak selalu ada di domain.
Mari kita lihat apakah kita bisa mengetahui kemana alamat IP 209.51.188.148 membawa kita. Kami mengetik berikut ini, menggunakan opsi -x
(pencarian terbalik):
gali -x 209.51.188.148
Presto! Alamat IP memutuskan ke gnu.org.
Karena PTR adalah catatan DNS, dan kita tahu dig
dapat meminta catatan DNS tertentu, tidak bisakah kita meminta dig
untuk mengambil PTR untuk kita? Ya, kita bisa, tetapi itu membutuhkan sedikit lebih banyak pekerjaan.
Kami harus memberikan alamat IP dalam urutan terbalik dan tack .in-addr.arpa
di akhir, seperti yang ditunjukkan di bawah ini:
gali ptr 148.188.51.209.in-addr.arpa
Kami mendapatkan hasil yang sama; itu hanya butuh sedikit lebih banyak usaha.
Bisakah kamu menggali itu?
Kita semua menggunakan internet setiap hari, dan pikiran yang ingin tahu sering bertanya-tanya bagaimana keajaiban terjadi ketika kita mengetikkan nama situs web ke dalam browser. Dengan dig
, Anda dapat menjelajahi proses sulap jaringan.
Perintah Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · ketik · ganti nama · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konversi · rclone · rusak · srm | |
Proses | alias · layar · atas · bagus · renice · kemajuan · strace · systemd · tmux · chsh · sejarah · di · batch · gratis · yang · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · batas waktu · dinding · ya · bunuh · tidur · sudo · su · waktu · groupadd · usermod · grup · lshw · shutdown · reboot · hentikan · matikan · passwd · lscpu · crontab · tanggal · bg · fg | |
Jaringan | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar