简介
在本次实验中,你将学习使用 Wireshark 的命令行工具 tshark
实时监控网络流量。你将练习在 eth1 接口上捕获数据包、配置实时统计更新,并使用 -i
和 --update-interval
等关键命令分析汇总输出。
通过实践练习,你将观察 TCP 握手过程、终止会话,并解读包括 IP 地址和协议在内的实时流量细节。本次实验将为你提供基本网络分析技术的实践经验。
在本次实验中,你将学习使用 Wireshark 的命令行工具 tshark
实时监控网络流量。你将练习在 eth1 接口上捕获数据包、配置实时统计更新,并使用 -i
和 --update-interval
等关键命令分析汇总输出。
通过实践练习,你将观察 TCP 握手过程、终止会话,并解读包括 IP 地址和协议在内的实时流量细节。本次实验将为你提供基本网络分析技术的实践经验。
在这一步中,你将学习如何使用 Wireshark 的命令行工具 tshark
在 eth1 接口上开始捕获网络数据包。这是进行网络流量分析的基本操作。
网络接口是计算机连接到网络的物理或虚拟节点。tshark 中的 -i
标志用于指定从哪个网络接口捕获数据包。在大多数 Linux 系统中,eth1
代表第一个以太网接口,通常是你的主要有线网络连接。在我们的 LabEx 虚拟机环境中,eth1
是连接到网络的默认以太网接口。
当你运行 tshark 而不使用任何过滤器时,它将捕获通过指定接口的所有网络流量,包括传入和传出的数据包。我们即将使用的命令将实时显示这些流量。
按照以下步骤开始捕获:
~/project
目录下)tshark -i eth1
此命令告诉 tshark 监听 eth1 接口,并在捕获到每个数据包时显示它。输出将实时显示每个网络数据包的详细信息。
当开始捕获数据包时,你应该会看到类似以下的输出:
Capturing on 'eth1'
1 0.000000000 192.168.1.100 → 192.168.1.1 TCP 74 55942 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=123456789 TSecr=0 WS=128
2 0.000123456 192.168.1.1 → 192.168.1.100 TCP 74 80 → 55942 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 SACK_PERM=1 TSval=987654321 TSecr=123456789 WS=128
每一行代表一个捕获到的数据包,显示了其时间戳、源和目标 IP 地址、协议类型(在本例中为 TCP)以及各种特定于协议的详细信息。第一个数据包显示了 TCP 连接的发起(SYN 标志),而第二个数据包显示了响应(SYN-ACK)。
要停止捕获,请在终端中按 Ctrl+C
。这将在返回命令提示符之前显示捕获数据包的摘要。摘要包括捕获和处理的数据包数量等统计信息。
在这一步中,我们将配置 tshark 以定期显示网络流量统计信息的更新。这种方法对初学者特别有帮助,因为它能提供清晰且易于管理的网络活动视图,而不会让你被不断出现的数据包细节所淹没。
--update-interval
参数控制 tshark 刷新显示的频率。该值以毫秒 (ms) 为单位指定,1000 ms 等于 1 秒。这意味着我们每秒将获得一次网络流量的快照,从而更易于观察模式和变化。
在开始之前,让我们先了解一下我们要做的事情:
以下是设置步骤:
cd ~/project
tshark -i eth1 --update-interval 1000
运行此命令后,你将看到类似以下的输出:
Capturing on 'eth1'
Packets: 15
Packets: 32
Packets: 47
关于输出的重要说明:
这种方法能让你清晰、定期地了解网络活动,当你刚开始学习网络监控并想观察流量模式而不被细节困扰时,这种方法尤其有用。
在这一步中,我们将探索如何使用 tshark 的摘要模式从宏观层面监控网络流量。当你想观察流量模式而又不想被单个数据包的细节所淹没时,这种方法特别有用。你可以把它想象成观察高速公路上的车流,而不是检查每一辆车。
-P
参数告诉 tshark 显示定期统计信息,而不是显示每个数据包。当它与 --update-interval
结合使用时,会创建一个类似仪表盘的视图,按照你指定的时间间隔刷新。当你只需要一个总体概览时,这种方法比滚动查看原始数据包数据要高效得多。
在开始之前,请确保你位于有权限捕获网络流量的正确工作目录中。我们将使用的命令是基于你在前面步骤中学到的内容:
tshark -i eth1 --update-interval 1000 -P
以下是每个部分的作用:
-i eth1
指定要监控的网络接口--update-interval 1000
将刷新速率设置为 1000 毫秒(1 秒)-P
启用定期统计信息显示模式运行该命令后,你将看到每秒更新一次的输出,显示三个关键指标:
Capturing on 'eth1'
Packets: 15 Avg. packet size: 342 bytes Packets/s: 5
Packets: 32 Avg. packet size: 356 bytes Packets/s: 8
Packets: 47 Avg. packet size: 378 bytes Packets/s: 7
这些指标告诉你:
这个视图对于发现网络活动中的突然流量高峰或异常模式特别有帮助。随着网络状况的变化,这些数字会动态改变,让你实时了解网络上正在发生的情况。
在这一步中,我们将学习如何安全地停止正在运行的 tshark 数据包捕获会话。作为初学者,你要明白,简单地关闭终端或突然终止进程可能会导致数据丢失。正确的方法是使用标准的 Linux 中断机制。
当你运行 tshark 时,它会持续监控网络流量并将数据写入内存。按下 Ctrl+C 会发送一个 SIGINT(信号中断),告知 tshark 执行以下操作:
以下是具体操作步骤:
-i eth1 --update-interval 1000 -P
)你会看到类似以下的输出:
^C
47 packets captured
^C 符号确认你按下了 Ctrl+C。数字显示了你在会话期间成功捕获的数据包数量。这个计数有助于在你停止捕获之前验证捕获操作是否按预期进行。
请记住,这种方法可以保留所有捕获的数据,并让你干净利落地退出,而强制退出可能会丢失停止时正在处理的数据包。
在本次实验中,你学习了如何使用 Wireshark 的命令行界面 Tshark 实时监控网络流量。关键技术包括使用 -i
在 eth1 上启动数据包捕获、通过 --update-interval
设置定期更新,以及使用 -P
显示实时数据包摘要。
这些练习让你亲身体验了捕获原始数据包、分析 TCP 握手以及跟踪实时流量统计信息。这些基础技能使你能够通过基于终端的数据包检查来高效地进行网络监控和故障排除。