https://www.tcpdump.org/manpages/tcpdump.1.html
https://www.cnblogs.com/chenpingzhao/p/9108570.html
https://blog.csdn.net/chinaltx/article/details/87469933
常用选项:
-i :指定网卡,就是要抓哪个网卡的包
-c:指定抓取报文数量,抓到这么多包后,tcpdump就会停止;
-w:保存抓取的报文到文件
-r:读取保存的报文
-A:以ascii码形式显示报文内容
-X:以十六进制和ascii码形式显示报文内容
-v:
-vv:
-vvv:这三个输出的详细信息递增。
-e:输出数据链路层的头部信息 ;
-s:抓取每个分组中最开始的n个字节,而不是默认的262144字节。-s 0表示抓取报文完整内容。
-n:不把地址(例如IP地址,端口号)等转换为对应的名字
-nn:感觉和-n差不多,官网上没有说-nn
-t:不输出时间戳
-l:将tcpdump的输出变为“行缓冲”方式,可以确保tcpdump一旦遇到换行符,就立即将缓冲的内容输出到标准输出,便于利用管道或重定向的方式进行后续处理。
-A -X对比
默认:
使用-A选项:
使用-X选项:
-v、-vv、-vvv:
-e:输出数据链路层的头部信息
第一句是一个提示信息,告诉你使用-v或者-vv选项查看更详细的信息。
第二句表示要抓的包的最大长度为262144字节,超过这个长度,只抓这么长的。
-t选项:
-l:选项
tcpdump -i ens33 -l | awk '{print $1}'
这个-l选项感觉不好使,没有一行一行输出呀。
简单的过滤:
1. 根据IP过滤
host表示主机
源IP:src host ip_addr
目的IP:dst host ip_addr
IP:host ip_addr
2.根据网段过滤
dst net addr src net addr net addr
3. 根据协议过滤
4. 根据端口过滤
src port portnumber dst port portnumber port portnumber
5. 更多高级过滤方法以后用到再记。
我 这个报文长度怎么只有40?
-X 16进制查看,类似wireshark显示结果。
-A ascii码形式查看,
抓包筛选器:
抓包时要加过滤条件的话,直接在后面跟着写就可以了。
显示筛选器:
-n:不对ip地址进行解析成域名
根据源IP,目的IP,端口号进行筛选。
根据TCP报文头内容进行筛选,上面的例子就是筛选ACK,PSH为1的TCP报文。tcp[13]=24表示tcp头部第14个字节值为24,对应ACK,PSH位为1,表示tcp内容报文,去掉了,TCP建立时候的交互报文。记得使用单引号''括起来,不是反引号``括起来。