Mergecap 和 Tshark:合并数据包转储并分析网络流量

举报
Tiamo_T 发表于 2021/10/11 08:08:04 2021/10/11
【摘要】 Mergecap 是一个数据包转储组合工具,它将多个转储组合成一个转储文件。根据时间戳,数据包被有序地写入输出文件。默认情况下,输出文件以 libpcap 格式写入。但是,使用 mergecap 选项,我们可以生成各种不同格式的输出,包括wireshark 工具支持的格式。在wireshark 包中提供了mergecap。确保安装了wireshark/ethereal 包以使用mergeca...

Mergecap 是一个数据包转储组合工具,它将多个转储组合成一个转储文件。根据时间戳,数据包被有序地写入输出文件。默认情况下,输出文件以 libpcap 格式写入。但是,使用 mergecap 选项,我们可以生成各种不同格式的输出,包括wireshark 工具支持的格式。

在wireshark 包中提供了mergecap。确保安装了wireshark/ethereal 包以使用mergecap。

将两个转储文件合并为一个 output_dump 文件

合并 input_dump1 和 input_dump2 捕获文件并写入 output_dump 文件。

# mergecap -v input_dump1 input_dump2 -w output_dump

 

在本例中,input_dump2 包含在 input_dump1 之后捕获的数据包。output_dump 将在开头包含 intput_dump2 数据包,然后是 intput_dump1 数据包。

# mergecap input_dump1 input_dump2 -w output_dump -a

将输出转储文件打印到标准输出

合并两个网络转储文件并将输出打印到标准输出而不是写入文件。

# mergecap -v input1_dump input2_dump -w -

以特定封装格式打印输出文件

使用选项 -T,以所需的封装格式获取输出文件,如下所示。

# mergecap -v -T ether -w merge_cap capture1 capture2 capture3

3.合并一定长度的数据包

在本例中,output_dump 包含最大 100 字节长度的数据包。


# mergecap -v -s 100 dump1 dump2 dump3 -w output_dump

Tshark - 数据包捕获工具

Tshark 是一个强大的网络数据包捕获工具,可用于分析网络流量。它带有wireshark网络分析仪发行版。
 

连续捕获网络捕获

以下示例将连续捕获网络数据包 60 秒。捕获 60 秒后,它会自动停止。capture_out 包含在过去 60 秒内在网络中传输的数据包。

# tshark -q -w capture_out -a 持续时间:60

 
在下面的示例中,数据包将被打印在屏幕上,同时它将被写入输出文件。

# tshark -S -q -w capture_out -a duration:10

使用 tshark 捕获网络统计信息

要查看在特定时间间隔内有多少数据包在网络中流动,请使用以下命令。

# tshark -q -w capture_duration1 -a duration:1 -z io,stat,1

捕获特定主机的网络数据包

使用以下示例来捕获特定主机的数据包流(传输和接收的数据包)。在这个例子中,我们可以看到每秒有多少数据包在主机 192.168.1.185 的网络中传输

#  tshark -S -q -w capture_duration6 -a duration:6 -z io,stat,1,ip.addr==192.168.1.1
After capturing all the packets for 6 seconds duration, it will print the statistics as like the following,
145 packets dropped
19749 packets captured
IO Statistics
Interval: 1.000 secs
Column #0: ip.addr==192.168.1.2
|   Column #0
Time       	      |frames|  bytes
000.000-001.000    2733    545242
001.000-002.000    2991    583374
002.000-003.000    3310    650716
003.000-004.000    3236    641896
004.000-005.000    3518    690860
005.000-006.000    3310    654988
006.000-007.000     638    122812

捕获特定端口上的网络数据包

此示例仅捕获 ssh 数据包。

# tshark -f “tcp port 22” -w capture_out

捕获特定持续时间的网络数据包

下面的例子将捕获特定持续时间(5秒)的数据包,当捕获文件大小达到一定大小(1000KB)时切换到下一个文件。

# tshark -a filesize:1000 -a duration:5 -a files:5 -w ethcap1

带大小的示例输出捕获文件名:

ethcap1_00001_20200216174203 - 1000K
ethcap1_00002_20200216174205 - 1000K
ethcap1_00003_20200216174207 - 835K

其他 tshark 捕获命令

使用选项 -c,捕获达到特定数据包计数的数据包。以下示例仅使用 10 个数据包创建 ethcap1 文件。

# tshark -c 10 -w ethcap1

 

使用选项 -r 从压缩文件中读取网络数据包。

# tshark -r capture_dump.gz

 

使用选项 -r,仅显示特定的数据包类型。以下示例仅使用网络分析器中的 rtp 数据包创建文件 capture_dump。

# tshark -R “rtp” -r capture_dump

 

使用下面的过滤器来捕获在端口 1720 中流动的 tcp 数据包。

# tshark -f “tcp port 1720”

 
以下示例将捕获到达端口 1720 或 1721 的数据包。

# tshark -f  “port 1720 or port 1721”	 -w capture_dump

 

默认情况下,tshark 将使用 eth0 设备进行数据包捕获。您还可以使用选项 -i 指定特定的以太网适配器,如下所示。

# tshark -i eth1 -w -a duration:10 capture_dump
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。