嵌入式linux开发,抓包工具tcpdump使用方法

一、常用使用命令

1、指定网卡,并存储抓取到的数据流到文件中

tcpdump -i eth1 -s 0 -w xxx.cap

2、指定网卡,抓取指定IP的数据流

tcpdump -i eth1 src host 198.168.1.201 -s 0 -A
tcpdump -i eth1 dst host 198.168.1.201 -s 0 -A

3、指定网卡,抓取指定port的数据流

tcpdump -i eth1 port 9000 -s 0 -A

二、输出内容

21:27:09.603094 IP 198.168.1.25.33272 > 198.168.1.201.9000: Flags [P.], seq 3782589804:3782589860, ack 3035993594, win 29200, length 56

1、输出内容格式

  1. 第一列:时分秒毫秒 21:27:09.603094
  2. 第二列:网络协议 IP
  3. 第三列:发送方的ip地址+端口号,其中198.168.1.25是 ip,而33272是端口号
  4. 第四列:箭头 >, 表示数据流向
  5. 第五列:接收方的ip地址+端口号,其中198.168.1.201是 ip,而9000是端口号
  6. 第六列:冒号
  7. 第七列:数据包内容,包括Flags 标识符,seq 号,ack 号,win 窗口,数据长度 length,其中 [P.] 表示 PUSH 标志位为 1

2、Flags 标识符

TCP 报文 Flags标识符如下

    [S] : SYN(开始连接) [P] : PSH(推送数据) [F] : FIN (结束连接) [R] : RST(重置连接) [.] : 没有 Flag (意思是除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG)

三、参数

man tcpdump

四、Windows下抓包工具Wireshark

下载:

参考 

经验分享 程序员 微信小程序 职场和发展