Linux之tcpdump
参数详解
参数 | 含义 |
---|---|
-i | 指定tcpdump监听的网络接口 eth0 bond0等等 |
-c | 指定要监听的数据包数量,达到指定数量后自动停止抓包 |
-w | 指定将监听到的数据包写入文件中保存 |
-A | 指定将每个监听到的数据包以ACSII可见字符打印 |
-n | 指定将每个监听到数据包中的域名转换成IP地址后显示 |
-nn | 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示 |
-e | 指定将监听到的数据包链路层的信息打印出来,包括源mac和目的mac,以及网络层的协议 |
-p | 将网卡设置为非混杂模式,不能与host或broadcast一起使用 |
-r | 指定从某个文件中读取数据包 |
-S | 指定打印每个监听到的数据包的TCP绝对序列号而非相对序列号 |
-c | 抓的包个数 数字 |
-T | 强制tcpdump按type指定的协议所描述的包结构来分析收到的数据包.目前已知的type 可取的协议为:cnfp,tftp,rtcp等 |
-xx | 以16 进制数形式显示每一个报文(包含链路层报头) |
-X | 以16 进制数形式显示每一个报文(不包含链路层报头),同时显示ASCII码。 |
-XX | 以16 进制数形式显示每一个报文(包含链路层报头),同时显示ASCII码。 |
-s | 重定义截取报文大小,默认为96(或68),如果定义为0,则表示获取完整报文。该参数应尽量小,尤其在繁忙网络环境中。 |
-w | 将截取的报文输出到文件中。 |
-r | 从文件中读取报文。 |
-vvv | 用于输出详细的交互数据。 |
-Q | 指定从监听的接口(网卡)的入方向或出方向抓取报文。 |
用法
1.从eth0端口抓取ip为10.99.207.130的所有报文,并将报文的二层信息打印
tcpdump -i eth0 -ne host 10.99.207.130
2.从vswitch0抓取ip为10.99.207.130,且从vswitch0发送出去的报文,此条命令不会抓取vswitch0上收到的报文。
tcpdump -i vswitch0 host 10.99.207.130 -Q out
3.从vnet2抓取DHCP交互报文
tcpdump -i vnet2 -ne udp and port 67 and port 68
4.从eth0上抓取ping报文
tcpdump -i eth0 -ne icmp
5.从eth0上抓取源mac是60:da:83:0c:7f:e9的报文
tcpdump -i eth0 -ne ether src 60:da:83:0c:7f:e9
6.从eth0上抓取协议号是0x88cc的报文(LLDP)
tcpdump -i eth0 ether proto 0x88cc
7.从eth0抓取源ip 10.99.207.130和目的ip 10.99.190.54的报文。
tcpdump -i eth0 -ne src 10.99.207.130 and dst 10.99.190.54
8.从eth0抓取ip是10.99.190.53,端口是22(SSH)的报文
tcpdump -i eth0 -ne port 22 and host 10.99.190.53
9.从eth0抓取报文并保存在文件/home/eth0.pcap中
tcpdump -i eth0 -w /home/eth0.pcap
tcpdump -i eth0 -s 0 -c 100 host 192.168.113.251 -w ./myh1.cap
tcpdump -i eth0 -nn -XX tcp port 21
tcpdump -i eth0 -nn icmp
tcpdump -i bond0 -vnn icmp and host 192.140.131.2 and 192.140.131.3 -ne
抓取所有经过 eth0,目的或源地址是 10.37.63.255 的网络数据:
tcpdump -i eth0 host 10.37.63.255
抓取主机192.66.0.218发送的所有数据:
tcpdump -i eth0 src host 192.66.0.218
抓取主机192.66.0.218接收的所有数据:
tcpdump -i eth0 dst host 192.66.0.218
抓取主机10.37.63.255和主机10.37.63.61的通信:
tcpdump host 10.37.63.255 and 10.37.63.61
抓取主机10.37.63.3所有在TCP 80端口的数据包:
tcpdump -i eth0 host 10.37.63.3 and tcp port 80
将抓取结果保存在文件
tcpdump -A -i eth0 -w file1 host www.baidu.com
读取文件信息
tcpdump -r file1
获取主机135.252.33.186除了和主机135.252.142.150之外所有
主机通信的ip包,使用命令
tcpdump ip host 210.27.48.1 and ! 210.27.48.2
获取主机135.252.33.186接收或发出的telnet包
tcpdump tcp port 23 host 135.252.142.150
获取主机135.252.142.121端口5060上的所有数据包
tcpdump port 5060 and host 135.252.142.121
获取主机135.252.142.150所有udp数据报
tcpdump udp and host 135.252.142.150
or:
tcpdump ip proto \\udp and host 135.252.142.150
获取主机和135.252.142.150的源端口为5060, 目的端口为45413的数据报
tcpdump src port 5060 and dst port 45413 and host 135.252.142.150