tcpdump

参数

抓包参数

-c 指定抓包的数量
-i 指定抓取的接口,默认为第一个网络接口
-n 不做主机名解析
-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"

输出参数

-e: 输出的每行包括源和目的mac地址
-q: 简短打印
-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v:当分析和打印的时候,产生详细的输出
-vv:产生比-v更详细的输出。
-vvv:产生比-vv更详细的输出

其他功能参数

-D 列出可用于抓包的接口
-w:将抓包数据输出到文件中而不是标准输出
-r:从给定的数据包文件中读取数据,使用"-"表示从标准输入中读取

表达式

表达式是一个正则表达式,tcpdump利用它作为报文的过滤条件,满足该条件的才会被捕获
格式:proto dir type
类型type选项包含:host net port
方向dir包含:src dst
协议proto选项包含:ip、arp、rarp、tcp、udp、icmp等

高级使用

AND: and or &&
OR: or or ||
except: not or !

格式

tcpdump [协议类型] [源或目标] [主机名称或IP] [or/and/not/!条件组合] [源或目标] [主机名或IP] [or/and/not/!条件组合] [端口] [端口号]

常用例子

捕获所有流量

tcpdump -i any

捕获指定网卡的流量

tcpdump -i eth0

使用源和目的过滤

tcpdump src {source ip}
tcpdump dst {dest ip}
tcpdump host 192.168.1.100 //无论源或目的都可以

过滤某个子网的数据包

tcpdump net 1.2.3.0/24

过滤指定端口相关的流量

tcpdump port {port}
tcpdump src port {port} -> 只显示发出
tcpdump portrange 22-125

过滤指定协议的流量

tcpdump tcp

基于包大小过滤流量

tcpdump less 32
tcpdump grater 64
tcpdump <=128

使用端口范围过滤

tcpdump portrange 21-23

捕获主机A,B之间的报文

tcpdump -i any tcp port xxx and host A and B

过滤TCP flag

过滤SYN
tcpdump -c 2 net 193.0.0.0/8 and "tcp[13] & 2 != 0"

过滤ACK
tcpdump -c 2 net 193.0.0.0/8 and "tcp[13] & 16!=0"

过滤RST
tcpdump "tcp[13] & 4!=0"

过滤FIN
tcpdump "tcp[13] & 1!=0"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容