1、抓取dns协议
使用“port domain”来过滤数据包,表示只抓取使用 domain(域名)服务的数据包,即 DNS 查询和应答报文
tcpdump -i eth0 -nt -s 500 port domain
另一个窗口使用 host 命令进行 DNS 查询
host -t A www.qq.com
IP 192.168.34.245.58724 > 183.60.83.19.domain: 57686+ A? www.qq.com. (28)
IP 183.60.83.19.domain > 192.168.34.245.58724: 57686 2/0/0 CNAME ins-r23tsuuf.ias.tencent-cloud.net., A 175.27.8.138 (92)
“>” 表示数据传输的方向
第一个数据包中,数值 57686 是 DNS 查询报文的标识值,因此该值也出现在 DNS 应答报文中。
“+” 表示启用递归查询标志。
“A?” 表示使用 A 类型的查询方式。
括号中的数值 28 是 DNS 查询报文的长度(以字节为单位)。
第二个数据包中,“2/0/0” 表示该报文中包含 2 个应答资源记录、0 个授权资源记录和 0 个额外信息记录。报文的长度为 92 字节。
tcpdump -i eth0 -nt -s 500 -X port domain -v -w dns-dump.pcap
使用 -X 选项,能看到 DNS 报文的每一个字节,是以 16 进制和 ASCII 方式打印,可以导入到 Wireshark 中查看。
2、抓取30012端口,host为 10.0.113.189 详细报文信息
tcpdump port 30012 and host 10.0.113.189 -nn -s0 -vv -X -w /tmp/tcp.cap