在日常系统维护中,遇到需要抓包的需求,下面对linux环境使用tcpdump命令进行抓包进行分析记录。tcpdump命令可用抓取流动在网卡上的数据包。
1、tcpdump常用参数说明
- -c : 抓包次数,达到指定次数后停止抓包
- -C : 文件大小,写入文件前判断文件是否超过了设置的大小,超过了则关闭当前文件,开启新文件
- -i : 指定监听的网络接口
- -nn : 不进行端口名称的转换
- -r : 从指定文件中读取包
- -s : 设置每个数据包的大小
- -t : 在输出的每一行不打印时间戳
- vv : 输出详细的报文信息
- -w : 保存到指定文件中而不是打印出来,如tcpdump -w /tmp/test.pcap
2、tcpdump支持的过滤方式
过滤项 | 过滤项说明 | 示例 |
---|---|---|
host、src host、dst host | 过滤主机 | tcpdump host 192.168.11.11 |
port,src port,dst port | 过滤端口 | tcpdump port 9999 |
ip,ip6,arp,tcp,udp,icmp | 过滤协议 | tcpdump udp 192.168.11.11 |
and,or,not | 逻辑表达式 | tcpdump host 192.168.11.11 and port 9999 |
3、实例
- 从所有网卡获取数据包
tcpdump -i any - 获取指定网卡的数据包
tcpdump -i eth0 - 抓取包含指定ip的数据包
tcpdump host 192.168.11.11 - 获取指定网卡和地址的数据包,并写入文件
tcpdump -i eth0 host 192.168.11.11 -w testfile.cap - 指定:网卡、源IP、目的IP,并写入文件
tcpdump -i eth0 src host 192.168.11.21 and dst host 192.168.11.11 -w testfile.cap - 指定:网卡、源IP或目的IP、写入文件
tcpdump -i eth0 src host 192.168.11.21 0r dst host 192.168.11.11 -w testfile.cap - 指定:网卡、tcp端口、源IP、目的IP
tcpdump -i eth0 port 19999 and src host 192.168.11.21 and dst host 192.168.11.11 - 抓包显示详细信息
tcpdump -vv - 抓取udp包
tcpdump -i eth0 udp port 9999 - 抓取指定端口
tcpdump udp port 8801 -w /tmp/test.cap