Skip to content

Latest commit

 

History

History
90 lines (49 loc) · 3.23 KB

13_how_to_capture_pcap_file_CN.md

File metadata and controls

90 lines (49 loc) · 3.23 KB

13 如何为rs_driver录制一个PCAP文件

13.1 使用WireShark抓包

13.1.1 选择网卡

打开WireShark的第一步,是选择在哪个网卡抓包。这里选择的网卡是enp0s3

  • 不要选择any,这样录制的PCAP文件,协议为linux cooked capture。这不是Ethernet格式,rs_driver不能识别。
  • 如果雷达支持VLAN,可以选择在物理网卡上还是在虚拟网卡上抓包。在前者抓包带VLAN层,在后者抓包则不带。

使用如下的网络工具,可以确定网卡的名字。

  • ipconfig - Windows平台
  • ifconfig - Linux平台

13.1.2 抓包

指定了网卡,就可以抓包了。

13.1.3 导出PCAP文件

13.1.3.1 过滤掉不要的包

导出PCAP文件时,你可能希望只保留MSOP/DIFOP Packet。指定过滤条件就可以了。

  • 这里指定了两个端口66997788进行过滤。

13.1.3.2 导出所有包

选择菜单File -> Export Specified Packets ... ,得到如下的对话框。

可以选择导出所有包。在上面的图中,Packet Range选项,选择All Packets,导出所有包。

  • 保存文件时,选择pcap格式,而不是pcapng格式,后者rs_driver还不支持。
  • Packet Range下有两列数字:CapturedDisplayed。这里保持Displayed就好了。
    • Captured是抓到的所有包,Displayed是根据前面的过滤条件过滤后的包。比如All packets这一栏,总共抓到24333个包,过滤后还有23879个包。
    • 如果选择Captured,则导出的PCAP文件是从所有包中提取;如果选择Displayed,则只从过滤后的包中提取。

13.1.3.3 导出指定范围内的包

如果包数太多,只想导出部分包,则可以指定导出的范围。

  • 下面的例子指定的范围是110000,这两个序号是在抓到的所有包中的序号,而实际导出的包数是9805个。

13.1.3.4 标记并导出特定包

有时候需要精确指定导出哪几个包。这时可以先通过右键菜单 Mark/Unmark Packet标记这几个包。

导出时,选择Marked packets only

13.1.3.5 标记并导出特定范围内的包

也可以先标记两个包,再导出它们两个之间的所有包。在导出时,选择First to last marked就可以。

13.2 使用tcpdump抓包

tcpdump是Unix/Linux下的抓包工具。

如下的命令在网卡eno1上抓包,保存到文件a.pcap,过滤条件是UDP协议,且目标端口为66997788。这里抓包30000个,对于一般问题的分析,这个包数够用了。

sudo tcpdump -i eno1 -w a.pcap -c 30000 'udp dst port 7788 or 6699'

使用网络工具ifconfig,可以确定网卡的名字。

不要使用选项-i any抓包。这个选项针对任意网卡抓包,协议为linux cooked capture。这不是Ethernet格式,rs_driver不能识别。

sudo tcpdump -i any