Linux 抓包工具tcpdump的使用

时间:2023-01-22 10:14:19

tcpdump输出格式:系统时间,源主机.端口>目的主机.端口,数据包参数

tcp数据包格式:

src > dst: flags data-seqno ack window urgent options

flags:flags 标志有S(SYN), F(FIN), P(PUSH, R(RST),W(ECN CWT)或者 E(ECN-Echo)组成,
单独一个'.'表示没有flags标识

data-seqno:序列号

ack:Ack 描述的是同一个连接,同一个方向,下一个本端应该接收的(对方应该发送的)数据片段的顺序号

Window:本端可用的数据接收缓冲区的大小,对方发送数据时需根据这个大小来组织数据

Urg(urgent): 表示数据包中有紧急的数据

options :描述了tcp的一些选项, 这些选项都用尖括号来表示(如 <mss 1024>)

src, dst 和 flags 这三个域总是会被显示. 其他域的显示与否依赖于tcp协议头里的信息.



tcpdump 提供or and  not连接词,| ,& !


抓取某个某个网卡:tcpdump -i eth1,默认tcpdump命令会抓取第一个网卡eth0的数据包

抓取进出某个ip的数据:tcpdump host ip

抓取两个主机通信的数据包:tcp dump host ip1 and ip2

抓取源ip数据包:tcpdump  src host  ip

抓取目的ip的数据包:tcpdump dst host ip

抓取特定协议的数据包:tcpdump  tcp 

抓取特定端口的数据包:tcpdump port 23

抓取特定子网的数据包:tcpdump net 192.168

-s :默认抓取68字节,-S抓取所有字节

-c n 抓取数据包的个数

-l 行缓冲,遇到换行即输出


tcpdump抓取的数据 定向文件中:tcpdump -w result.txt,可以结合wireshark对数据进行分析。

参考资料:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html