Android

คำสั่ง Dig ใน linux (ค้นหา DNS)

ATB - Could You Believe (Official Music Video) [High Quality]

ATB - Could You Believe (Official Music Video) [High Quality]

สารบัญ:

Anonim

ขุด (Domain Information Groper) เป็นเครื่องมือบรรทัดคำสั่งที่มีประสิทธิภาพสำหรับการสอบถามเซิร์ฟเวอร์ชื่อ DNS

ด้วยคำสั่ง dig คุณสามารถค้นหาข้อมูลเกี่ยวกับระเบียน DNS ต่างๆรวมถึงที่อยู่โฮสต์การแลกเปลี่ยนอีเมลและเซิร์ฟเวอร์ชื่อ เป็นเครื่องมือที่ใช้กันมากที่สุดในหมู่ผู้ดูแลระบบเพื่อแก้ไขปัญหา DNS เนื่องจากความยืดหยุ่นและใช้งานง่าย

ในบทช่วยสอนนี้เราจะแสดงวิธีใช้ยูทิลิตี้การ dig ผ่านตัวอย่างการปฏิบัติและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือกการ dig ทั่วไป

การติดตั้งเครื่อง dig

ในการตรวจสอบว่าคำสั่ง dig พร้อมใช้งานในระบบของคุณหรือไม่:

dig -v

ผลลัพธ์ควรมีลักษณะดังนี้:

DiG 9.11.3-1ubuntu1.1-Ubuntu

หากไม่มี dig อยู่ในระบบของคุณคำสั่งด้านบนจะพิมพ์“ dig: command not found” คุณสามารถติดตั้งเครื่องมือ dig โดยใช้เครื่องมือจัดการแพคเกจของ distro ของคุณ

ติดตั้ง dig บน Ubuntu และ Debian

sudo apt update && sudo apt install dnsutils

ติดตั้ง dig บน CentOS และ Fedora

sudo yum install bind-utils

ติดตั้ง dig บน Arch Linux

sudo pacman -S bind-tools

ทำความเข้าใจเกี่ยวกับผลผลิต Dig

ในรูปแบบที่ง่ายที่สุดเมื่อใช้เพื่อสอบถามโฮสต์เดียว (โดเมน) โดยไม่มีอาร์กิวเมนต์เพิ่มเติมคำสั่ง dig นั้นค่อนข้างสมบูรณ์

ในตัวอย่างต่อไปนี้เราจะทำการสืบค้นเพื่อดึงข้อมูลเกี่ยวกับโดเมน linux.org

dig linux.org

ผลลัพธ์ควรมีลักษณะดังนี้:

ไปส่วนและอธิบายผลลัพธ์ของคำสั่ง dig :

  1. บรรทัดแรกของผลลัพธ์พิมพ์รุ่น dig ที่ติดตั้งและแบบสอบถามที่ถูกเรียกใช้ บรรทัดที่สองแสดงตัวเลือกทั่วไป (โดยค่าเริ่มต้นเฉพาะ cmd)

    ; <<>> DiG 9.13.3 <<>> linux.org;; global options: +cmd

    ส่วนแรกรวมถึงรายละเอียดทางเทคนิคเกี่ยวกับคำตอบที่ได้รับจากหน่วยงานที่ร้องขอ (เซิร์ฟเวอร์ DNS) ส่วนหัวจะแสดง opcode (การกระทำที่ดำเนินการโดยขุด) และสถานะของการกระทำ ในตัวอย่างนี้สถานะคือ NOERROR ซึ่งหมายความว่าหน่วยงานที่ร้องขอให้บริการแบบสอบถามโดยไม่มีปัญหาใด ๆ

    ;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

    ส่วนนี้สามารถลบออกได้โดยใช้ตัวเลือก +nocomments ซึ่งปิดการใช้งานส่วนหัวของส่วนอื่น ๆ

    ส่วนหลอก "OPT" จะแสดงตามค่าเริ่มต้นเฉพาะในยูทิลิตี้ขุดรุ่นใหม่กว่า คุณสามารถเกี่ยวกับกลไกการขยายสำหรับ DNS (EDNS) ได้ที่นี่

    ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096

    ในส่วน "คำถาม" dig แสดงแบบสอบถามของเรา (คำถาม) ตามค่าเริ่มต้น dig ขอบันทึก A

    ;; QUESTION SECTION:;linux.org. IN A

    คุณสามารถปิดการใช้งานส่วนนี้ได้โดยใช้ตัวเลือก +noquestion

    ส่วน“ คำตอบ” ให้คำตอบสำหรับคำถามของเรา ตามที่เราได้กล่าวไปแล้วโดยค่าเริ่มต้น dig จะขอบันทึก A ที่นี่โดเมน linux.org ชี้ไปที่ที่อยู่ IP 104.18.59.123

    ;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123

    โดยปกติแล้วคุณไม่ต้องการปิดคำตอบ แต่คุณสามารถลบส่วนนี้ออกจากผลลัพธ์โดยใช้ตัวเลือก +noanswer

    ส่วน "ผู้มีอำนาจ" จะบอกเราว่าเซิร์ฟเวอร์ใดที่มีอำนาจในการตอบแบบสอบถาม DNS เกี่ยวกับโดเมนที่สอบถาม

    ;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.

    คุณสามารถปิดใช้งานส่วนนี้ของผลลัพธ์ได้โดยใช้ตัวเลือก +noauthority

    ส่วน "เพิ่มเติม" ให้ข้อมูลเกี่ยวกับที่อยู่ IP ของเซิร์ฟเวอร์ DNS ที่เชื่อถือได้ที่แสดงในส่วนสิทธิ์

    ;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82

    ตัวเลือก +noadditional เพิ่มเติมปิดการใช้งานส่วนเพิ่มเติมของการตอบกลับ

    ส่วนสุดท้ายของการขุดเอาท์พุทรวมถึงสถิติเกี่ยวกับแบบสอบถาม

    ;; Query time: 58 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Fri Oct 12 11:46:46 CEST 2018;; MSG SIZE rcvd: 212

    คุณสามารถปิดการใช้งานส่วนนี้ด้วยตัวเลือก +nostats

การพิมพ์เฉพาะคำตอบ

ในกรณีส่วนใหญ่คุณต้องการรับคำตอบที่รวดเร็วสำหรับเคียวรีขุดของคุณ

1. รับคำตอบสั้น ๆ

หากต้องการรับคำตอบสั้น ๆ สำหรับการค้นหาของคุณให้ใช้ตัวเลือก +short :

dig linux.org +short

104.18.59.123 104.18.58.123

ผลลัพธ์จะรวมเฉพาะที่อยู่ IP ของระเบียน A

2. รับคำตอบโดยละเอียด

หากต้องการคำตอบโดยละเอียดให้ปิดผลลัพธ์ทั้งหมดโดยใช้ตัวเลือก +noall จากนั้นเปิดเฉพาะส่วนคำตอบด้วยตัวเลือก +answer

dig linux.org +noall +answer

; <<>> DiG 9.13.3 <<>> linux.org +noall +answer;; global options: +cmd linux.org. 67 IN A 104.18.58.123 linux.org. 67 IN A 104.18.59.123

เซิร์ฟเวอร์ชื่อเฉพาะแบบสอบถาม

โดยค่าเริ่มต้นหากไม่มีการระบุชื่อเซิร์ฟเวอร์ dig ใช้เซิร์ฟเวอร์ที่ระบุไว้ในไฟล์ /etc/resolv.conf

หากต้องการระบุเซิร์ฟเวอร์ชื่อที่จะใช้งานแบบสอบถามให้ใช้สัญลักษณ์ @ (at) ตามด้วยที่อยู่ IP ของเซิร์ฟเวอร์ชื่อหรือชื่อโฮสต์

ตัวอย่างเช่นหากต้องการค้นหาเซิร์ฟเวอร์ชื่อ Google (8.8.8.8) สำหรับข้อมูลเกี่ยวกับโดเมน linux.org คุณจะใช้:

dig linux.org @8.8.8.8

; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;linux.org. IN A;; ANSWER SECTION: linux.org. 299 IN A 104.18.58.123 linux.org. 299 IN A 104.18.59.123;; Query time: 54 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Fri Oct 12 14:28:01 CEST 2018;; MSG SIZE rcvd: 70

ค้นหาประเภทระเบียน

ขุดช่วยให้คุณสามารถดำเนินการแบบสอบถาม DNS ที่ถูกต้องโดยการผนวกประเภทบันทึกไปยังจุดสิ้นสุดของแบบสอบถาม ในส่วนต่อไปนี้เราจะแสดงตัวอย่างของวิธีการค้นหาระเบียนที่พบบ่อยที่สุดเช่น A (ที่อยู่ IP), CNAME (ชื่อตามบัญญัติชื่อ), TXT (บันทึกข้อความ), MX (แลกเปลี่ยนข้อความ), และ NS (เซิร์ฟเวอร์ชื่อ)

1. การสืบค้นระเบียน A

ในการรับรายการที่อยู่ทั้งหมดสำหรับชื่อโดเมนให้ใช้ตัวเลือก:

dig +nocmd google.com a +noall +answer

google.com. 128 IN A 216.58.206.206

ดังที่คุณทราบแล้วหากไม่มีการระบุประเภทระเบียน DNS ขุดจะขอบันทึก A นอกจากนี้คุณยังสามารถสืบค้นระเบียน A โดยไม่ต้องระบุตัวเลือก

2. การสืบค้นระเบียน CNAME

ในการค้นหาชื่อโดเมน alias ให้ใช้ตัวเลือก cname :

dig +nocmd mail.google.com cname +noall +answer

mail.google.com. 553482 IN CNAME googlemail.l.google.com.

3. การสืบค้นระเบียน TXT

ใช้ตัวเลือก txt เพื่อดึงข้อมูลระเบียน TXT ทั้งหมดสำหรับโดเมนที่ระบุ:

dig +nocmd google.com txt +noall +answer

google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"

4. การสืบค้นระเบียน MX

ในการรับรายการเซิร์ฟเวอร์เมลทั้งหมดสำหรับโดเมนที่ระบุให้ใช้ตัวเลือก mx :

dig +nocmd google.com mx +noall +answer

google.com. 494 IN MX 30 alt2.aspmx.l.google.com. google.com. 494 IN MX 10 aspmx.l.google.com. google.com. 494 IN MX 40 alt3.aspmx.l.google.com. google.com. 494 IN MX 50 alt4.aspmx.l.google.com. google.com. 494 IN MX 20 alt1.aspmx.l.google.com.

5. การสืบค้นระเบียน NS

ในการค้นหาเซิร์ฟเวอร์ชื่อที่เชื่อถือได้สำหรับโดเมนเฉพาะของเราให้ใช้ตัวเลือก ns :

dig +nocmd google.com ns +noall +answer

google.com. 84527 IN NS ns1.google.com. google.com. 84527 IN NS ns2.google.com. google.com. 84527 IN NS ns4.google.com. google.com. 84527 IN NS ns3.google.com.

6. การสืบค้นระเบียนทั้งหมด

ใช้ตัวเลือก any เพื่อรับรายการระเบียน DNS ทั้งหมดสำหรับโดเมนที่ระบุ:

dig +nocmd google.com any +noall +answer

google.com. 299 IN A 216.58.212.14 google.com. 299 IN AAAA 2a00:1450:4017:804::200e google.com. 21599 IN NS ns2.google.com. google.com. 21599 IN NS ns1.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" google.com. 21599 IN CAA 0 issue "pki.goog" google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60

ย้อนกลับการค้นหา DNS

ในการสอบถามชื่อโฮสต์ที่เกี่ยวข้องกับที่อยู่ IP ที่เฉพาะเจาะจงให้ใช้ตัวเลือก -x

ตัวอย่างเช่นในการค้นหาแบบย้อนกลับใน 208.118.235.148 คุณจะใช้:

dig -x 208.118.235.148 +noall +answer

ดังที่คุณเห็นได้จากผลลัพธ์ด้านล่างที่อยู่ IP 208.118.235.148 เชื่อมโยงกับชื่อโฮสต์ wildebeest.gnu.org

; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer;; global options: +cmd 148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.

คำค้นหาจำนวนมาก

ในตัวอย่างต่อไปนี้เรากำลังสอบถามโดเมนที่อยู่ในไฟล์ domains.txt

domains.txt

lxer.com linuxtoday.com tuxmachines.org

dig -f domains.txt +short

108.166.170.171 70.42.23.121 204.68.122.43

ไฟล์. digrc

พฤติกรรมของคำสั่ง dig สามารถควบคุมได้โดยการตั้งค่าตัวเลือกต่อผู้ใช้ในไฟล์ ${HOME}/.digrc

หากไฟล์. .digrc แสดงอยู่ในโฮมไดเร็กทอรีของผู้ใช้ตัวเลือกที่ระบุไว้จะถูกนำไปใช้ก่อนอาร์กิวเมนต์บรรทัดคำสั่ง

ตัวอย่างเช่นหากคุณต้องการแสดงเฉพาะส่วนคำตอบให้เปิดโปรแกรมแก้ไขข้อความและสร้างไฟล์ ~/.digrc ต่อไปนี้:

~ /.digrc

+nocmd +noall +answer

ข้อสรุป

dig เป็นเครื่องมือบรรทัดคำสั่งสำหรับการสอบถามข้อมูล DNS และการแก้ไขปัญหาที่เกี่ยวข้องกับ DNS

เทอร์มินัลขุด