tcpdump 抓包工具的使用
tcpdump 的使用方法
因为我常用来抓TCP的http包,所以我肯定是不会记录全部的使用方式的,仅记录自己常用的命令。
安装
# centos 安装命令
yum install -y tcpdump
# Ubuntu & debian 安装命令
apt-get install -y tcpdump
参数
option | describe | example |
---|---|---|
-i xxx |
指定对哪张网卡进行抓包,抓全部网卡的包用 -i any |
tcpdump -i enth0 仅抓enth0网卡的包 |
dst xx.xx.xx.xx |
抓目的IP是xx.xx.xx.xx的包 | |
src xx.xx.xx.xx |
抓源IP是xx.xx.xx.xx的包 | |
dst port xxx |
抓目的端口是xxx的包 | tcpdump port 8080 仅抓8080端口的包 |
dst portrange xxx-yyy |
抓目的端口范围是是xxx到yyy的包 | |
src port xxx |
抓源端口是xxx的包 | |
src portrange xxx-yyy |
抓源端口范围是xxx到yyy的包 | |
src net xx.xx.xx.xx/y |
抓源地址处于某个网段的包,y代表子网掩码位数 | |
dst net xx.xx.xx.xx/y |
抓目的地址处于某个网段的包,y代表子网掩码位数(这种命令工作中我一般用不上) | |
-w xxx.pcap |
将抓包内容写入文件 | tcpdump -w aaa.pcap |
src xx.xx.xx.xx |
抓目的IP是xx.xx.xx.xx的包 | |
dst xx.xx.xx.xx |
抓源IP是xx.xx.xx.xx的包 | |
-nn |
不进行域名解析,只显示数字形式的 IP 地址和端口号 | |
-X |
以十六进制(hex)和ASCII码的形式显示每个数据包的内容(对于分析http包很有用) | |
-t |
不输出抓包时间 | |
-tt |
将抓包时间以时间戳形势显示 | |
-ttt |
不显示抓包时间,显示本次抓包与上次抓包的时间间隔(毫秒级) | |
-tttt |
以yyyy-MM-dd HH:mm:ss:ms 格式显示抓包时间(最直观,推荐使用) | |
-c x |
抓取到x个包后,tcpdump自动停止抓包 | |
and |
条件连接符——与 | |
or |
条件连接符——或 |
格式【我抓包的格式】
tcpdump -i 网卡名 网络协议 抓包条件组合 -nnX -tttt
例
# 抓全部网卡的源IP是192.166.78.33,源端口是8088的包1000个,并将抓包内容写入get.pcap文件
tcpdump -i any tcp src port 8088 and src 192.168.78.33 -tttt -c 1000-w get.pcap
# 抓网卡enth0处理的源IP是192.166.78.33或192.166.78.32的包共1000个,并将抓包内容写入get.pcap文件
tcpdump -i enth0 tcp src 192.166.78.33 or src 192.166.67.32 -tttt -w get.pcap
# 抓本机发给192.166.78.33的包,并将抓包内容写入get.pcap文件
tcpdump -i any tcp dst 192.168.78.33 -tttt -w get.pcap
# 抓网卡enth0处理的192.168.78.0/24网段内所有发进来的包,并将抓包内容写入get.pcap文件
tcpdump -i any tcp dst net 192.168.78.0/24 -tttt -w get.pcap
⚠️ 提醒
如果使用过wireshark这款软件的开发者,可以把Linux上抓包的文件取到本地,用它打开读取,十分方便
本文来自博客园,作者:勤匠,转载请注明原文链接:https://www.cnblogs.com/JarryShu/articles/18274530