快速上手tcpdump进行网络抓包分析
简介
tcpdump是Linux中强大的网络数据采集分析工具之一。mannal手册的简介:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具,支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句进行筛选过滤。
基本使用
不指定任何参数,将抓取所有的包
tcpdump
监听特定的网卡:
tcpdump -i eth0
监听特定的主机:
tcpdump host hostname --源和目的为该ip的都监听
tcpdump src host hostname --来源是指定主机
tcpdump dst host hostname --目标是指定主机
监听特定的端口:
tcpdump port 80
tcpdump src port 443
tcpdump dst port 443
设置监听的端口范围:
tcpdump src portrange 40000-50000
指定网段抓包:
tcpdump src net 192.168.50.0/24
抓取指定协议的数据包:tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
tcpdump ip
tcpdump ip6
tcpdump tcp
tcpdump icmp
查看tcpdump的输出
Flags [ ]:Flags代表了这个数据包的用途。
Flags | 标识 |
---|---|
[S] | SYN同步标识 |
[.] | .表示ACK确认标识 |
[S.] | SYN同步标识,以及确认[S]的ACK |
[P.] | PSH,push推送,数据传输 |
[R.] | RST,连接重置 |
[F.] | FIN结束连接 |
抓取实例
抓icmp包:
tcpdump icmp
抓取所有ACK包:
tcpdump 'tcp[13] & 16!=0'
tcpdump+wireshark
通常来说,常用tcpdump抓包,然后再把数据包用wireshark分析(wireshark的可视化分析起来比较方便)
将tcpdump查询结果保存成文件:
命令参数-w
tcp -w filename.pcap
将文件导出到windows:
sz test.pcap
用wireshark打开分析: