tcpdump 命令

tcpdump:一个可以根据需求来抓取网络上传输的数据包的工具

 一般操作系统不会安装有,需要手动安装:yum -y install 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地址和端口号名称

 

 

posted @ 2023-02-06 11:54  leihongnu  阅读(310)  评论(0编辑  收藏  举报