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

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

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

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

相关推荐

OKHttp原理解析(okhttp的作用)

Okhttp应该是Android目前非常流行的第三方网络库,尝试讲解他的使用以及原理分析,分成几个部分:...

快速教会你优雅的解决TCP客户端端口耗尽的问题

Hello,我是Henry,相信各位开发老爷在使用大并发网络连接的时候,可能都遇到过TCP客户端端口耗尽的问题,这是一个常见问题,以下是系统性的解决方案及技术细节:1.理解端口限制的本质...

这3个接口基础知识,产品经理需要知道

产品经理在工作中,避免不了要阅读接口文档,希望本文能够帮助大家更好的了解接口。接口,即客户端(浏览器)向服务器提交请求,服务器向客户端返回响应。本质就是数据的传输与接收。本文主要介绍接口相关的基础知识...

Java 11新特性对开发者的影响:让编程更高效、更自由

Java11新特性对开发者的影响:让编程更高效、更自由在这个瞬息万变的编程世界里,每一代Java的更新都承载着无数开发者对性能优化、生产力提升以及代码美感追求的期望。作为继Java8之后的首个长期...

干货-okHttp的优点-收藏了(okhttp的好处)

OkHttp相较于其它的实现有以下的优点.支持SPDY,允许连接同一主机的所有请求分享一个socket。如果SPDY不可用,会使用连接池减少请求延迟。使用GZIP压缩下载内容,且压缩操作对用...

如何在 Java 项目中集成 DeepSeek

一、使用官方SDK基础集成1.添加依赖(Maven)<dependency><groupId>com.deepseek</groupId>...

spring cloud gateway 性能优化思路

SpringCloudGateway是一个高性能的API网关,但在实际的生产环境中,可能会遇到一些性能瓶颈。以下是一些SpringCloudGateway的性能优化方面:调整线程池...

你对Android中的okHttp的使用真的了解吗

框架下载地址:https://github.com/square/okhttp今天给大家讲解下网络框架okhttp的使用,这个框架非常强大,很多框架都用它来加载网络资源,目前很多开发者还在用As...

京东大佬问我,Nginx并发连接如何设置?详细说明

京东大佬问我,Nginx并发连接如何设置?详细说明首先,我需要回忆一下Nginx的并发模型。Nginx是基于事件驱动的异步架构,所以它的并发处理能力和配置参数有很大关系。主要的参数应该包括worker...

如何实现一个连接池?一文带你深入浅出,彻底搞懂

-前言-【2w1h】是技术领域中一种非常有效的思考和学习方式,即What、Why和How;坚持【2w1h】,可以快速提升我们的深度思考能力。...

Golang 网络编程(golang 系统编程)

TCP网络编程存在的问题:拆包:对发送端来说应用程序写入的数据远大于socket缓冲区大小,不能一次性将这些数据发送到server端就会出现拆包的情况。通过网络传输的数据包最大是1500字节,当TCP...

Spring6|Spring Boot3有哪些HTTP客户端可以选择

个人博客:无奈何杨(wnhyang)个人语雀:wnhyang...

10. 常用标准库(标准库有哪些)

本章深入解析Go语言核心标准库的关键功能与生产级应用技巧,结合性能优化与安全实践,提供高效开发指南。10.1fmt/io/os10.1.1fmt高级格式化...

Nginx之连接池(nginx 长连接 连接复用)

我们知道Nginx利用连接池来增加它对资源的利用率。下面我们一起来看看Nginx是如何使用连接池的。从上一节模块开始已经慢慢会接触一些Nginx的源码部分来。每个worker进程都有一个独立的ngx...

开发者必备的Android开发资源之OkHttp

小编在这里给各位Android开发者介绍的资源包括工具、库和网站等。有效地利用它们,将有助于减轻我们的工作量,提高我们的工作效率。为什么需要一个HTTP库Android系统提供了两种HTTP通信类,H...