Mergecap 和 Tshark:合并数据包转储并分析网络流量
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
- 点赞
- 收藏
- 关注作者
评论(0)