tcpdump命令的控制分4个部分
控制tcpdump行为
-c 控制抓取报文的个数
-p 非混杂模式
-s 限制报文长度,0 为不限制
-w 保存抓取的报文到指定路径
-r 从pcap报文读取报文
控制输出信息如何显示
-a 网络地址显示为名称
-n 网络地址显示为IP点分格式地址
-N 不要域名转换
-f 不要远端名称解析
显示哪些数据
-v 打印ttl
-vv 显示详细信息
-q 显示更少信息
-x 报文以十六进制显示
过滤条件
命令行上的条件以 and / or 来组合,也可以 -F 来指定 条件文件来过滤
地址
host 1.2.3.4 / dst(src) 1.2.3.4
net 192.168.1.2.0 mask 255.255.255.0
ip协议
ip proto proto可以是关键字或数字,定义在/etc/protocols , 如 ip ospf 等于 ip 89
端口、3层以上协议
port 关键字/数字 定义在 /etc/services ,如 port 53 等于 port domain
报文特征字段
ether[0]&1 !=0
tcp[0:2] == 1234
报文长度
greater / less
tcpdump greater 256 捕获报文长度大于256字节的报文
一些应用
循环抓包
tcpdump -i eth* -s 0 -C 1024 -W 100 -w /home/loop_cap.pcap -Z root 每个pcap报文1G大小,循环在eth*上抓100个这样的报文