抓包工具 Wireshark 是什么?

Wireshark 是一个开源的网络协议分析器,它的核心功能是捕获 网络上流动的数据包,并尽可能详细地显示出这些数据包的信息。它本身不会修改网络内容,也不会主动发出数据包,只是一个安静的"观察者"。

  • 前身与历史 :它最初在1998年以 Ethereal 的名字诞生,后因商标问题在2006年更名为 Wireshark。

  • 核心特点

    • 免费开源:在GNU GPL许可证下发布,任何人都可以免费使用和修改。

    • 跨平台:支持 Windows、macOS、Linux 等主流操作系统。

    • 功能强大:支持数百种协议的解析,拥有强大的过滤和统计分析功能。

🚀 如何上手使用 Wireshark?

下面我们一步步来,让您能快速开始第一次抓包。

1. 安装 Wireshark

您可以根据自己的操作系统,参考以下方式进行安装:

操作系统 安装方法
Windows 1. 访问 Wireshark 官网 下载安装包。 2. 运行安装程序,在安装过程中,务必勾选安装 Npcap 或 WinPcap,这是Wireshark用来抓包的核心驱动。
macOS 1. 从官网下载 .dmg 文件安装。 2. 或者,如果您安装了Homebrew,可以使用命令 brew install wireshark
Linux (如Ubuntu/Debian) 打开终端,执行命令: sudo apt update sudo apt install wireshark 安装过程中,可以选择允许非root用户抓包,方便日常使用。
2. 认识主界面

启动 Wireshark 后,界面主要分为几个区域,理解它们有助于快速上手:

  • 接口列表区:启动时你会看到电脑上的所有网络接口列表(如Wi-Fi、以太网、蓝牙等)。旁边跳动着的波浪线表示该接口有实时流量,选择正确的接口是抓包成功的关键。

  • 数据包列表区:开始抓包后,这里会一行行地实时显示捕获到的数据包。每一行都包含编号、时间、源地址、目标地址、协议、长度和基本信息。

  • 数据包详情区:在列表中选中一个包,这里会以树形结构显示它的详细内容,从物理层到应用层的所有协议字段都会清晰地展开。

  • 数据包字节区:最下方的区域会显示数据包的原始十六进制和ASCII码形式。

3. 开始第一次抓包:以访问网站为例

让我们通过一个简单的例子,体验一下抓包的全过程。

  1. 选择网卡并开始:在主界面的接口列表中,双击您正在使用的网卡(例如,连接Wi-Fi就选择名字带Wi-Fi或wlan0的接口)。Wireshark 会立即开始捕获所有经过该网卡的数据包。

  2. 产生流量 :打开您的浏览器,访问一个网站,比如 www.example.com

  3. 停止抓包:访问完成后,点击工具栏上的红色"停止"按钮。

  4. 初步观察 :此时您会看到数据包列表区已经被大量的数据包填满。其中,协议列为 TCPHTTP 的包将是这次网页访问的主角。

  5. 使用过滤器精准定位 :为了从海量数据中找到与 example.com 相关的包,在界面顶部的"显示过滤器"输入框中输入 httpip.addr == 93.184.216.34(此为示例IP,实际请用您访问的网站IP),然后回车。列表中就只显示HTTP协议或与该IP相关的数据包了。

4. 核心技能:用好两种过滤器

Wireshark 的强大很大程度上归功于其灵活的过滤机制。

  • 捕获过滤器 :在开始抓包前设置,只捕获符合条件的数据包,丢弃其余部分,可以帮助减少抓包文件的体积。它使用BPF语法。

    • 例如host 192.168.1.100 只捕获来自或去往该IP的数据包。
  • 显示过滤器 :在抓包结束后设置,在已捕获的所有数据包中,筛选出符合条件的数据包进行显示。它使用Wireshark特有的语法,功能更强大、更灵活。这也是我们最常用的过滤器。

下面是一些常用的显示过滤器语法,您可以现学现用:

过滤目标 过滤器表达式 说明
按协议 http 仅显示HTTP协议的数据包
dns 仅显示DNS协议的数据包
icmp 仅显示ICMP协议(如ping命令)的数据包
按IP地址 ip.addr == 192.168.1.1 显示源IP或目的IP为192.168.1.1的所有包
ip.src == 192.168.1.100 仅显示源IP为192.168.1.100的包
ip.dst == 8.8.8.8 仅显示目的IP为8.8.8.8的包
按端口 tcp.port == 80 显示源或目的TCP端口为80的所有包
tcp.srcport == 443 仅显示源TCP端口为443的包
组合过滤 http and ip.addr == 192.168.1.100 显示IP为192.168.1.100的HTTP流量
tcp.port == 80 or tcp.port == 443 显示所有HTTP(80)和HTTPS(443)流量
特定字段 tcp.analysis.retransmission 显示所有TCP重传包,用于排查网络延迟和丢包
http.request.method == "GET" 仅显示HTTP GET请求
5. 进阶技巧
  • 追踪数据流 :在数据包列表区,右键点击任何一个属于TCP或HTTP会话的数据包,选择 "追踪流" -> "TCP流"(或HTTP流),Wireshark会将这次会话的所有数据重组并显示出来,对于分析应用层协议(如HTTP的请求和响应内容)非常方便。

  • 分析三次握手 :过滤器输入 tcp,找到访问网站时的前三个包。它们分别是:

    1. 客户端发送的 [SYN] 包(请求连接)。

    2. 服务器回复的 [SYN, ACK] 包(同意连接)。

    3. 客户端发送的 [ACK] 包(确认连接建立)。这就是著名的TCP三次握手过程。

6. 常见问题与解决
  • 为什么抓不到包?

    • 是否以管理员/root权限运行?在Linux/macOS下,可能需要用 sudo 启动。

    • 是否选对了网卡?如果用的是Wi-Fi,却选择了"以太网"网卡,肯定抓不到数据。

  • 数据包太多,眼花缭乱? 这就是显示过滤器大显身手的时候,务必多加练习使用。

下载地址:以太网抓包工具Wireshark资源-CSDN下载

相关推荐
Crazyong3 小时前
FreeRTOS-任务通知-1
网络
星空3 小时前
postman复习
测试工具·postman
JdayStudy3 小时前
SIR 网络传播仿真软件说明书
开发语言·网络·php
szm02253 小时前
计算机网络
网络
JicasdC123asd3 小时前
密集残差瓶颈网络改进YOLOv26特征复用与梯度传播双重优化
网络·yolo·目标跟踪
weixin_449290014 小时前
智能盒子-Agent-Skill-执行逻辑架构
网络·架构
2601_949221034 小时前
CFCA牵头跨境电子签名互认 以信任链赋能海南自贸港高水平开放
网络·信任链
Java成神之路-4 小时前
HTTP 协议进化史:从 1.0 到 3.0
网络·网络协议·http
先知后行。5 小时前
canopen
网络