tcpdump 命令
tcpdump:一个可以根据需求来抓取网络上传输的数据包的工具
参数/选项的说明
-i tcpdump -i eth0 指定网络接口 eth0 eth33等网卡 any 表示所有接口,不指定的话一般读取第一个网卡
-nn tcpdumo -nn 不解析IP地址和端口号的名称
-c tcpdump -c 10 限制抓取的网络包个数
-w tcpdump -w /home/file.pcap 保存XX目录到文件中 后缀名通常是 .pcap
使用/过滤表达式
host tcpdump -nn host 192.168.56.102 过滤掉主机
port , src port ,dst port tcpdump -nn port 3306 端口过滤
ip, ip6, arp, tcp, udp, icmp tcpdump -nn tcp 192.168.56.102 协议过滤
and ,or , not tcpdump -nn host 192.168.56.102 and port 3306 逻辑表达式
tcp[tcoflages] tcpdump -nn "tcp[tcpflages]&tcp-syn!=0" 特定状态下的tcp包
实例1
-i tcpdump -i eth0 抓取eth0口的双向数据包
host tcpdump -i eth0 host 192.168.56.102 抓取eth0接口,192.168.56.102收发的包
and tcpdump -i eth0 host 192.168.56.102 and 192.168.56.103 抓取192.168.56.102和192.168.56.103收发的包
src tcpdump -i eth0 src host 192.168.56.102 监视所有192.168.56.102发出的数据包
dst tcpdump -i eth0 dst host 192.168.56.102 and esp -nn 抓取发送到192.168.56.102的ESP数据包
-c tcpdump -i eth0 host 192.168.56.102 and tcp port 3306 -c 10 抓取192.168.56.102发送和接收的80端口的10个包
net tcpdump -i eth0 net 192.168.56.0/24 抓取网络地址是192.168.56.0/24的发送和接收的数据包
icmp tcpdump –i eth0 host 192.168.56.102 and icmp –c 10 抓取192.168.56.102的ping包10个
port tcpdump -i eth0 port 80 and host www.hao123.com or www.baidu.com 抓取发送到主机hao123或者百度的80端口的包
-w tcpdump -i eth0 host 192.168.56.102 -s 0 -c 20 –nnv -w /root/1.cap 抓取主机192.168.56.102发送或者接收的ICMP数据包详细信息,数量是20个,并保存到root下,文件名是1.cap
tcpdump -r /root/1.cap 读取1.cap包内容
实例2
1、抓取主机网卡名为enp0s3的192.168.56.102的3306端口
#tcpdump -i enp0s3 tcp and port 3306 and host 192.168.56.102
解析:
-i enp0s3 表示抓取 enp0s3 网口的数据包
tcp 表示抓取 tcp 协议
port 表示端口(因为已经使用了tcp,需要用and连接起来)
host 表示过滤主机,抓取对应IP的数据包(因为已经使用了prot,需要用and连接起来)
时间戳 协议 源地址.源端口 > 目的地址.目的端口 网络包详情信息(没有参数-nn,会解析ip为主机名)
2、抓取主机网卡名为enp0s3的192.168.56.102的3306端口
#tcpdump -i enp0s3 tcp and port 3306 and host 192.168.56.102 -nn
解析:
-i enp0s3 表示抓取 enp0s3 网口的数据包
tcp 表示抓取 tcp 协议
port 表示端口(因为已经使用了tcp,需要用and连接起来)
host 表示过滤主机,抓取对应IP的数据包(因为已经使用了prot,需要用and连接起来
-nn 表示不解析 IP地址和端口号名称