常用操作
------------------过滤-------------------------
运算符号-比较 ==, !=, >, <, >=, <=, contains "", matches ".*\\.json$", bitwise_and 0x02
运算符号-逻辑 &&, and, ‖, !, ()
运算符号-特殊 in {80, 443, 8080} 范围, eth.src[0:3] 切片, (?i) 表示忽略大小写
字符过滤-返回 frame contains "600000"
IP过滤 host 192.168.1.104
IP过滤-源 src host 192.168.1.104
IP过滤-目标 dst host 192.168.1.104
Port过滤 port 80
Port过滤-源 src port 80
Port过滤-目标 dst port 80
一、安装(Windows 为主,含跨平台)
1.1 官方下载(唯一安全源)
官网:https://www.wireshark.org/download.html
- Windows:下载 Wireshark-win64-x.x.x.exe(64 位,Win10/11)
- macOS:下载 DMG 镜像
- Linux(Ubuntu/Debian):
sudo apt update && sudo apt install wireshark tshark
1.2 Windows 安装步骤(必做)
- 以管理员身份运行安装包,同意协议 → 下一步
- 组件选择:必须勾选 Npcap(抓包核心驱动,替代旧 WinPcap),可选 TShark、USBPcap、桌面图标
- Npcap 安装:勾选 Install Npcap in WinPcap API-compatible Mode、Support raw 802.11 traffic(无线抓包)、Install Npcap for all users
- 完成安装 → 重启电脑(驱动生效必须重启)
- 验证:打开 Wireshark,能看到以太网 / Wi‑Fi 网卡列表即成功
1.3 权限与避坑
- Windows:必须管理员启动,否则抓不到流量、识别不到网卡
- Linux:安装时选「Yes」允许非 root 抓包;或执行
sudo chmod +x /usr/bin/dumpcap - 不装 Npcap:无法抓无线、本地回环(127.0.0.1)流量
二、基础设置(抓包前必配)
2.1 选择网卡(最关键)
打开 Wireshark → 主界面网卡列表:
- 有线:选「以太网」「Ethernet」
- 无线:选「Wi‑Fi」「WLAN」
- 本机回环(抓本地服务,如 127.0.0.1:8080):选「Adapter for loopback traffic capture」(Npcap 提供)
- 开始抓包:双击网卡 / 点左上角鲨鱼鳍图标(Start)
2.2 抓包过滤器(Capture Filter,抓前过滤,减少冗余)
位置:Capture → Options → Capture Filter(BPF 语法)常用规则(直接复制):
# 只抓TCP 80/443(HTTP/HTTPS)
tcp port 80 or tcp port 443
# 只抓指定IP(源/目标)
host 192.168.1.100
# 只抓源IP
src host 192.168.1.100
# 只抓目标IP
dst host 192.168.1.100
# 只抓ICMP(ping)
icmp
# 只抓DNS(53端口)
udp port 53
# 组合:IP+端口
host 192.168.1.100 and tcp port 4432.3 显示过滤器(Display Filter,抓后筛选,精准定位)
位置:顶部过滤栏(Wireshark 专用语法,比 BPF 更灵活)常用规则:
# 协议过滤
http https dns icmp tcp udp
# IP过滤
ip.addr == 192.168.1.100
ip.src == 192.168.1.100
ip.dst == 192.168.1.100
# 端口过滤
tcp.port == 80 tcp.port == 443 udp.port == 53
# 状态码(HTTP)
http.response.code == 200 http.response.code == 404
# 组合过滤
ip.addr == 192.168.1.100 and tcp.port == 4432.4 界面优化
- 隐藏无用列:视图 → 列 → 只保留 No.、Time、Source、Destination、Protocol、Length、Info
- 时间格式:视图 → 时间显示格式 → 选「Seconds since beginning of capture」(便于算延迟)
- 配色:视图 → 着色规则 → 启用默认着色(TCP 异常标红、UDP 标蓝)
三、核心抓包场景(实战步骤 + 过滤 + 分析)
场景 1:HTTP/HTTPS 接口调试(配合 Fiddler)
目标:抓浏览器 / 客户端 HTTP 请求、响应、状态码、Cookie
- 抓包设置
- 网卡:选当前联网网卡
- 抓包过滤器:
tcp port 80 or tcp port 443 - 开始抓包 → 操作浏览器 / 客户端(访问网页、调用接口)
- 过滤与查看
- 显示过滤器:
http或tls(HTTPS 加密,需解密) - 选中包 → 下方「Packet Details」展开:
- Hypertext Transfer Protocol:查看请求方法 (GET/POST)、URL、Header、Body
- 右键包 → Follow → HTTP Stream:查看完整请求 / 响应明文
- 显示过滤器:
- HTTPS 解密(关键)
- 配置 SSL 密钥日志:
- 系统环境变量:新建
SSLKEYLOGFILE,值设为路径(如C:\sslkey.log) - Wireshark → 编辑 → 首选项 → Protocols → TLS → (Pre)-Master-Secret log filename:填入该路径
- 重启 Wireshark + 浏览器,重新抓包 → HTTPS 自动解密为明文
- 系统环境变量:新建
- 配置 SSL 密钥日志:
场景 2:TCP 三次握手 / 四次挥手、丢包 / 重传排查
目标:分析连接建立、断开、延迟、丢包、重传
- 抓包设置
- 抓包过滤器:
tcp port 目标端口(如 80、3389) - 开始抓包 → 执行连接操作(访问网站、远程桌面)
- 抓包过滤器:
- 核心分析
- 三次握手:看标志位(SYN、SYN+ACK、ACK)
- 1→2:SYN(客户端发起)
- 2→1:SYN+ACK(服务器响应)
- 1→2:ACK(连接建立)
- 异常判断:
- 大量
TCP Retransmission(重传)→ 网络丢包、带宽不足 TCP Dup ACK→ 乱序、丢包TCP ZeroWindow→ 接收方缓冲区满、处理慢
- 大量
- 三次握手:看标志位(SYN、SYN+ACK、ACK)
- 过滤:
tcp.analysis.retransmission(只看重传包)
场景 3:DNS 解析故障排查
目标:查域名解析是否正常、是否污染、延迟
- 抓包设置
- 抓包过滤器:
udp port 53 - 开始抓包 → 执行
ping 域名或nslookup 域名
- 抓包过滤器:
- 分析
- 显示过滤器:
dns - 查看:DNS Query(查询)、DNS Response(响应)、A 记录(IP)、响应时间
- 异常:无响应、返回错误 IP、超时 → DNS 服务器问题、网络拦截
- 显示过滤器:
场景 4:本机回环(127.0.0.1)抓包(本地服务调试)
目标:抓本地 Web/API 服务(如localhost:8080)
- 前提:必须安装 Npcap
- 网卡选择:选「Adapter for loopback traffic capture」
- 过滤器:
tcp port 8080(替换为你的本地端口) - 操作:启动本地服务 → 访问localhost → 抓包分析
场景 5:ICMP(ping)连通性测试
目标:查 ping 是否通、延迟、丢包
- 抓包过滤器:
icmp - 开始抓包 → 执行
ping 目标IP/域名 - 分析:查看 ICMP Echo Request(请求)、Echo Reply(响应)、时间戳、丢包
四、常用操作与保存
- 停止抓包:点红色方块(Stop)
- 保存抓包:文件 → 保存 → 格式选 .pcapng(通用)
- 导出流:右键包 → Follow → TCP/UDP/HTTP Stream → 保存为文本
- 统计:统计 → Conversations(IP / 端口会话)、IO Graphs(流量带宽)
五、与 Fiddler 配合最佳实践
- Fiddler:负责应用层 HTTP/HTTPS 调试、修改请求、Mock、弱网
- Wireshark:负责底层网络排查、TCP/DNS/ 丢包、非 HTTP 协议
- 流程:接口报错 → Fiddler 看请求 / 响应是否正确 → 异常 → Wireshark 查 TCP 握手、丢包、DNS