Wireshark入门指南:软件安装+实操细节+协议解析
好,我需要总结这篇文章的内容,控制在100字以内。文章主要讲的是Wireshark的下载安装、界面解析、抓包实操、过滤器使用以及协议解析。重点介绍了软件的安装步骤、驱动的必要性,还有各种抓包场景和过滤器的使用技巧。最后还提供了实战练习来巩固技能。这些内容对于学习网络抓包和分析非常有帮助。 </think> 文章详细介绍了Wireshark的下载安装、界面解析、抓包实操、过滤器使用及协议解析,并提供了实战练习来巩固技能。 2025-12-16 03:42:20 Author: www.freebuf.com(查看原文) 阅读量:4 收藏

一、软件下载安装

1. 核心软件:Wireshark

- 下载渠道:官网(wireshark.org)唯一安全源,避免第三方捆绑。
- Windows:点击“Download Wireshark Now”,选择“Windows Installer (64-bit)”,支持Win10/11;
- Mac OS:选“macOS Disk Image”,兼容macOS 12及以上;
- Linux(Ubuntu/Debian):终端输入 sudo apt-get install wireshark ,自动适配系统。
- 安装关键步骤:
- Windows:勾选“Install Npcap”(必选驱动)和“Create a desktop shortcut”,遇到“WinPcap兼容性提示”直接选“下一步”,无需手动卸载旧版;
- Mac OS:挂载镜像后拖拽Wireshark到应用程序,首次打开需在“系统设置→安全性与隐私”中允许“未知开发者”运行;
- Linux:安装后会提示“是否允许非root用户抓包”,选“是”,避免每次抓包都输 sudo 。

2. 必备驱动:Npcap(抓包核心)

- 作用:替代旧版WinPcap,支持无线网卡、loopback本机抓包,是Wireshark识别网络接口的“桥梁”。
- 独立安装(若未勾选):官网(npcap.com)下载最新版,安装时勾选“Support raw 802.11 traffic (and monitor mode)”,支持无线流量捕获。
- 常见问题:安装后仍无法识别网卡,需重启电脑,或在设备管理器中更新“网络适配器”驱动。

3. 辅助工具(提升效率,可以不用)

- 协议调试:SecureCRT(远程连接网络设备,同步抓包)、ENSP(华为仿真器,模拟复杂网络拓扑);
- 数据解析:Fiddler(配合Wireshark解密HTTPS流量)、Notepad++(打开.pcap文件查看文本格式数据);
- 命令行辅助:Windows终端(用 ipconfig /all 查IP/MAC)、Linux终端(用 ifconfig 查网络接口)。

二、界面深度解析(每个模块都能用起来)

1765855883_6940d28b0dd667e31f90b.png!small打开Wireshark后,5个核心区域的“实用功能”的详细说明如下:

- 菜单栏:

1765856003_6940d30344839fa50b243.png!small
- 捕获:“捕获选项”可设置抓包时长(比如10秒自动停止)、保存路径,避免数据包过多;
- 分析:“跟踪流”支持TCP/UDP/HTTP流,直接还原完整会话;“显示过滤器表达式”可打开可视化编辑界面,不用记语法。


- 工具栏:

1765856015_6940d30fd28b61c213b5f.png!small
- 绿色鲨鱼鳍(开始抓包):点击前可右键选择“仅捕获所选接口”;
- 红色方块(停止抓包):快捷键 Ctrl+E ,停止后自动刷新数据包列表;
- 放大镜(查找):支持按IP、协议、字符串搜索数据包,比如输入“192.168.1.1”快速定位。

- 过滤器栏:

1765856028_6940d31c29a340a0882b4.png!small
- 输入后按回车生效,错误会显示红色(比如少写等号),正确显示绿色;
- 点击右侧“保存”图标,可将常用过滤条件存为预设(比如“HTTP筛选”),下次直接选。

- 数据包列表:

1765856049_6940d331732b1d40cc682.png!small
- 字段含义(入门必懂):
- No.:数据包序号(抓包时自动递增);
- Time:捕获时间(默认精确到毫秒,可调整为“相对时间”);
- Source/Destination:源IP/MAC、目标IP/MAC(hover显示完整地址);
- Protocol:数据包使用的协议(如TCP、HTTP、ARP);
- Length:数据包长度(单位字节,超过1500可能是巨型帧);
- Info:关键动作描述(如TCP的SYN请求、HTTP的GET请求)。


- 数据包详情:

1765856066_6940d342a029ad50f024e.png!small
- 分层展示(从下到上:物理层→数据链路层→网络层→传输层→应用层);
- 展开每层可查看具体字段,比如TCP层的“序列号(seq)”“确认号(ack)”,HTTP层的“请求头(Host、User-Agent)”。


- 数据包字节:

1765856084_6940d354943758a7e7619.png!small
- 左侧十六进制(机器识别格式),右侧ASCII码(可读文本);
- 选中详情中的某一字段,字节区对应位置会高亮,比如选中HTTP的“Content-Length”,可直接看到其值的十六进制表示。

三、抓包实操(分场景详细步骤)

1. 基础抓包(本机访问网页)

1. 查接口:打开终端输入 ipconfig /all ,记录本机IP(如192.168.1.100)和正在使用的网络接口(Wi-Fi/以太网);
2. 选接口:Wireshark左侧接口列表中,点击目标接口右侧的“开始”图标(不用点顶部鲨鱼鳍);
3. 触发流量:打开浏览器访问 http://example.com (HTTP明文网站,便于分析),加载完成后返回Wireshark;
4. 停止保存:点击红色方块停止抓包,按 Ctrl+S 保存为.pcapng格式(支持后续编辑),文件名建议含场景(如“本机HTTP抓包_20250101”)。

2. 进阶抓包(跨设备通信)

场景:抓手机与电脑的TCP通信(同一Wi-Fi下)

1. 手机设置:连接与电脑相同的Wi-Fi,在手机“设置→WLAN”中查看手机IP(如192.168.1.105);
2. 电脑抓包:Wireshark选择Wi-Fi接口,点击“捕获选项”,在“捕获过滤器”中输入 host 192.168.1.105 (只抓手机相关流量),点击“开始”;
3. 触发通信:手机打开浏览器访问电脑共享的文件(或用微信给电脑传文件);
4. 筛选查看:停止抓包后,用 ip.addr == 192.168.1.105 过滤,只显示手机与其他设备的交互包。

3. 特殊场景抓包(本机回环地址)

场景:抓本机程序间通信(如localhost:8080的服务)
1. 选接口:Wireshark中选择“Loopback: lo0”(Windows显示为“本地连接* 1”);
2. 开始抓包:点击鲨鱼鳍后,在本机浏览器访问 http://localhost:8080 ;
3. 过滤:输入 ip.addr == 127.0.0.1 ,即可看到本机内部的数据包流转。

四、过滤器精通(从基础到高级,附实例)

1. 显示过滤器(抓包后筛选,最常用)

核心语法: 字段 == 值 ,支持逻辑运算(and/or/not),以下为高频场景:

- 按协议筛选:
-  tcp :所有TCP协议包(如三次握手、数据传输);
-  udp :所有UDP协议包(如DNS查询);
-  arp :地址解析协议包(IP转MAC);
-  http :HTTP明文包(HTTPS需解密后显示)。
- 按IP/端口筛选:
-  ip.src == 192.168.1.100 :只显示源IP为192.168.1.100的包;
-  ip.dst == 223.5.5.5 :只显示目标IP为阿里云DNS的包;
-  tcp.port == 80 :只显示TCP 80端口(HTTP默认端口)的包;
-  udp.port == 53 :只显示UDP 53端口(DNS默认端口)的包。
- 组合筛选(精准定位):
-  ip.addr == 192.168.1.100 and tcp.port == 443 :本机与443端口(HTTPS)的TCP通信;
-  arp or dns :同时显示ARP和DNS协议包;
-  http and not ip.src == 192.168.1.2 :排除源IP为192.168.1.2的HTTP包。
- 高级筛选:
-  http.request.method == "GET" :只显示HTTP GET请求;
-  dns.contains "baidu.com" :显示DNS查询中包含“baidu.com”的包;
-  tcp.analysis.flags == 0x004 :显示TCP RST(连接重置)包(排查连接异常)。

2. 捕获过滤器(抓包前过滤,减少冗余)

语法与显示过滤器不同,常用规则:

-  host 192.168.1.100 :只抓与该IP相关的所有流量;
-  port 80 :只抓80端口的TCP/UDP流量;
-  src host 192.168.1.1 and dst port 53 :只抓源IP为192.168.1.1、目标端口为53的流量;
-  not arp :抓包时排除所有ARP协议包(避免无关数据干扰)。

五、协议解析入门(重点突破4个核心协议)

1. ARP协议(IP转MAC,局域网通信基础)

- 抓包步骤:
1. 终端输入 arp -d * 清空ARP缓存;
2. Wireshark过滤 arp ,开始抓包;
3. 终端输入 ping 192.168.1.1 (网关IP),触发ARP请求;
4. 停止抓包,可看到2个关键包:
- ARP Request(请求包):源MAC为本机,目标MAC为广播地址(ff:ff:ff:ff:ff:ff),Info显示“谁有192.168.1.1?告诉192.168.1.100”;
- ARP Reply(响应包):源MAC为网关,目标MAC为本机,Info显示“192.168.1.1的MAC是xx:xx:xx:xx:xx:xx”。

2. DNS协议(域名解析,互联网访问第一步)

- 抓包步骤:
1. 浏览器清空缓存,Wireshark过滤 dns ;
2. 访问 www.baidu.com ,停止抓包;
3. 分析数据包:
- DNS Query(查询包):源IP为本机,目标IP为DNS服务器(如223.5.5.5),Info显示“Standard query 0x0001 A www.baidu.com”(A记录查询);
- DNS Response(响应包):源IP为DNS服务器,包含百度的多个IP(如180.101.49.11),Info显示“Standard query response 0x0001 A www.baidu.com A 180.101.49.11”。

3. TCP协议(可靠传输,重点看三次握手/四次挥手)

- 抓包步骤:
1. Wireshark过滤 tcp and ip.addr == 192.168.1.100 ;
2. 访问 http://example.com ,停止抓包;
3. 找到TCP连接的前3个包(三次握手):
- 第一次握手(SYN):客户端→服务端,Flags=0x002(SYN),seq=0(初始序列号);
- 第二次握手(SYN+ACK):服务端→客户端,Flags=0x012(SYN+ACK),seq=0,ack=1(确认客户端序列号);
- 第三次握手(ACK):客户端→服务端,Flags=0x010(ACK),seq=1,ack=1(确认服务端序列号);
4. 连接关闭时的4个包(四次挥手):依次为FIN→ACK→FIN→ACK,Flags分别对应0x001(FIN)、0x010(ACK)。

4. HTTP协议(明文传输,可直接看内容)

- 抓包步骤:
1. Wireshark过滤 http ;
2. 访问 http://example.com ,停止抓包;
3. 分析关键包:
- HTTP Request(请求包):展开“Hypertext Transfer Protocol”,可看到请求行(GET / HTTP/1.1)、请求头(Host: example.com、User-Agent: 浏览器信息);
- HTTP Response(响应包):状态码200(成功),响应头(Content-Type: text/html),响应体(HTML代码,在“Line-based text data”中查看)。

六、实战练习(从简单到复杂,巩固技能)

1. 本机回环测试:抓 localhost:8080 的HTTP请求,用 ip.addr == 127.0.0.1 and http 过滤,验证请求头是否正确;
2. 跨设备通信测试:手机和电脑连同一Wi-Fi,抓手机访问 www.qq.com 的流量,用 ip.src == 手机IP 过滤,分析DNS解析和TCP握手过程;
3. 故障排查模拟:过滤 tcp.analysis.retransmission (TCP重传包),判断网络是否存在丢包;
4. HTTPS解密尝试:配合Fiddler导出证书,在Wireshark中“编辑→首选项→Protocols→SSL→RSA keys list”添加证书,解密HTTPS流量(需目标网站支持)。


文章来源: https://www.freebuf.com/articles/network/462190.html
如有侵权请联系:admin#unsafe.sh