winshark抓包

常用操作

------------------过滤-------------------------
运算符号-比较		==, !=, >, <, >=, <=, 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 安装步骤(必做)

  1. 管理员身份运行安装包,同意协议 → 下一步
  2. 组件选择:必须勾选 Npcap(抓包核心驱动,替代旧 WinPcap),可选 TShark、USBPcap、桌面图标
  3. Npcap 安装:勾选 Install Npcap in WinPcap API-compatible ModeSupport raw 802.11 traffic(无线抓包)、Install Npcap for all users
  4. 完成安装 → 重启电脑(驱动生效必须重启)
  5. 验证:打开 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 443

2.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 == 443

2.4 界面优化

  • 隐藏无用列:视图 → 列 → 只保留 No.、Time、Source、Destination、Protocol、Length、Info
  • 时间格式:视图 → 时间显示格式 → 选「Seconds since beginning of capture」(便于算延迟)
  • 配色:视图 → 着色规则 → 启用默认着色(TCP 异常标红、UDP 标蓝)

三、核心抓包场景(实战步骤 + 过滤 + 分析)

场景 1:HTTP/HTTPS 接口调试(配合 Fiddler)

目标:抓浏览器 / 客户端 HTTP 请求、响应、状态码、Cookie

  1. 抓包设置
    • 网卡:选当前联网网卡
    • 抓包过滤器:tcp port 80 or tcp port 443
    • 开始抓包 → 操作浏览器 / 客户端(访问网页、调用接口)
  2. 过滤与查看
    • 显示过滤器:httptls(HTTPS 加密,需解密)
    • 选中包 → 下方「Packet Details」展开:
      • Hypertext Transfer Protocol:查看请求方法 (GET/POST)、URL、Header、Body
      • 右键包 → Follow → HTTP Stream:查看完整请求 / 响应明文
  3. HTTPS 解密(关键)
    • 配置 SSL 密钥日志:
      1. 系统环境变量:新建 SSLKEYLOGFILE,值设为路径(如 C:\sslkey.log
      2. Wireshark → 编辑 → 首选项 → Protocols → TLS → (Pre)-Master-Secret log filename:填入该路径
      3. 重启 Wireshark + 浏览器,重新抓包 → HTTPS 自动解密为明文

场景 2:TCP 三次握手 / 四次挥手、丢包 / 重传排查

目标:分析连接建立、断开、延迟、丢包、重传

  1. 抓包设置
    • 抓包过滤器:tcp port 目标端口(如 80、3389)
    • 开始抓包 → 执行连接操作(访问网站、远程桌面)
  2. 核心分析
    • 三次握手:看标志位(SYN、SYN+ACK、ACK)
      • 1→2:SYN(客户端发起)
      • 2→1:SYN+ACK(服务器响应)
      • 1→2:ACK(连接建立)
    • 异常判断:
      • 大量 TCP Retransmission(重传)→ 网络丢包、带宽不足
      • TCP Dup ACK → 乱序、丢包
      • TCP ZeroWindow → 接收方缓冲区满、处理慢
  3. 过滤:tcp.analysis.retransmission(只看重传包)

场景 3:DNS 解析故障排查

目标:查域名解析是否正常、是否污染、延迟

  1. 抓包设置
    • 抓包过滤器:udp port 53
    • 开始抓包 → 执行 ping 域名nslookup 域名
  2. 分析
    • 显示过滤器:dns
    • 查看:DNS Query(查询)、DNS Response(响应)、A 记录(IP)、响应时间
    • 异常:无响应、返回错误 IP、超时 → DNS 服务器问题、网络拦截

场景 4:本机回环(127.0.0.1)抓包(本地服务调试)

目标:抓本地 Web/API 服务(如localhost:8080

  1. 前提:必须安装 Npcap
  2. 网卡选择:选「Adapter for loopback traffic capture」
  3. 过滤器:tcp port 8080(替换为你的本地端口)
  4. 操作:启动本地服务 → 访问localhost → 抓包分析

场景 5:ICMP(ping)连通性测试

目标:查 ping 是否通、延迟、丢包

  1. 抓包过滤器:icmp
  2. 开始抓包 → 执行 ping 目标IP/域名
  3. 分析:查看 ICMP Echo Request(请求)、Echo Reply(响应)、时间戳、丢包

四、常用操作与保存

  1. 停止抓包:点红色方块(Stop)
  2. 保存抓包:文件 → 保存 → 格式选 .pcapng(通用)
  3. 导出流:右键包 → Follow → TCP/UDP/HTTP Stream → 保存为文本
  4. 统计:统计 → Conversations(IP / 端口会话)、IO Graphs(流量带宽)

五、与 Fiddler 配合最佳实践

  • Fiddler:负责应用层 HTTP/HTTPS 调试、修改请求、Mock、弱网
  • Wireshark:负责底层网络排查、TCP/DNS/ 丢包、非 HTTP 协议
  • 流程:接口报错 → Fiddler 看请求 / 响应是否正确 → 异常 → Wireshark 查 TCP 握手、丢包、DNS