tcpdump -i any port 8100 -s 0 -w test.pcap
tcpdump -i any host 192.168.1.1 -s 0 -w test.pcap
(一)、学习tcpdump的5个参数 初次使用tcpdump时,使用tcpdump -h命令可以看到它有数十个参数。
❶-i参数。使用-i参数指定需要抓包的网卡。如果未指定的话,tcpdump会根据搜索到的系统中状态为UP的最小数字的网卡确定,一般情况下是eth0。使用-i参数通过指定需要抓包的网卡,可以有效的减少抓取到的数据包的数量,增加抓包的针对性,便于后续的分析工作。
❷-nnn参数。使用-nnn参数禁用tcpdump展示时把IP、端口等转换为域名、端口对应的知名服务名称。这样看起来更加清晰。
❸-s参数。使用-s参数,指定抓包的包大小。使用-s 0指定数据包大小为262144字节,可以使得抓到的数据包不被截断,完整反映数据包的内容。
❹-c参数。使用-c参数,指定抓包的数量。
❺-w参数。使用-w参数指定抓包文件保存到文件,以便后续使用Wireshark等工具进行分析。
(二)、学习tcpdump的过滤器 tcpdump提供了丰富的过滤器,以支持抓包时的精细化控制,达到减少无效信息干扰的效果。我们常用的过滤器规则有下面几个: ❶host a.b.c.d:指定仅抓取本机和某主机a.b.c.d的数据通信。
❷tcp port x:指定仅抓取TCP协议目的端口或者源端口为x的数据通信。
❸icmp:指定仅抓取ICMP协议的数据通信。
❹!:反向匹配,例如port ! 22,抓取非22端口的数据通信。 以上几种过滤器规则,可以使用and或者or进行组合,例如: host a.b.c.d and tcp port x:则只抓取本机和某主机a.b.c.d之间基于TCP的目的端口或者源端口为x的数据通信。 tcp port x or icmp:则抓取TCP协议目的端口或者源端口为x的数据通信或者ICMP协议的数据通信。