tcpdump 抓包的一般步骤
1) 通过-i命令指定一个网卡 如:
tcpdump -i ens33
2) 过滤协议 协议类型如下
tcpdump -i ens33 arp
tcpdump -i ens33 ip
tcpdump -i ens33 tcp
tcpdump -i ens33 udp
tcpdump -i ens33 icmp
3) 过滤host与port
我们知道每一个数据都有一个四元组与之对应 [src host, src port] -> [dst host, dst port] 如:
tcpdump -i ens33 '((icmp) and (src host 192.168.0.146) and (dst host 192.168.0.1))'
# 运行此命令 通过ping网关192.168.0.1 就可以抓到包,ping是icmp报文
可以通过 非、且、或去拼过滤的条件
非: ! not
且: && and
或: || or
显示并分析抓包内容
通过-x显示包中的内容,-x默认显示的数据长度为68 可以-s 1024指定需要显示内容的长度
各协议的头部长度 (单位:字节)
tcp 20
udp 8
icmp 4
arp 8
ip 20
注意:抓取tcp udp icmp包的时候其数据包的包头都包含了ip的20个字节