Lệnh dig: truy vấn DNS trên Linux và cách đọc kết quả +short, +trace

Môi trường thử nghiệmHọ RHELAlmaLinux 9.8dig 9.16Tài khoản rootDebian 12 · dig 9.18 tài khoản thườngKiểm tra ngày 2026-11-04
Lệnh mạngdigVị trí/usr/bin/dig

Khi muốn kiểm tra bản ghi DNS của một tên miền đến tận phần đầu phản hồi của máy chủ DNS, hãy dùng lệnh dig. Khi truy vấn bản ghi của example.com theo từng loại trên máy chủ AlmaLinux 9 và Debian 12 và đổi máy chủ DNS được hỏi, chúng tôi thấy chỉ cần status và flags trong phần đầu phản hồi là phân biệt được trường hợp tên không tồn tại, trường hợp máy chủ DNS không đưa ra được câu trả lời, và trường hợp máy chủ quản lý bản ghi trả lời trực tiếp.

Kết quả bên dưới được chạy trên máy chủ AlmaLinux 9.8 (tài khoản root) và máy chủ Debian 12 (tài khoản thường). Địa chỉ máy chủ DNS được cài trên máy chủ đã được thay bằng giá trị ví dụ 192.0.2.53, và số phiên bản dig cũng được thay bằng giá trị ví dụ.

1️⃣ Cách dùng lệnh dig

  • ↪️ Đọc kết quả mặc định

Dạng cơ bản là [dig @máy-chủ tên loại], có thể bỏ máy chủ và loại. Theo tài liệu chính thức, nếu không ghi máy chủ thì dig hỏi máy chủ DNS được cài trong /etc/resolv.conf, còn nếu không ghi loại thì dig truy vấn bản ghi A.

dig example.com
; <<>> DiG 9.16.20-RH <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62441
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		62	IN	A	104.20.23.154
example.com.		62	IN	A	172.66.147.243

;; Query time: 1 msec
;; SERVER: 192.0.2.53#53(192.0.2.53)
;; WHEN: Thu Oct 29 00:09:18 UTC 2026
;; MSG SIZE  rcvd: 72

Dòng bắt đầu bằng dấu chấm phẩy là dòng chú thích, còn dòng không có dấu chấm phẩy là bản ghi thực sự nhận được. Nội dung cần xem ở từng phần như bên dưới.

Đầu raNội dung kiểm tra
; <<>> DiG 9.16.20-RH <<>> example.comPhiên bản dig đã chạy và đối số đã nhập
->>HEADER<<- … status: NOERROR, id: 62441Mã phản hồi (status) và số truy vấn (id)
flags: qr rd raCờ trong phần đầu phản hồi — máy chủ trả lời có truy vấn đệ quy hay không, và có phải máy chủ quản lý bản ghi hay không
QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1Số bản ghi trong từng phần
OPT PSEUDOSECTION · EDNS … udp: 4096Thông tin mở rộng EDNS và kích thước phản hồi (byte) có thể nhận qua UDP
QUESTION SECTIONCâu hỏi đã gửi — tên, lớp (IN), loại bản ghi
ANSWER SECTIONBản ghi đã nhận — tên, TTL (giây), lớp, loại và giá trị theo thứ tự
Query time: 1 msecThời gian đến khi nhận được phản hồi
SERVER: 192.0.2.53#53(192.0.2.53)Địa chỉ và số cổng của máy chủ DNS đã trả lời
WHEN · MSG SIZE rcvd: 72Thời điểm truy vấn và kích thước phản hồi nhận được (byte)

Trong dòng flags, qr nghĩa là phản hồi, rd là yêu cầu truy vấn đệ quy, ra là hỗ trợ truy vấn đệ quy (RFC 1035). Vì có ra mà không có aa, phản hồi này do một máy chủ DNS thực hiện truy vấn đệ quy gửi, không phải máy chủ quản lý bản ghi.

Số 62 trong phần ANSWER là TTL, tức thời gian còn lại (giây) mà bản ghi này được giữ trong bộ nhớ đệm. Hỏi ngay cùng tên đó với 8.8.8.8 thì ra 300, nên con số khác nhau tùy thời điểm mỗi máy chủ DNS lưu vào bộ nhớ đệm.

Nếu thực hiện cùng truy vấn bằng Lệnh nslookup thì mã phản hồi và TTL không hiện trong kết quả mặc định. Những điểm khác nhau giữa kết quả của hai lệnh như bên dưới.

So sánhdignslookup
Mã phản hồiLuôn hiện ở status trên dòng HEADERChỉ hiện khi lỗi, dưới dạng dòng server can't find
TTLHiện ở mỗi dòng bản ghi của ANSWERChỉ hiện khi thêm -debug
Máy chủ DNS đã trả lờiDòng SERVER ở cuốiCác dòng Server · Address ở đầu
Mã thoát khi NXDOMAIN01

Kiểm tra phiên bản dig đã cài bằng -v. Máy chủ AlmaLinux 9 là 9.16, máy chủ Debian 12 là 9.18.

dig -v
DiG 9.16.20-RH

2️⃣ Truy vấn bản ghi bằng dig

  • ↪️ A, AAAA, MX, NS, TXT, CNAME, SOA

Nếu ghi loại bản ghi sau tên, dig chỉ truy vấn bản ghi đó. Giá trị mỗi loại chứa và kết quả truy vấn trong bài này như bên dưới.

LoạiGiá trị chứaKết quả truy vấn
Ađịa chỉ IPv4example.com → 104.20.23.154 và 1 bản ghi khác
AAAAĐịa chỉ IPv6example.com → 2606:4700:10::6814:179a và 1 bản ghi khác
MXMáy chủ thư và mức ưu tiênexample.com → 0 . (không nhận thư)
NSMáy chủ tên quản lý bản ghiexample.com → hera · elliott.ns.cloudflare.com.
TXTGiá trị văn bản không có định dạng cố định (SPF, v.v.)example.com → v=spf1 -all và 1 bản ghi khác
CNAMEBí danh của một tên khácwww.github.com → github.com.
SOAMáy chủ tên chính của vùng và các giá trị thời gianexample.com → elliott.ns.cloudflare.com. …
PTRTên gắn với địa chỉ IP (ngược)-x 8.8.8.8 → dns.google.

Máy chủ thư được kiểm tra bằng bản ghi MX. Khi truy vấn MX của example.com, phần ANSWER hiện đúng một dòng [0 .].

dig example.com MX
; <<>> DiG 9.16.20-RH <<>> example.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34433
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.			IN	MX

;; ANSWER SECTION:
example.com.		300	IN	MX	0 .

;; Query time: 5 msec
;; SERVER: 192.0.2.53#53(192.0.2.53)
;; WHEN: Thu Oct 29 00:09:23 UTC 2026
;; MSG SIZE  rcvd: 55

0 là mức ưu tiên, còn MX chỉ có một dấu chấm ở vị trí tên máy chủ thư là Null MX, cho biết tên miền này không nhận thư (RFC 7505). Ghi loại bằng chữ thường mx cũng cho cùng kết quả.

Để chỉ xem các dòng bản ghi, hãy thêm [+noall +answer]. Theo tài liệu chính thức, +noall tắt mọi phần của kết quả, còn +answer bật lại riêng phần ANSWER.

dig example.com NS +noall +answer
example.com.		12192	IN	NS	hera.ns.cloudflare.com.
example.com.		12192	IN	NS	elliott.ns.cloudflare.com.

example.com có hai máy chủ tên. Hai máy chủ này là máy chủ tên có thẩm quyền trực tiếp quản lý bản ghi của example.com.

dig example.com TXT +noall +answer
example.com.		300	IN	TXT	"v=spf1 -all"
example.com.		300	IN	TXT	"_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"

Bản ghi TXT có thể chứa giá trị văn bản không theo định dạng cố định. v=spf1 -all là giá trị SPF cho biết không có máy chủ nào được gửi thư bằng tên miền này.

dig www.github.com CNAME +noall +answer
www.github.com.		291	IN	CNAME	github.com.

www.github.com là bí danh (CNAME) của github.com. Khi truy vấn cùng tên mà không ghi loại, bản ghi A của github.com hiện tiếp ngay sau dòng CNAME.

Với +multiline, bản ghi SOA có chú thích tên và thời gian cạnh từng con số nên dễ đọc hơn.

dig example.com SOA +multiline +noall +answer
example.com.		1765 IN	SOA elliott.ns.cloudflare.com. dns.cloudflare.com. (
				2418004112 ; serial
				10000      ; refresh (2 hours 46 minutes 40 seconds)
				2400       ; retry (40 minutes)
				604800     ; expire (1 week)
				1800       ; minimum (30 minutes)
				)

serial là số thứ tự tăng lên mỗi lần sửa bản ghi, còn refresh, retry và expire là các giá trị thời gian mà máy chủ tên phụ dùng để đồng bộ bản ghi với máy chủ chính. minimum là thời gian giữ trong bộ nhớ đệm phản hồi về tên hoặc bản ghi không tồn tại.

Khi chỉ cần giá trị, hãy thêm +short. Bản ghi A chỉ còn địa chỉ IP, còn MX chỉ còn mức ưu tiên và tên máy chủ thư.

dig +short example.com
172.66.147.243
104.20.23.154
dig google.com MX +short
10 smtp.google.com.

Thêm +stats sau [+noall +answer] thì thời gian truy vấn và dòng của máy chủ đã trả lời cũng hiện ra. Với dig 9.18 trên máy chủ Debian 12, cuối dòng SERVER có thêm cách gửi truy vấn (UDP); dig 9.16 trên máy chủ AlmaLinux 9 không có ghi chú này.

dig example.com +noall +answer +stats
example.com.		235	IN	A	172.66.147.243
example.com.		235	IN	A	104.20.23.154
;; Query time: 0 msec
;; SERVER: 192.0.2.53#53(192.0.2.53) (UDP)
;; WHEN: Thu Oct 29 00:10:26 UTC 2026
;; MSG SIZE  rcvd: 72

3️⃣ Chỉ định máy chủ DNS trong dig và truy vấn ngược

  • ↪️ @máy-chủ, aa, -x

Nếu ghi @ và máy chủ DNS trước tên, dig sẽ hỏi máy chủ đó thay cho máy chủ DNS được cài trên máy chủ. Khi hỏi 8.8.8.8, dòng SERVER đổi thành 8.8.8.8 và flags có thêm ad.

dig @8.8.8.8 example.com
; <<>> DiG 9.16.20-RH <<>> @8.8.8.8 example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61431
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		300	IN	A	104.20.23.154
example.com.		300	IN	A	172.66.147.243

;; Query time: 30 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Oct 29 00:09:29 UTC 2026
;; MSG SIZE  rcvd: 72

ad là cờ cho biết máy chủ trả lời đã xác minh chữ ký DNSSEC và đánh giá bản ghi trong phản hồi là đáng tin (RFC 4035). Phản hồi của máy chủ DNS được cài trên máy chủ không có ad.

Nếu ghi máy chủ tên lấy từ truy vấn NS vào sau @, bạn sẽ hỏi thẳng máy chủ quản lý bản ghi của example.com.

dig @elliott.ns.cloudflare.com example.com
; <<>> DiG 9.16.20-RH <<>> @elliott.ns.cloudflare.com example.com
; (6 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61828
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		300	IN	A	172.66.147.243
example.com.		300	IN	A	104.20.23.154

;; Query time: 4 msec
;; SERVER: 2606:4700:58::a29f:2ce4#53(2606:4700:58::a29f:2ce4)
;; WHEN: Thu Oct 29 00:09:29 UTC 2026
;; MSG SIZE  rcvd: 72

Lần này flags có aa, xác nhận máy chủ tên có thẩm quyền đã trả lời trực tiếp. Máy chủ này không hỗ trợ truy vấn đệ quy, tức tìm tên qua các máy chủ khác, nên ra bị bỏ và dòng [WARNING: recursion requested but not available] được thêm vào.

(6 servers found) nghĩa là tên máy chủ tên được phân giải ra ba địa chỉ IPv4 và ba địa chỉ IPv6. Dòng SERVER hiện địa chỉ IPv6 trong số đó đã gửi câu trả lời.

Nếu ghi địa chỉ IP sau -x, dig truy vấn bản ghi PTR để tìm tên gắn với địa chỉ đó.

dig -x 8.8.8.8 +noall +answer
8.8.8.8.in-addr.arpa.	300	IN	PTR	dns.google.

dig đã truy vấn tên được tạo bằng cách viết ngược 8.8.8.8 rồi thêm in-addr.arpa, và giá trị PTR nhận được, dns.google., là tên của 8.8.8.8.

4️⃣ Đường ủy quyền của dig +trace

  • ↪️ Từ máy chủ tên gốc đến máy chủ tên của example.com

Với +trace, dig hỏi lần lượt từ máy chủ tên gốc và in ra từng bước tên được chuyển giao cho máy chủ nào. Theo tài liệu chính thức, +trace cũng yêu cầu các dòng chữ ký DNSSEC, nên đã thêm +nodnssec để chỉ xem đường ủy quyền.

dig +trace +nodnssec example.com
; <<>> DiG 9.16.20-RH <<>> +trace +nodnssec example.com
;; global options: +cmd
.			86333	IN	NS	j.root-servers.net.
.			86333	IN	NS	g.root-servers.net.
.			86333	IN	NS	b.root-servers.net.
.			86333	IN	NS	e.root-servers.net.
.			86333	IN	NS	k.root-servers.net.
.			86333	IN	NS	f.root-servers.net.
.			86333	IN	NS	l.root-servers.net.
.			86333	IN	NS	m.root-servers.net.
.			86333	IN	NS	h.root-servers.net.
.			86333	IN	NS	c.root-servers.net.
.			86333	IN	NS	d.root-servers.net.
.			86333	IN	NS	a.root-servers.net.
.			86333	IN	NS	i.root-servers.net.
;; Received 239 bytes from 192.0.2.53#53(192.0.2.53) in 1 ms

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
;; Received 836 bytes from 2001:7fd::1#53(k.root-servers.net) in 30 ms

example.com.		172800	IN	NS	hera.ns.cloudflare.com.
example.com.		172800	IN	NS	elliott.ns.cloudflare.com.
;; Received 359 bytes from 2001:503:d414::30#53(f.gtld-servers.net) in 66 ms

example.com.		300	IN	A	104.20.23.154
example.com.		300	IN	A	172.66.147.243
;; Received 72 bytes from 108.162.195.228#53(elliott.ns.cloudflare.com) in 3 ms

Ở mỗi bước, dòng [Received … from] cuối cùng cho biết máy chủ đã gửi phản hồi đó. Máy chủ được hỏi ở bốn bước và những gì nhận được như bên dưới.

MứcMáy chủ được hỏiNhận được
1Máy chủ DNS được cài trên máy chủ (192.0.2.53)13 máy chủ tên gốc (.)
2k.root-servers.net13 máy chủ tên .com (gtld-servers.net)
3f.gtld-servers.net2 máy chủ tên của example.com
4elliott.ns.cloudflare.com2 bản ghi A của example.com

Kết quả +trace giống như lịch sử tra cứu bưu phẩm bảo đảm.

Bản ghi A ở bước cuối do máy chủ tên của example.com gửi trực tiếp nên là giá trị hiện tại, không qua bộ nhớ đệm. Ngay sau khi đổi máy chủ tên, hãy kiểm tra trước ở bước 3 xem máy chủ .com đã trả về máy chủ tên mới chưa.

5️⃣ Lỗi phản hồi và tùy chọn của dig

  • ↪️ NXDOMAIN, SERVFAIL, connection timed out

🔲 Lỗi phản hồi

Khi truy vấn một tên không tồn tại, status hiện NXDOMAIN. .invalid là tên miền cấp cao nhất được dành riêng để không bao giờ dùng thật, nên được dùng để kiểm tra phản hồi này.

dig example.invalid
; <<>> DiG 9.16.20-RH <<>> example.invalid
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 23779
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.invalid.		IN	A

;; AUTHORITY SECTION:
invalid.		10800	IN	SOA	localhost. nobody.invalid. 1 3600 1200 604800 10800

;; Query time: 1 msec
;; SERVER: 192.0.2.53#53(192.0.2.53)
;; WHEN: Thu Oct 29 00:09:33 UTC 2026
;; MSG SIZE  rcvd: 96

ANSWER bằng 0, và phần AUTHORITY chứa bản ghi SOA của vùng đó. Số cuối của SOA là 10800, là thời gian (giây) phản hồi này được giữ trong bộ nhớ đệm.

no-such-host.example.com kết thúc với status NOERROR và ANSWER 0 thay vì NXDOMAIN. Đây là phản hồi không có mã lỗi mà chỉ trống bản ghi, nên hãy kiểm tra status cùng với số ANSWER.

dig no-such-host.example.com
; <<>> DiG 9.16.20-RH <<>> no-such-host.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31671
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;no-such-host.example.com.	IN	A

;; AUTHORITY SECTION:
example.com.		1800	IN	SOA	elliott.ns.cloudflare.com. dns.cloudflare.com. 2418004112 10000 2400 604800 1800

;; Query time: 7 msec
;; SERVER: 192.0.2.53#53(192.0.2.53)
;; WHEN: Thu Oct 29 00:09:33 UTC 2026
;; MSG SIZE  rcvd: 115

SERVFAIL là mã phản hồi cho biết máy chủ DNS không tạo được câu trả lời (RFC 1035). Khi hỏi 8.8.8.8 về dnssec-failed.org, một tên miền công khai để thử lỗi xác thực DNSSEC, kết quả là SERVFAIL kèm dòng EDE.

dig @8.8.8.8 dnssec-failed.org
; <<>> DiG 9.16.20-RH <<>> @8.8.8.8 dnssec-failed.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 57521
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; EDE: 9 (DNSKEY Missing): (No DNSKEY matches DS RRs of dnssec-failed.org)
;; QUESTION SECTION:
;dnssec-failed.org.		IN	A

;; Query time: 333 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Oct 29 00:09:41 UTC 2026
;; MSG SIZE  rcvd: 97

EDE là mã lỗi mở rộng cho biết thêm lý do lỗi (RFC 8914). 9 (DNSKEY Missing) nghĩa là không tìm thấy DNSKEY khớp với bản ghi DS của vùng cấp trên, và 8.8.8.8 trả về SERVFAIL thay vì địa chỉ cho tên mà nó không xác minh được chữ ký.

Nếu máy chủ DNS không trả lời, kết quả kết thúc bằng [connection timed out; no servers could be reached] mà không có dòng status. Khi hỏi 192.0.2.1, địa chỉ dành cho ví dụ trong tài liệu, với [+timeout=2 +tries=1], dòng này hiện sau 2 giây.

dig @192.0.2.1 example.com +timeout=2 +tries=1
; <<>> DiG 9.16.20-RH <<>> @192.0.2.1 example.com +timeout=2 +tries=1
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

Hỏi cùng địa chỉ mà không có tùy chọn thì dòng đó hiện sau 15 giây. Lý do là giá trị mặc định trong tài liệu chính thức là 5 giây cho mỗi phản hồi và 3 lần thử. Với dig 9.18 trên máy chủ Debian 12, dòng [communications error to 192.0.2.1#53: timed out] hiện trước, và dòng cuối là [no servers could be reached].

Khi script phân loại kết quả theo mã thoát, cần lưu ý NXDOMAIN cũng cho 0. Truy vấn example.invalid với +short rồi in mã thoát thì được 0 cùng kết quả rỗng, còn truy vấn 192.0.2.1 không có phản hồi thì được 9.

dig +short example.invalid; echo $?
0

Với từng lỗi phản hồi, dòng cần xem trong kết quả và điều cần kiểm tra tiếp theo như bên dưới.

Đầu raÝ nghĩaViệc cần kiểm tra tiếp
status: NXDOMAINTên đó không tồn tạiChính tả và trạng thái đăng ký của tên miền, đường ủy quyền bằng +trace
status: NOERROR · ANSWER: 0Không có bản ghi loại đó trong phản hồiLoại bản ghi và cài đặt bản ghi của máy chủ tên
status: SERVFAILMáy chủ DNS không tạo được câu trả lờiDòng EDE, phản hồi từ máy chủ DNS khác (@8.8.8.8 · @1.1.1.1)
connection timed outMáy chủ DNS không trả lờiĐịa chỉ máy chủ DNS và tường lửa chặn cổng 53

🔲 Tùy chọn của lệnh dig

📌 Tùy chọn chính: kết quả chạy trong bài này

Tùy chọnChức năngKết quả trong bài này
@máy-chủHỏi máy chủ được chỉ định thay cho máy chủ DNS được cài trên máy chủVới @8.8.8.8, dòng SERVER đổi thành 8.8.8.8 và flags có thêm ad; hỏi máy chủ tên có thẩm quyền thì có aa
LoạiChỉ truy vấn loại bản ghi ghi sau tênexample.com MX cho một dòng [0 .]; mx chữ thường cũng cùng kết quả
-x địa-chỉTruy vấn bản ghi PTR của địa chỉ IP-x 8.8.8.8 cho dns.google.
-vIn phiên bảnMáy chủ AlmaLinux 9 là 9.16, máy chủ Debian 12 là 9.18
-rKhông đọc .digrc trong thư mục homeDù .digrc có +short, thêm -r thì các dòng bản ghi vẫn hiện đầy đủ
+shortChỉ in giá trị của bản ghiA cho hai địa chỉ IP; google.com MX cho 10 smtp.google.com.
+noall +answerTắt mọi phần của kết quả rồi bật lại riêng ANSWERexample.com NS chỉ còn hai dòng máy chủ tên
+multilineChia bản ghi dài như SOA thành nhiều dòng kèm chú thíchTên và thời gian như serial, refresh được ghi chú cạnh từng con số
+statsIn thêm thời gian truy vấn và dòng của máy chủ đã trả lờiVới dig 9.18 trên máy chủ Debian 12, (UDP) ở cuối dòng SERVER
+traceHỏi lần lượt từ máy chủ tên gốc và in đường ủy quyềnỞ mỗi bước trong bốn bước, dòng [Received … from] cuối cùng cho biết máy chủ đã trả lời
+nodnssecKhông yêu cầu bản ghi chữ ký DNSSECDùng cùng +trace để chỉ giữ lại đường ủy quyền
+timeout=giâyThời gian chờ mỗi phản hồi, mặc định 5 giâyHỏi 192.0.2.1 với +timeout=2 +tries=1 thì [connection timed out] sau 2 giây; không có tùy chọn thì 15 giây
+tries=số-lầnSố lần gửi truy vấn, mặc định 3Đặt 1 cùng với +timeout=2 thì chỉ hỏi một lần và kết thúc sau 2 giây
+tcpGửi truy vấn qua TCP thay vì UDPVới dig 9.18 trên máy chủ Debian 12, cuối dòng SERVER đổi từ (UDP) sang (TCP), bản ghi vẫn như cũ

📎 Tùy chọn khác: theo tài liệu hướng dẫn chính thức

Tùy chọnChức năng
-4Chỉ truy vấn qua IPv4
-6Chỉ truy vấn qua IPv6
-t loạiChỉ định loại bản ghi cần truy vấn
-q tênChỉ định tên cần truy vấn, dùng khi không muốn nhầm với đối số khác
-p cổngTruy vấn qua cổng được chỉ định thay cho cổng 53
-b địa-chỉChỉ định địa chỉ IP nguồn dùng để gửi truy vấn
-f tệpChạy lần lượt các truy vấn được ghi mỗi dòng một truy vấn trong tệp
+norecurseTruy vấn với yêu cầu đệ quy (RD) bị tắt
+dnssecYêu cầu thêm bản ghi DNSSEC
+nssearchTìm các máy chủ tên có thẩm quyền và in bản ghi SOA mà mỗi máy chủ có
+nocmdIn kết quả không kèm dòng phiên bản và dòng chú thích tùy chọn ở đầu
+nocommentsIn kết quả không kèm dòng chú thích như phần đầu phản hồi và tên các phần
+ttlunitsIn TTL theo đơn vị s, m, h, d, w
+retry=số-lầnSố lần gửi lại không tính truy vấn đầu tiên, mặc định 2

🔲 Trình mô phỏng lệnh dig

Trong trình mô phỏng bên dưới, bạn có thể tự nhập dig và đổi loại bản ghi, máy chủ DNS và tùy chọn kết quả.

Trình mô phỏng lệnh digdig 9.16
[root@server work]#
Chỉ chạy trong trình duyệt của bạn; phản hồi lấy từ DNS ảo chứa giá trị truy vấn thực tế, và ↑↓ gọi lại các lệnh đã nhập trước đó.

🔢 FAQ & nội dung đề xuất

Trên hai máy chủ đã kiểm tra, dig nằm trong gói bind-utils của AlmaLinux 9 và gói bind9-dnsutils của Debian 12. Vì vậy, dòng RHEL cài bằng [sudo dnf install bind-utils], dòng Debian cài bằng [sudo apt install bind9-dnsutils]. Cả hai gói đều cài kèm nslookup.

Theo tài liệu chính thức, dig đọc các tùy chọn ghi trong tệp .digrc ở thư mục home và áp dụng trước các đối số dòng lệnh. Khi ghi một dòng +short vào .digrc rồi chạy [dig example.com], chỉ có địa chỉ IP hiện ra; thêm -r thì .digrc không được đọc nên các dòng bản ghi hiện đầy đủ.

Thêm +tcp thì truy vấn được gửi qua TCP. Với dig 9.18 trên máy chủ Debian 12, khi thêm +tcp, cuối dòng SERVER đổi từ (UDP) sang (TCP), và bản ghi nhận được vẫn như cũ.

ℹ️ Thông báo tiếp thị liên kết
Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Prove your humanity: 4   +   5   =