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個字節