Wireshark详解

news/2025/2/25 7:24:28

Wireshark使用详解

  • 1.Wireshark 简介
  • 2.下载与安装
      • 1. 下载地址
      • 2. 安装步骤(以 Windows 为例)
  • 3. 界面与核心功能
      • 1. 主界面布局
      • 2. 常用菜单功能
  • 4. 过滤功能详解
      • 1. 过滤类型
      • 2. 常用过滤命令
  • 5. 过滤命令与网络结构对应
  • 6. 使用注意事项
  • 7. 案例分析 TCP 三次握手
      • 1. 实验目标
      • 2. 操作步骤
      • 3. 预期结果
  • 8. 扩展学习

1.Wireshark 简介

Wireshark 是一款开源的网络协议分析工具,支持实时抓包、协议解析、流量统计等功能,广泛用于网络故障排查、安全分析、协议学习等领域。

2.下载与安装

1. 下载地址

  • 官网下载:访问 Wireshark 官网,选择对应操作系统的安装包:
    • Windows:.exe 安装程序(推荐稳定版 Stable Release)。
    • macOS:.dmg 镜像文件。
    • Linux:通过包管理器安装(如 apt install wireshark)。

2. 安装步骤(以 Windows 为例)

  1. 双击安装包,按向导完成安装。
  2. 勾选 Install WinPcap/Npcap(必须安装,用于捕获网络接口数据)。
  3. 安装完成后,以管理员权限启动 Wireshark(否则无法抓包)。

3. 界面与核心功能

1. 主界面布局

区域功能说明
菜单栏包含文件操作、捕获控制、分析工具等核心功能。
工具栏快速访问开始/停止捕获、过滤表达式输入等。
接口列表显示所有可用的网络接口及其实时流量统计。
捕获数据面板显示捕获的数据包列表,包含时间、源/目的地址、协议、长度等基本信息。
协议详情面板展开单个数据包,逐层解析协议头部和载荷内容(如 Ethernet → IP → TCP → HTTP)。
字节流面板以十六进制和 ASCII 格式显示原始字节流。

2. 常用菜单功能

  • File:打开/保存捕获文件(.pcapng 格式)、导出特定数据包。
  • Edit:查找数据包、标记关键帧。
  • View:调整显示布局、着色规则(按协议或过滤条件高亮)。
  • Capture:选择接口、设置捕获过滤器。
  • Analyze:跟踪 TCP 流、启用协议解析统计。

4. 过滤功能详解

1. 过滤类型

类型作用阶段语法示例应用场景
捕获过滤器抓包前tcp port 80减少捕获数据量,聚焦目标流量。
显示过滤器抓包后分析http.request.method == "GET"快速定位特定协议或行为。

2. 常用过滤命令

协议过滤

tcp          # 仅显示 TCP 协议数据包
udp          # 仅显示 UDP 协议数据包
http         # 过滤 HTTP 请求/响应
dns          # 过滤 DNS 查询与响应

IP 与端口过滤

ip.src == 192.168.1.100    # 源 IP 地址
ip.dst == 10.0.0.1         # 目的 IP 地址
tcp.port == 443            # TCP 端口 443(HTTPS)
udp.port range 1000-2000   # UDP 端口范围

逻辑运算符

&&      # 逻辑与(如 `tcp && ip.addr == 192.168.1.1`)
||      # 逻辑或(如 `http || dns`)
!       # 逻辑非(如 `!arp`)

高级过滤

tcp.flags.syn == 1         # 过滤 TCP SYN 标志包
http.request.method == "POST"  # HTTP POST 请求
frame contains "password"  # 数据包内容包含关键字

5. 过滤命令与网络结构对应

过滤条件对应网络应用案例
eth.addr数据链路层分析 MAC 地址通信问题。
ip.addr / ip.ttl网络层(IP)定位 IP 地址冲突或 TTL 超时。
tcp.port / udp.port传输层(TCP/UDP)排查端口占用或防火墙拦截。
http / dns应用层分析 Web 请求或域名解析异常。

6. 使用注意事项

  1. 权限问题:需以管理员/root 权限运行,否则无法捕获数据。
  2. 性能影响:在高流量场景下,实时抓包可能导致 CPU/内存占用过高。
  3. 隐私保护:避免捕获敏感信息(如密码),抓包后及时清理文件。
  4. 过滤优化:优先使用捕获过滤器减少数据量,再结合显示过滤器分析。
  5. 文件保存:定期保存 .pcapng 文件,防止意外关闭导致数据丢失。

7. 案例分析 TCP 三次握手

1. 实验目标

验证 TCP 连接的建立过程(SYN → SYN-ACK → ACK)。

2. 操作步骤

  1. 启动捕获

    • 选择接口(如以太网或 Wi-Fi),点击工具栏 鲨鱼鳍图标 开始抓包。
    • 设置显示过滤器:tcp && ip.addr == [目标服务器IP](如访问百度:tcp && ip.addr == 180.101.49.12)。
  2. 触发通信

    • 在浏览器访问目标网站(如 www.baidu.com),生成 TCP 连接请求。
  3. 分析数据包

    • 停止捕获,在数据包列表中查找 三次握手 过程:
      • SYN(Flags: SYN):客户端发起连接请求。
      • SYN-ACK(Flags: SYN, ACK):服务器响应确认。
      • ACK(Flags: ACK):客户端确认建立连接。
    • 右键点击任一握手包,选择 Follow → TCP Stream,查看完整会话。
  4. 关键字段解读

    • Sequence Number:初始序列号(ISN),每次握手递增。
    • Acknowledgment Number:确认对方序列号 + 1。
    • Flags:SYN、ACK 标志位的变化。

3. 预期结果

成功捕获三个连续数据包,标志位依次为 SYN → SYN-ACK → ACK,序列号符合逻辑递增,证明 TCP 连接正常建立。

8. 扩展学习

  • 高级协议解析:通过 Analyze → Decode As 自定义协议解析规则。
  • 统计工具:使用 Statistics → Protocol Hierarchy 查看流量占比。
  • 自动化脚本:结合 tshark(命令行版 Wireshark)批量分析数据。

http://www.niftyadmin.cn/n/5865162.html

相关文章

tauri输入js脚本的方法和注意事项initialization_script

注入js脚本最常用的就是initialization_script,通过这个方法注入的js脚本在页面每个页面都会执行,这个在tauri文档也可以搜到:WebviewWindowBuilder in tauri::webview - Rust,但是请注意,这个方法只能用在WindowBuild…

三级等保|三级等保认证|三级等保申请

在信息化时代,信息安全已成为企业及组织不可缺的重要环节。三级等保作为我国信息安全等级保护体系中的重要组成部分,其办理过程需严格遵守相关法律法规和标准。以下是在办理三级等保过程中需要注意的若干事项: 一、明确等级保护对象 首先&…

Starlink卫星动力学系统仿真建模第九讲-滑模(SMC)控制算法原理简介及卫星控制应用

滑模控制(Sliding Mode Control)算法详解 一、基本原理 滑模控制(Sliding Mode Control, SMC)是一种变结构控制方法,通过设计一个滑模面(Sliding Surface),迫使系统状态在有限时间内…

SmartMediakit之音视频直播技术的极致体验与广泛应用

引言 在数字化时代,音视频直播技术已经深入到各个行业和领域,成为信息传递和交流的重要手段。视沃科技自2015年成立以来,一直致力于为传统行业提供极致体验的音视频直播技术解决方案,其旗下的大牛直播SDK凭借强大的功能和卓越的性…

远程部署 Qt 应用程序套件错误原因

构建套件报红色警告错误: 图一: 改图二:

Spring Core面试题

Spring Core面试题 基础概念 Q1: Spring的核心特性有哪些? public class SpringCoreBasicDemo {// 1. IoC容器public class IoCExample {public void iocDemo() {// XML配置Configurationpublic class AppConfig {Beanpublic UserService userService() {return …

Spring Boot 2/3.x 中 MultipartFile 接收问题深度解析与实战解决方案

文章目录 引言:文件上传的暗礁与应对一、核心机制解析1.1 多部分请求处理流程1.2 关键配置参数演进 二、典型问题排查与修复2.1 文件接收为null问题2.2 大文件上传内存溢出 三、版本差异陷阱3.1 Jakarta Servlet API迁移影响3.2 默认配置变更对比 四、高级问题解决方…

代码随想录算法训练day63---图论系列7《prim算法kruskal算法》

代码随想录算法训练 —day63 文章目录 代码随想录算法训练前言一、53. 寻宝—prim算法打印出来最小生成树的每条边 二、53. 寻宝—kruskal算法打印出来最小生成树的每条边 总结 前言 今天是算法营的第63天,希望自己能够坚持下来! 今天继续图论part&…