抓包工具 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下载

相关推荐
llilian_1610 小时前
选择北斗导航卫星信号模拟器注意事项总结 北斗导航卫星模拟器 北斗导航信号模拟器
功能测试·单片机·嵌入式硬件·测试工具·51单片机·硬件工程
为何创造硅基生物11 小时前
ESP32S3的RGB屏幕漂移问题
网络
好运的阿财11 小时前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
周杰伦fans11 小时前
C# required 关键字详解
开发语言·网络·c#
洛水水11 小时前
深入理解网络编程核心:Reactor、IOCP 与异步 IO 模型详解
网络·iocp
favour_you___11 小时前
epoll惊群问题与解决
服务器·网络·tcp/ip·epoll
北方的流星11 小时前
华三网络设备的路由重定向配置
运维·网络·华三
.select.12 小时前
TCP 3
服务器·网络·tcp/ip
阿捏利12 小时前
详解网络协议(十六)UDP协议
网络·网络协议·udp
芯智工坊12 小时前
第13章 Mosquitto监控与日志管理
前端·网络·人工智能·mqtt·开源