- 下载渠道:官网(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 。
- 作用:替代旧版WinPcap,支持无线网卡、loopback本机抓包,是Wireshark识别网络接口的“桥梁”。
- 独立安装(若未勾选):官网(npcap.com)下载最新版,安装时勾选“Support raw 802.11 traffic (and monitor mode)”,支持无线流量捕获。
- 常见问题:安装后仍无法识别网卡,需重启电脑,或在设备管理器中更新“网络适配器”驱动。
- 协议调试:SecureCRT(远程连接网络设备,同步抓包)、ENSP(华为仿真器,模拟复杂网络拓扑);
- 数据解析:Fiddler(配合Wireshark解密HTTPS流量)、Notepad++(打开.pcap文件查看文本格式数据);
- 命令行辅助:Windows终端(用 ipconfig /all 查IP/MAC)、Linux终端(用 ifconfig 查网络接口)。
打开Wireshark后,5个核心区域的“实用功能”的详细说明如下:
- 菜单栏:

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

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

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

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

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

- 左侧十六进制(机器识别格式),右侧ASCII码(可读文本);
- 选中详情中的某一字段,字节区对应位置会高亮,比如选中HTTP的“Content-Length”,可直接看到其值的十六进制表示。
1. 查接口:打开终端输入 ipconfig /all ,记录本机IP(如192.168.1.100)和正在使用的网络接口(Wi-Fi/以太网);
2. 选接口:Wireshark左侧接口列表中,点击目标接口右侧的“开始”图标(不用点顶部鲨鱼鳍);
3. 触发流量:打开浏览器访问 http://example.com (HTTP明文网站,便于分析),加载完成后返回Wireshark;
4. 停止保存:点击红色方块停止抓包,按 Ctrl+S 保存为.pcapng格式(支持后续编辑),文件名建议含场景(如“本机HTTP抓包_20250101”)。
场景:抓手机与电脑的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 过滤,只显示手机与其他设备的交互包。
场景:抓本机程序间通信(如localhost:8080的服务)
1. 选接口:Wireshark中选择“Loopback: lo0”(Windows显示为“本地连接* 1”);
2. 开始抓包:点击鲨鱼鳍后,在本机浏览器访问 http://localhost:8080 ;
3. 过滤:输入 ip.addr == 127.0.0.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(连接重置)包(排查连接异常)。
语法与显示过滤器不同,常用规则:
- 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协议包(避免无关数据干扰)。
- 抓包步骤:
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”。
- 抓包步骤:
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”。
- 抓包步骤:
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)。
- 抓包步骤:
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流量(需目标网站支持)。