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

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

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

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 在这里起着至关重要的作用,它已成为分析网络流量的行业标准。

相关推荐

探索Java项目中日志系统最佳实践:从入门到精通

探索Java项目中日志系统最佳实践:从入门到精通在现代软件开发中,日志系统如同一位默默无闻却至关重要的管家,它记录了程序运行中的各种事件,为我们排查问题、监控性能和优化系统提供了宝贵的依据。在Java...

用了这么多年的java日志框架,你真的弄懂了吗?

在项目开发过程中,有一个必不可少的环节就是记录日志,相信只要是个程序员都用过,可是咱们自问下,用了这么多年的日志框架,你确定自己真弄懂了日志框架的来龙去脉嘛?下面笔者就详细聊聊java中常用日志框架的...

物理老师教你学Java语言(中篇)(物理专业学编程)

第四章物质的基本结构——类与对象...

一文搞定!Spring Boot3 定时任务操作全攻略

各位互联网大厂的后端开发小伙伴们,在使用SpringBoot3开发项目时,你是否遇到过定时任务实现的难题呢?比如任务调度时间不准确,代码报错却找不到方向,是不是特别头疼?如今,随着互联网业务规模...

你还不懂java的日志系统吗 ?(java的日志类)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

谈谈枚举的新用法--java(java枚举的作用与好处)

问题的由来前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了!事情是这样的,做过游戏的都知道,buff,需要分类型,且...

你还不懂java的日志系统吗(javaw 日志)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

Java 8之后的那些新特性(三):Java System Logger

去年12月份log4j日志框架的一个漏洞,给Java整个行业造成了非常大的影响。这个事情也顺带把log4j这个日志框架推到了争议的最前线。在Java领域,log4j可能相对比较流行。而在log4j之外...

Java开发中的日志管理:让程序“开口说话”

Java开发中的日志管理:让程序“开口说话”日志是程序员的朋友,也是程序的“嘴巴”。它能让程序在运行过程中“开口说话”,告诉我们它的状态、行为以及遇到的问题。在Java开发中,良好的日志管理不仅能帮助...

吊打面试官(十二)--Java语言中ArrayList类一文全掌握

导读...

OS X 效率启动器 Alfred 详解与使用技巧

问:为什么要在Mac上使用效率启动器类应用?答:在非特殊专业用户的环境下,(每天)用户一般可以在系统中进行上百次操作,可以是点击,也可以是拖拽,但这些只是过程,而我们的真正目的是想获得结果,也就是...

Java中 高级的异常处理(java中异常处理的两种方式)

介绍异常处理是软件开发的一个关键方面,尤其是在Java中,这种语言以其稳健性和平台独立性而闻名。正确的异常处理不仅可以防止应用程序崩溃,还有助于调试并向用户提供有意义的反馈。...

【性能调优】全方位教你定位慢SQL,方法介绍下!

1.使用数据库自带工具...

全面了解mysql锁机制(InnoDB)与问题排查

MySQL/InnoDB的加锁,一直是一个常见的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?下面是不同锁等级的区别表级锁:开销小,加锁快;不会出现死锁;锁定粒度...

看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

一、什么是死锁加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获...