Wireshark 使用教程:网络分析从入门到精通

news2025/1/16 4:38:14

一、引言

在网络技术的广阔领域中,网络协议分析是一项至关重要的技能。Wireshark 作为一款开源且功能强大的网络协议分析工具,被广泛应用于网络故障排查、网络安全检测以及网络协议研究等诸多方面。本文将深入且详细地介绍 Wireshark 的使用方法,帮助你快速掌握这一强大工具。

二、Wireshark 简介

Wireshark 是一个免费且开源的网络协议分析器,它能够深入捕获和分析网络数据包。无论是学习网络技术的新手,还是经验丰富的网络工程师,Wireshark 都能为他们提供深入了解网络运行机制的能力。通过直观的图形界面,用户可以轻松地查看网络数据包的详细信息,包括源地址、目的地址、协议类型以及数据包内容等。

三、安装与启动

(一)安装

  1. 首先,访问 Wireshark 官方网站(https://www.wireshark.org/download.html),根据你的操作系统下载对应的安装包。Wireshark 支持 Windows、Mac OS、Linux 等多种主流操作系统,确保选择与你系统匹配的版本。
  1. 下载完成后,运行安装程序,按照安装向导的提示进行操作。在安装过程中,你会遇到一些可选择的设置:
    • 安装路径:默认情况下,Wireshark 会安装在系统盘的特定目录下,如 Windows 系统的 “C:\Program Files\Wireshark” 。你可以点击 “浏览” 按钮选择其他磁盘和目录进行安装,比如安装在空间充足的 D 盘,以避免系统盘空间不足影响系统性能。
    • 组件选择:通常有 Wireshark 主程序、TShark(Wireshark 的命令行版本)、USBpcap(用于捕获 USB 数据包,一般用户较少用到)等组件。一般保持默认勾选的组件即可满足大多数用户的日常使用需求。若你对命令行操作有一定了解且可能会在命令行环境下使用 Wireshark,可勾选 TShark 组件。完成设置后,直接点击 “下一步” 即可完成安装。

(二)启动

安装完成后,在开始菜单(Windows 系统)或应用程序列表(Mac 系统)中找到 Wireshark 的快捷方式,点击即可启动。启动后,你将看到 Wireshark 的主界面。

四、界面介绍

(一)菜单栏

菜单栏包含了各种操作选项,如文件的打开、保存,数据包的捕获、分析设置等。通过菜单栏,你可以完成几乎所有的 Wireshark 操作。例如:

  • 文件(File):在此菜单下可以进行打开已有的捕获文件(.pcapng 或.pcap 格式)、保存当前捕获的数据包、打印数据包等操作。
  • 捕获(Capture):包含开始捕获、停止捕获、设置捕获选项等功能。
  • 分析(Analyze):用于设置分析相关的参数,如启用或禁用特定协议的分析、设置显示过滤器等。

(二)工具栏

工具栏提供了一些常用功能的快捷按钮,例如开始捕获、停止捕获、打开已捕获文件等。这些按钮使得你可以快速执行常见操作,提高工作效率。其中:

  • 绿色三角形图标为 “开始捕获” 按钮,点击它可直接开始在选定接口上捕获数据包。
  • 红色正方形图标是 “停止捕获” 按钮,用于停止正在进行的数据包捕获。
  • 文件夹图标用于 “打开已捕获文件”,方便你快速加载之前保存的数据包文件进行分析。

(三)接口列表

在 Wireshark 主界面的中间部分,你会看到一个接口列表。这里列出了计算机上所有可用的网络接口,包括以太网接口、无线网络接口等。在进行数据包捕获之前,需要选择一个要捕获数据包的接口。每个接口都有其对应的名称和描述,例如 “Ethernet0” 可能是计算机的有线网络接口,“Wi-Fi” 则是无线网络接口。选择时需根据实际需要捕获数据包的网络环境来确定,如你要分析家庭无线网络中的数据包,就应选择 “Wi-Fi” 接口。

(四)数据包列表窗格

当你开始捕获数据包后,捕获到的数据包会以列表形式显示在这个窗格中。每个数据包都有一行记录,显示了数据包的编号、捕获时间、源地址、目的地址、协议类型以及数据包的简要信息。其中:

  • 数据包编号:按照捕获的先后顺序对数据包进行编号,方便在大量数据包中定位特定数据包。
  • 捕获时间:精确记录数据包被捕获的时间,对于分析网络事件的时间顺序非常重要。
  • 源地址和目的地址:显示数据包发送方和接收方的 IP 地址或 MAC 地址,有助于判断数据的流向和通信双方。
  • 协议类型:明确数据包所使用的网络协议,如 TCP、UDP、HTTP、DNS 等。
  • 数据包简要信息:根据协议类型显示数据包的关键信息,如 HTTP 数据包可能显示请求的 URL 或响应状态码。

(五)数据包详细信息窗格

当你在数据包列表窗格中选择一个数据包时,这个窗格会显示该数据包的详细信息。包括数据包的各个协议层的结构、字段值以及对应的解释。这对于深入分析数据包的内容和协议结构非常有帮助。例如,对于一个 TCP 数据包,你可以看到:

  • 源端口(Source Port):标识发送方应用程序使用的端口号,不同的应用程序通常使用特定的端口号,如 HTTP 协议默认使用 80 端口,HTTPS 使用 443 端口。
  • 目的端口(Destination Port):标识接收方应用程序使用的端口号。
  • 序列号(Sequence Number):用于标识 TCP 数据包在数据流中的位置,确保数据包按正确顺序重组。
  • 确认号(Acknowledgment Number):用于确认已收到对方发送的数据包,保证数据传输的可靠性。

对于一个 HTTP 数据包,你可以查看其:

  • 请求方法(Request Method):常见的有 GET(用于获取资源)、POST(用于提交数据)等。
  • 请求 URL(Request URL):显示请求的具体资源路径。
  • 响应状态码(Response Status Code):如 200 表示请求成功,404 表示资源未找到等。

(六)数据包字节数据窗格

此窗格显示了数据包的原始字节数据。对于需要查看数据包原始内容的高级用户来说,这个窗格提供了最直接的方式。在这里,你可以看到数据包以十六进制和 ASCII 码两种形式呈现的数据,通过分析这些原始数据,可以更深入地了解数据包的构成和内容,特别是在分析一些自定义协议或排查网络安全问题时非常有用。

五、捕获数据包

(一)选择捕获接口

在开始捕获数据包之前,首先要选择一个要捕获数据包的接口。在接口列表中,找到你想要捕获数据包的网络接口,例如以太网接口 “Ethernet0” 或者无线网络接口 “Wi-Fi”。点击该接口,然后点击工具栏上的 “开始捕获” 按钮(通常是一个绿色的三角形图标),或者选择菜单栏中的 “捕获”->“开始”。

(二)设置捕获选项

在开始捕获之前,你还可以对捕获选项进行一些设置。点击菜单栏中的 “捕获”->“选项”,弹出 “捕获选项” 对话框。在这里,你可以设置捕获的接口、捕获文件的保存位置、捕获过滤器等。

  1. 捕获文件:设置捕获的数据包保存的文件路径和文件名。如果不设置,捕获的数据包将只显示在 Wireshark 界面中,不会保存到文件。你可以点击 “浏览” 按钮选择保存的目录,文件名可以自行命名,建议使用有意义的名称,如 “20241201 - office - network - capture.pcapng” ,方便后续查找和识别。
  1. 捕获过滤器:使用捕获过滤器可以只捕获符合特定条件的数据包。例如,你只想捕获来自某个 IP 地址的数据包,可以设置捕获过滤器为 “ip.src == 192.168.1.100”。捕获过滤器的语法有多种规则:
    • 协议过滤:如 “tcp” 表示只捕获 TCP 协议的数据包,“udp” 表示只捕获 UDP 协议的数据包。
    • IP 地址过滤:“ip.src == 192.168.1.100” 表示只捕获源 IP 地址为 192.168.1.100 的数据包,“ip.dst == 192.168.1.200” 表示只捕获目的 IP 地址为 192.168.1.200 的数据包。
    • 端口过滤:“tcp.srcport == 8080” 表示只捕获源端口为 8080 的 TCP 数据包,“udp.dstport == 53” 表示只捕获目的端口为 53(DNS 协议常用端口)的 UDP 数据包。
    • 逻辑运算符:“&&” 表示与,如 “ip.src == 192.168.1.100 && tcp.dstport == 80” 表示只捕获源 IP 地址为 192.168.1.100 且目的端口为 80 的数据包;“||” 表示或,如 “ip.src == 192.168.1.100 || ip.src == 192.168.1.101” 表示捕获源 IP 地址为 192.168.1.100 或者 192.168.1.101 的数据包;“!” 表示非,如 “!http” 表示捕获除 HTTP 协议之外的数据包。

(三)开始捕获

完成上述设置后,点击 “开始” 按钮,Wireshark 就会开始捕获所选接口上的数据包。捕获过程中,数据包列表窗格会实时显示捕获到的数据包。当你想要停止捕获时,点击工具栏上的 “停止捕获” 按钮(通常是一个红色的正方形图标),或者选择菜单栏中的 “捕获”->“停止”。

六、分析数据包

(一)使用显示过滤器

显示过滤器是 Wireshark 中非常强大的功能,它可以帮助你从大量的捕获数据包中快速筛选出符合特定条件的数据包。显示过滤器的语法与捕获过滤器类似,但功能更加强大。在 Wireshark 界面的左上角有一个 “显示过滤器” 输入框,你可以在其中输入过滤器表达式。

例如:

  • 显示所有 TCP 协议的数据包:tcp
  • 显示源 IP 地址为 192.168.1.100 的数据包:ip.src == 192.168.1.100
  • 显示目的端口为 80 的 HTTP 协议数据包:http && tcp.dstport == 80

显示过滤器除了基本的协议、地址、端口过滤和逻辑运算外,还支持更复杂的过滤规则。比如,你可以通过 “frame.len> 1000” 来显示长度大于 1000 字节的数据包,这对于分析网络中大数据包的传输情况很有帮助;还可以使用 “ip.addr == 192.168.1.100” 来显示与 192.168.1.100 这个 IP 地址相关的所有数据包,包括源地址或目的地址是该 IP 的数据包。

(二)查看数据包详细信息

在数据包列表窗格中选择一个数据包后,数据包详细信息窗格会显示该数据包的详细内容。你可以展开各个协议层,查看每个字段的具体值和含义。例如,对于一个 TCP 数据包,你可以查看其源端口、目的端口、序列号、确认号等信息;对于一个 HTTP 数据包,你可以查看其请求方法(GET、POST 等)、请求 URL、响应状态码等信息。此外,还可以查看数据包的其他详细信息,如 TCP 的窗口大小(Window Size),它表示发送方能够接收的字节数,反映了网络的拥塞情况;HTTP 的头部字段(Header Fields),如 User - Agent(用于标识客户端的类型和版本)、Content - Type(用于指定数据的类型,如 application/json 表示数据是 JSON 格式)等,这些信息对于深入分析网络通信和排查问题都非常关键。

(三)跟踪流

在分析网络连接时,跟踪流功能非常有用。当你选择一个 TCP 或 UDP 数据包后,右键点击该数据包,在弹出的菜单中选择 “追踪流”->“TCP 流” 或 “UDP 流”。Wireshark 会将该连接的所有数据包按顺序排列,并以文本形式显示在一个新的窗口中,方便你查看整个连接的通信过程。在跟踪流的窗口中,你可以清晰地看到数据的发送和接收顺序,以及请求和响应的具体内容。例如,对于 HTTP 协议的 TCP 流,你可以看到完整的 HTTP 请求和响应消息,包括请求头、请求体、响应头和响应体,这对于分析 Web 应用的交互过程和排查相关问题非常直观和有效。

七、常用过滤器语法

(一)协议过滤器

  • 显示所有 HTTP 协议的数据包:http
  • 显示所有 DNS 协议的数据包:dns
  • 显示所有 ARP 协议的数据包:arp

(二)IP 地址过滤器

  • 显示源 IP 地址为 192.168.1.100 的数据包:ip.src == 192.168.1.100
  • 显示目的 IP 地址为 192.168.1.200 的数据包:ip.dst == 192.168.1.200

(三)端口过滤器

  • 显示源端口为 8080 的数据包:tcp.srcport == 8080
  • 显示目的端口为 22 的数据包:tcp.dstport == 22

(四)逻辑运算符

  • 与(&&):用于连接多个条件,只有所有条件都满足时才显示数据包。例如,显示源 IP 地址为 192.168.1.100 且目的端口为 80 的数据包:ip.src == 192.168.1.100 && tcp.dstport == 80
  • 或(||):用于连接多个条件,只要有一个条件满足就显示数据包。例如,显示源 IP 地址为 192.168.1.100 或目的 IP 地址为 192.168.1.200 的数据包:ip.src == 192.168.1.100 || ip.dst == 192.168.1.200
  • 非(!):用于取反条件。例如,显示不是 HTTP 协议的数据包:!http

此外,还有一些其他的过滤语法,如针对以太网帧的过滤,“eth.src == 00:11:22:33:44:55” 可以显示源 MAC 地址为 00:11:22:33:44:55 的以太网帧;针对 ICMP 协议的过滤,“icmp.type == 8” 可以显示 ICMP 请求(类型 8)的数据包,“icmp.type == 0” 则显示 ICMP 响应(类型 0)的数据包。

八、保存与导出捕获数据

(一)保存捕获文件

在捕获完成后,你可以将捕获的数据包保存为文件,以便后续分析。选择菜单栏中的 “文件”->“保存” 或 “文件”->“另存为”,选择保存的文件路径和文件名。Wireshark 默认的保存文件格式为.pcapng,这种格式可以完整地保存捕获的数据包信息,包括数据包的原始数据、捕获时间、接口信息等。如果你需要与其他工具或用户共享捕获数据,也可以选择保存为.pcap 格式,该格式是一种更通用的数据包捕获文件格式,被许多网络分析工具所支持。

(二)导出特定数据包

如果你只需要导出部分数据包,可以使用显示过滤器筛选出这些数据包,然后选择菜单栏中的 “文件”->“导出分组”->“作为”。在弹出的对话框中,选择保存的文件路径和文件名,同时可以选择导出的文件格式,如文本文件、CSV 文件等。导出为文本文件时,数据包的内容会以文本形式呈现,便于查看和编辑;导出为 CSV 文件则适合用于数据分析和统计,你可以将其导入到 Excel 等软件中进行进一步处理,例如统计不同协议的数据包数量、分析数据包的大小分布等。

九、总结

通过本文的详细介绍,相信你已经对 Wireshark 的基本使用方法有了较为全面的了解。从安装启动、界面认识,到数据包的捕获与分析,再到过滤器的使用以及数据的保存导出,Wireshark 提供了丰富而强大的功能来帮助我们深入研究网络协议和排查网络问题。随着不断的学习和实践,你将能够更加熟练地运用 Wireshark,挖掘网络数据包背后的更多信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2277346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

量子计算:从薛定谔的猫到你的生活

文章背景 说到量子计算,不少人觉得它神秘又遥不可及。其实,它只是量子物理学的一个“应用小分支”。它的核心在于量子比特的“叠加”和“纠缠”,这些听上去像科幻小说的概念,却为计算世界开辟了一片全新的天地。如果经典计算是“…

Linux第二课:LinuxC高级 学习记录day02

2.4、shell中的特殊字符 2.4.4、命令置换符 或者 $() 反引号:esc下面的按键,英文状态下直接按 功能:将一个命令的输出作为另一个命令的参数 echo 不会认为hostname是一个命令 加上 之后,先执行hostname,拿到主机名…

基于mediapipe的手势游戏控制

基于mediapipe的手势游戏控制 ​ 玩游戏,那不是有手就行!!! mediapipe介绍 ​ Mediapipe是Google在2019年开发并提出的一款开源的跨平台多媒体处理框架,用于构建基于机器学习的应用程序,特别是涉及到计算机视觉、音频处理、姿势估计等领域。…

安装软件缺少msvcp110.dll怎么办?出现dll丢失的解决方法

在日常使用电脑安装各类软件的过程中,相信不少朋友都遇到过 “缺少 msvcp110.dll” 的报错提示 。下面就来深入聊聊这个 msvcp110.dll 文件,以及当它缺失时,我们该如何巧妙应对。 一、msvcp110.dll 文件介绍 1.1 定义与功能 msvcp110.dll 是…

(学习总结19)C++11 列表初始化、右值引用、移动语义、引用折叠与完美转发

C11 列表初始化、右值引用、移动语义、引用折叠与完美转发 一、列表初始化C98 传统的 {}C11 中的 {}C11 中的 std::initializer_listC11 {} 列表初始化 与 std::initializer_list 区别 二、右值引用左值和右值左值引用和右值引用引用延长生命周期左值和右值的参数匹配类型分类 …

从0开始学习搭网站第二天

前言:今天比较惭愧,中午打铲吃了一把,看着也到钻二了,干脆顺手把这个赛季的大师上了,于是乎一直到网上才开始工作,同样,今天的学习内容大多来自mdn社区mdn 目录 怎么把文件上传到web服务器采用S…

ffmpeg硬件编码

使用FFmpeg进行硬件编码可以显著提高视频编码的性能,尤其是在处理高分辨率视频时。硬件编码利用GPU或其他专用硬件(如Intel QSV、NVIDIA NVENC、AMD AMF等)来加速编码过程。以下是使用FFmpeg进行硬件编码的详细说明和示例代码。 1. 硬件编码支…

【高可用自动化体系】自动化体系

架构设计的愿景就是高可用、高性能、高扩展、高效率。为了实现架构设计四高愿景,需要实现自动化系统目标: 标准化。 流程自助化。 可视化:可观测系统各项指标、包括全链路跟踪。 自动化:ci/cd 自动化部署。 精细化&#xff1a…

elasticsearch中IK分词器

1、什么是IK分词器 ElasticSearch 几种常用分词器如下: 分词器分词方式StandardAnalyzer单字分词CJKAnalyzer二分法IKAnalyzer词库分词 分词∶即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库…

arcgis中生成格网矢量带高度

效果 1、数据准备 (1)矢量边界(miain.shp) (2)DEM(用于提取格网标高) (3)DSM(用于提取格网最高点) 2、根据矢量范围生成格网 模板范围选择矢量边界,像元宽度和高度根据坐标系来输入,我这边是4326的,所以输入的是弧度,输出格网矢量gewang.shp 3、分区统计 …

一文了解如何使用 DBeaver 管理 DolphinDB

在日常的数据开发、分析和数据库运维中,一款优秀的 IDE 能够极大地提升工作效率。DBEaver 是一款由 Java 编写的一站式跨平台连接器,其社区版本已能支持连接近百种数据库,受到广大开发者的喜爱。近期。DolphinDB 与 DBeaver 团队共同努力&…

【ArcGIS微课1000例】0138:ArcGIS栅格数据每个像元值转为Excel文本进行统计分析、做图表

本文讲述在ArcGIS中,以globeland30数据为例,将栅格数据每个像元值转为Excel文本,便于在Excel中进行统计分析。 文章目录 一、加载globeland30数据二、栅格转点三、像元值提取至点四、Excel打开一、加载globeland30数据 打开配套实验数据包中的0138.rar中的tif格式栅格土地覆…

JVM之垃圾回收器ZGC概述以及垃圾回收器总结的详细解析

ZGC ZGC 收集器是一个可伸缩的、低延迟的垃圾收集器,基于 Region 内存布局的,不设分代,使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记压缩算法 在 CMS 和 G1 中都用到了写屏障,而 ZGC 用到了读屏障 染色指针&a…

C# XPTable 日期字段处理(XPTable控件使用说明十三)

1、SQLite数据库定义为日期类型 2、XPtable中日期字段定义与显示 //显示时间表columnModel1.Columns.Clear();columnModel1.Columns.Add(new NumberColumn("id", 30));NumberColumn numberColumn new NumberColumn("次数", 50);numberColumn.Maximum 100…

【pycharm发现找不到python打包工具,且无法下载】

发现找不到python打包工具,且无法下载 解决方法: 第一步:安装distutils,在CMD命令行输入: python -m ensurepip --default-pip第二步:检查和安装setuptools和wheel: python -m pip install --upgrade …

晨辉面试抽签和评分管理系统之六:面试答题倒计时

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

王炸组合:Dolphinscheudler 3.1.*搭配SeaT unnel2.3.*高效完成异构数据数据集成

概述 本篇主要介绍如何通过Dolphinscheduler海豚调度搭配Seatunnel完成异构数据源之间的数据同步功能,这个在大数据流批一体数仓建设的过程中是一个非常好的解决方案, 稳定高效,只要用上了你肯定爱不释手。 环境准备 dolphinscheduler集群…

【AI日记】25.01.11 Weights Biases | AI 笔记 notion

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales笔记:我的 AI 笔记主要记在两个地方 有道云笔记:数学公式和符号比较多的笔记notion:没什么数学公式的…

Oracle EBS GL定期盘存WIP日记账无法过账数据修复

系统环境 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状 用户反映来源为“定期盘存”和类别为“WIP”的日记账无法过账,标准日记账的界面上的过账按钮灰色不可用。但是,在超级用户职责下,该日记账又可以过账,细心检查发现该业务实体下有二个公司段值15100和…

欧拉路径算法

欧拉图: 对于应该连通图G,有: 1欧拉路径:一条路径,它能够不重复地遍历完所有的边,这个性质很像不重复地一笔画完所有边,所以有些涉及到欧拉路径的问题叫做一笔画问题。 2欧拉回路&#xff1a…