tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ]
[ -Q|-P in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ]
-i 网卡设备
-w 写入管道,将抓包数据输出到文件中而不是标准输出,
- dst 抓取
port 端口号
-l 将标准输出转换为缓冲行形式
-s snaplen表示从一个包中截取的字节数。0表示包不截断,抓完整的数据包。默认的话 tcpdump 只显示部分数据包,默认68字节
-x 把协议头和包内容都原原本本的显示出来,会以16进制和ASCII两种方式同时输出
-nn 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取
-tttt 使时间戳格式更加可读
-c 在收到指定的包的数目后,tcpdump就会停止
-q:快速打印输出
tcpdump -i bond0 -s 0 -l -w - dst port 3306 | strings
tcpdump -s 65535 -x -nn -q -tttt -i any -c 5000 port 3306 > mysql.tcp.txt
pt-query-digest --type tcpdump mysql.tcp.txt