如何使用 Wireshark Tshark 指定文件,时间,缓冲区捕获限制

网友投稿 2002 2022-05-29

本教程解释了使用 tshark 命令的一些实用和有用的场景。

您将了解如何将捕获自动保存到多个文件、根据时间限制自动保存捕获、指定您自己的捕获缓冲区大小、从捕获中提取特定字段以及从捕获中显示特定协议的统计信息。

1.自动保存捕获到多个文件

例如,在您的生产服务器上,您希望捕获较长时间的流量数据。您喜欢稍后使用这些捕获来分析数据。

在这种情况下,您可能希望根据您指定的大小将捕获自动分解为多个文件,而不是将所有输出存储在单个文件中。

以下示例将网络流量捕获到 20 个文件,每个文件的大小为 100 KB,然后捕获将自动停止。

# tshark -b filesize:100 -a files:20 -w temp.pcap Running as user "root" and group "root". This could be dangerous. Capturing on eth0 28 # ls -lrt total 12 -rw------- 1 root root 1088 Apr 10 16:02 capture_00001_20190410160213.pcap -rw------- 1 root root 1088 Apr 10 16:02 capture_00002_20190410160215.pcap

在上面:

-b 是环形缓冲区选项

filesize:100 表示输出捕获文件的最大大小为 100 KB

files:20 表示应创建的输出文件总数为 20

-a 表示自动停止

2. 基于时间限制的自动保存捕获

以下示例将捕获到多个文件的网络流量。但是,当文件大小达到 10240 KB 或经过 1 秒时,它将切换到新文件。您可以相应地使用自动停止条件。

# tshark -b filesize:10240 -b duration:1 -w temp.pcap Running as user "root" and group "root". This could be dangerous. Capturing on eth0 34 # ls -lrt -rw------- 1 root root 1863 Apr 10 16:13 temp_00001_20190410161312.pcap -rw------- 1 root root 1357 Apr 10 16:13 temp_00002_20190410161313.pcap -rw------- 1 root root 1476 Apr 10 16:13 temp_00003_20190410161314.pcap -rw------- 1 root root 1216 Apr 10 16:13 temp_00004_20190410161315.pcap

3. 指定捕获缓冲区大小

当您在捕获期间遇到数据包丢失时,此方案很有帮助。

在这些情况下,您可以使用 -B 选项以 MB 为单位指定捕获缓冲区大小。默认捕获大小为 1MB。

捕获驱动程序使用它来缓冲数据包数据,直到该数据可以写入磁盘。如果在捕获时遇到丢包,请尝试增加此大小。

# tshark -B 2 2. Running as user "root" and group "root". This could be dangerous. 3. Capturing on eth0 4. 0.000000 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.30.59.101? Tell 10.30.32.1 5. 0.064507 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.70.11.143? Tell 10.70.0.1 6. 0.067515 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.70.11.143? Tell 10.70.0.1 7. 0.089554 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.30.50.212? Tell 10.30.32.1 8. 0.183726 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.30.36.86? Tell 10.30.32.1

4. 使用“解码为”选项捕获

当您需要指定应如何剖析图层类型时,此方案很有用。

这与wireshark“解码为”选项相同,但有时指定的选择器值与数据包中存在的值不同。例如,假设一个diameter包的源和目的端口号都不同于3868(默认端口号),那么你需要指定这个值给tshark,以便它可以正确解析。

# tshark -r capture.pcap -d sctp.port==3869,diameter 82 212.059173 192.168.105.20 -> 192.168.105.30 DIAMETER 262 cmd=Capabilities-ExchangeRequest(257) flags=R--- appl=Diameter Common Messages(0) h2h=204a16 e2e=67700000 83 212.059330 192.168.105.30 -> 192.168.105.20 SCTP 62 SACK 84 212.078804 192.168.105.30 -> 192.168.105.20 DIAMETER 294 cmd=Capabilities-ExchangeAnswer(257) flags=---- appl=Diameter Common Messages(0) h2h=204a16 e2e=67700000 85 212.080569 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a29 e2e=63d00002 86 212.084960 192.168.105.20 -> 192.168.105.30 SCTP 62 SACK 87 212.084998 192.168.105.20 -> 192.168.105.30 DIAMETER 178 SACK cmd=Device-WatchdogAnswer(280) flags=---- appl=Diameter Common Messages(0) h2h=5542a29 e2e=63d00002 88 212.100324 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a2a e2e=63d00003 89 212.101629 192.168.105.20 -> 192.168.105.30 DIAMETER 178 SACK cmd=Device-WatchdogAnswer(280) flags=---- appl=Diameter Common Messages(0) h2h=5542a2a e2e=63d00003 90 212.110997 192.168.105.30 -> 192.168.105.20 SCTP 62 SACK 91 212.119855 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a2b e2e=63d00004

5. 提取特定字段

如何使用 Wireshark Tshark 指定文件,时间,缓冲区捕获限制

例如,当您喜欢从直径协议数据包中提取特定字段时,此方案很有帮助。

您已经知道如何使用tshark 命令为在非标准端口上运行的服务捕获数据。

目前 tshark 为少数协议集支持此选项。

您还可以使用 -V 选项并结合快速脚本或 grep 命令执行相同的操作。但是,对于非常大的文件,下面显示的方法更快。

# tshark -q -r capture.pcap -R diameter -z diameter,avp,257,Origin-Host Running as user "root" and group "root". This could be dangerous. frame='82' time='212.059176' src='192.168.105.20' srcport='35132' dst='192.168.105.30' dstport='3868' proto='diameter' msgnr='0' is_request='1' cmd='257' req_frame='82' ans_frame='0' resp_time='0.000000' Origin-Host='backend.eap.testbed.aaa' frame='84' time='212.078807' src='192.168.105.30' srcport='3868' dst='192.168.105.20' dstport='35132' proto='diameter' msgnr='0' is_request='0' cmd='257' req_frame='82' ans_frame='84' resp_time='0.019631' Origin-Host='gw.eap.testbed.aaa' frame='126' time='225.283773' src='192.168.105.40' srcport='2844' dst='192.168.105.30' dstport='3868' proto='diameter' msgnr='0' is_request='1' cmd='257' req_frame='126' ans_frame='0' resp_time='0.000000' Origin-Host='opendiam.eap.testbed.aaa' frame='130' time='225.295815' src='192.168.105.30' srcport='3868' dst='192.168.105.40' dstport='2844' proto='diameter' msgnr='0' is_request='0' cmd='257' req_frame='126' ans_frame='130' resp_time='0.012042' Origin-Host='gw.eap.testbed.aaa' === Diameter Summary === requset count: 2 answer count: 2 req/ans pairs: 2

6. 显示特定协议的统计信息

您还可以显示来自特定协议的捕获文件的统计信息。

例如,下面从捕获的 HTTP 协议文件中打印统计信息

# tshark -q -r a.pcap -R http -z http,tree Running as user "root" and group "root". This could be dangerous. =================================================================== HTTP/Packet Counter value rate percent ------------------------------------------------------------------- Total HTTP Packets 7 0.000375 HTTP Request Packets 4 0.000214 57.14% GET 4 0.000214 100.00% HTTP Response Packets 3 0.000161 42.86% 2xx: Success 2 0.000107 66.67% 200 OK 2 0.000107 100.00% 3xx: Redirection 1 0.000054 33.33% 302 Found 1 0.000054 100.00% 5xx: Server Error 0 0.000000 0.00% Other HTTP Packets 0 0.000000 0.00%

TCP/IP

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:linux内核对USB与串口驱动移植
下一篇:Kubernetes安全之KubeEye
相关文章