百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

如何使用Wireshark捕获和分析网络数据包?

csdh11 2025-03-02 16:51 3 浏览

Wireshark(前身为 Ethereal)是一款用于网络协议分析器的 FOSS(免费和开源软件)。可以使用它来解决网络问题,分析 TCP、DNS、HTTP 等通信协议。

有许多功能使 Wireshark 与许多同类产品不同:

  • 实时数据包捕获和离线分析。
  • 人类可读格式的数据包详细信息。
  • 数据包的着色规则。

在本指南中,我们将学习“如何使用 Wireshark 捕获和分析数据包”,我们使用 Kali Linux 作为本指南的基本操作系统,让我们现在开始吧。

使用 Wireshark 抓包

启动 Wireshark 后,您将看到要从中捕获数据包的设备列表。

通过双击设备名称来选择设备以开始捕获数据包,让我们在本例中选择接口“eth01”,正如您在选择设备后看到的那样,屏幕上开始出现一些数据包。

在混杂模式下,Wireshark 还会显示发往我们网络接口的数据包以外的数据包,此模式默认启用,否则您可以转到“捕获 > 选项”并标记“在所有接口上启用混杂模式” 复选框(在窗口底部)。

要停止捕获流量,请点击窗口左上角的红色方形图标。如果您想稍后检查您的捕获,您可以通过单击“文件 > 保存”来保存它们,同样,您可以下载捕获文件并通过单击“文件 > 打开”打开它们进行检查。找到您的文件并打开它。

Wireshark 的颜色编码

Wireshark 使用不同的配色方案来表示不同类型的流量,例如,浅蓝色用于 UDP,紫色用于 TCP,黑色用于错误数据包,要查看含义并修改这些颜色,请转到“查看 > 着色规则”。

使用 Wireshark 进行数据包过滤

Wireshark 具有过滤功能,可以过滤掉您感兴趣的特定流量,使用此功能的最简单方法是使用位于数据包列表顶部的搜索栏或描述流量摘要的表格,如下所示。例如,如果您想过滤“TCP”流量,请在搜索栏中输入 TCP,我们将在本教程后面看到这个过程。

Wireshark 还在“分析 > 显示过滤器”部分中包含默认过滤器,您可以从此处选择一个,也可以在此处保存您的自定义过滤器以供将来使用。

除了过滤流量,您还可以查看客户端和服务器之间的完整 TCP 对话。为此,右键单击一个数据包并点击“Follow > TCP Stream”选项,当您关闭此窗口时,过滤器搜索栏中将自动出现一个过滤器。

使用 Wireshark 进行数据包检查

在描述流量摘要的表中,单击数据包以查看其各种详细信息,这是创建自定义过滤器的另一种方法。当您右键单击任何详细信息时,您将看到“应用为过滤器”选项及其子菜单。选择任何子菜单以创建该过滤器:

Wireshark 试用

现在让我们举一个实际示例,使用 Wireshark 捕获和检查网络接口上的流量。在我们的例子中,我们在 Kali Linux 上安装了 Wireshark,并与以太网接口“eth0”进行交互。现在执行以下步骤:

  1. 启动Wireshark后,从开始页面的设备列表中选择接口,单击左上角的蓝色图标或双击接口名称开始捕获。
  2. 现在启动网络浏览器并打开一个网页,如“ www.howtoforge.com ”。加载页面后,按开始按钮附近的红色图标停止捕获。
  3. 捕获窗口现在包含从您的系统传输到您的系统的所有数据包,不同类型的交通以不同的颜色代码显示,如蓝色、黑色、浅黄色等。
  1. 如果您正在寻找特定协议(如 TCP)的数据包,请使用过滤栏过滤这些连接。在使用网络访问并因此与外部网络交换数据包的系统上运行着许多后台进程,我们可以使用 Wireshark 的过滤功能过滤发往我们系统的数据包。例如,要过滤发往我们系统的 TCP 数据包,请使用过滤器:
ip.dst == 'your_system_ip' && tcp

将标签“your_system_ip”替换为您的系统 IP,在我们的例子中,它是 192.168.18.161,现在让我们查看这些数据包的内容,右键单击任何数据包,然后从选项列表中转到:'Follow -> Follow TCP Stream'。新窗口应类似于下图所示的窗口:

如果您无法使用 Wireshark 进行实时网络连接,您也可以使用下载的数据包跟踪文件。

结论

Wireshark 是一个非常重要的工具,用于分析网络中正在发生的事情,它得到了政府机构、商业组织和教育机构等各种IT部门的广泛认可,在解决网络问题时,数据包检查是非常关键的一步,而 Wireshark 在这里起着至关重要的作用,它已成为分析网络流量的行业标准。

相关推荐

万字硬核解析!RocketMQ集群环境搭建

一、RocketMQ集群架构通过之前安装单台RocketMQ,并演示了消息的收发,已经基本了解了RocketMQ是怎么样工作的,下面就来搭建一个集群...

推荐一款单机10W+的可用即时通讯工具

今天给大家推荐一款单机10W+的可用即时通讯工具,她就是:courier-信使。她是一款简洁轻量的即时通讯工具。?展示截图...

tar、gzip、zip、jar是什么,怎么查看?

...

建议收藏!深入理解Java虚拟机:JVM垃圾回收算法+垃圾收集器

02JVM垃圾回收算法2.1什么是垃圾回收?...

Spring boot——Actuator 详解

一、什么是ActuatorSpringBootActuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助我们监控和管理SpringBoot应用。...

JVM 参数调优

时至今日,生产环境中依旧是JDK8占据主流,因此,本文将围绕JDK8常用的CMS和G1进行相关参数的讲解。...

Java开发工程师进阶篇- 扫盲Java中的各种锁,你学会了吗?

-Java中锁的概念...

Linux入门手册

Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的性能稳定的操作系统,可免费使用并自由传播。Linux是众多操作系统之一,目前流行的服务器和PC端操作系统有Li...

java:Cassandra入门与实战——下

Cassandra入门与实战——上...

带你来搭建虚拟机和Redis集群,记得收藏

来源于公众号Java爱好者社区,作者东升的思考1、前言我们看到分析Redis使用或原理的文章不少,但是完整搭建一套独立的Redis集群环境的介绍,并不是很多或者说还不够详细。那么,本文会手把...

做开发这么久了,还不会搭建服务器Maven私有仓库?这也太Low了吧

大家好,我是冰河~~...

JDK 17 之 JVM调优 史诗级 教程

JDK17之JVM调优史诗级教程文章目录...

带你认识JDK8中超nice的Native Memory Tracking

本文分享自华为云社区《NativeMemoryTracking详解(1):基础介绍》,作者:毕昇小助手。0.引言我们经常会好奇,我启动了一个JVM,他到底会占据多大的内存?他的内存都消耗在哪...

JVM 堆外内存泄漏排查

现象:operation服务持续内存增长不释放导致超过80%阈值告警,通过观察内存不会下降,而且占用内存为14G超过了jvm参数-Xmx10G的限制...

Spring Boot整合MybatisPlus和Druid

在Java中,我比较ORM...