Wireshark 具体某种协议的分析

以下是 Wireshark 针对特定协议的分析示例和详细配置教程,涵盖常见的 HTTP、DNS 和 TCP 协议。每种协议的分析过程略有不同,以下逐一介绍:


1. HTTP 协议分析

HTTP 协议是最常见的网络通信协议之一,用于分析网站请求和响应。

(1) 捕获 HTTP 流量
  1. 启动 Wireshark,选择合适的网络接口。

  2. 使用捕获过滤器只捕获 HTTP 流量:

    复制代码
    port 80
  3. 如果是 HTTPS,需要安装服务器私钥或使用浏览器的 TLS 会话密钥解密。

(2) 分析 HTTP 流量
  1. 显示过滤器 :捕获完成后,可以使用显示过滤器精确筛选:

    • 只显示 HTTP 请求和响应:

      复制代码
      http
    • 只显示 GET 请求:

      复制代码
      http.request.method == "GET"
    • 只显示 POST 请求:

      复制代码
      http.request.method == "POST"
  2. 查看 HTTP 请求/响应

    • 在数据包列表中找到 HTTP 请求,点击后查看下方的详细信息:
      • Request Line:包含请求方法(如 GET/POST)、URL 和协议版本。
      • Headers:如 Host、User-Agent、Cookie 等。
      • Body:POST 请求的参数或提交数据。
(3) 跟踪 HTTP 会话

右键点击一个 HTTP 数据包,选择 Follow > HTTP Stream,可以看到完整的请求和响应对话,包括:

  • 请求的 URL。
  • 服务器返回的状态码(如 200、404)。
  • 响应内容(HTML 页面、JSON 数据等)。

2. DNS 协议分析

DNS 用于域名解析,将域名转换为 IP 地址。

(1) 捕获 DNS 流量
  1. 启动捕获,设置捕获过滤器为:

    复制代码
    port 53

    这将只捕获 DNS 查询和响应数据包。

  2. 打开浏览器访问任意网站,产生 DNS 流量。

(2) 分析 DNS 流量
  1. 使用显示过滤器筛选 DNS 流量:

    复制代码
    dns
  2. 在数据包列表中,查看 DNS 查询和响应:

    • 查询(Query):显示客户端请求的域名。
    • 响应(Response):包含解析后的 IP 地址。
    • 常见字段:
      • Transaction ID:标识一次 DNS 请求和响应。
      • Query Name:请求的域名。
      • Answer Section:解析结果的 IP 地址。
(3) 定位 DNS 问题
  • 如果没有响应包,可能是 DNS 服务器不可用。
  • 检查是否有异常的域名请求(如可疑的恶意软件流量)。

3. TCP 协议分析

TCP 是一种面向连接的传输协议,常用于 HTTP、HTTPS 等。

(1) 捕获 TCP 流量
  1. 设置捕获过滤器为:

    复制代码
    tcp
  2. 开始捕获,运行一个基于 TCP 的应用程序(如浏览网页、FTP 传输)。

(2) 分析 TCP 数据包
  1. 使用显示过滤器筛选特定的 TCP 流量:

    • 只显示从指定 IP 发出的流量:

      复制代码
      ip.src == 192.168.1.1
    • 只显示某个端口的 TCP 流量:

      复制代码
      tcp.port == 443
  2. 检查 TCP 三次握手(Three-Way Handshake):

    • SYN:客户端发起连接请求。
    • SYN-ACK:服务器响应连接请求。
    • ACK:客户端确认。
  3. 检查数据包标志位:

    • RST:连接被重置。
    • FIN:连接正常关闭。
    • ACK:确认数据接收。
(3) 跟踪 TCP 会话
  • 右键点击一个 TCP 数据包,选择 Follow > TCP Stream
  • 查看整个会话的通信数据,例如 HTTP 请求的完整报文。
(4) 排查 TCP 问题
  • 丢包和重传
    • 查看数据包是否有 [TCP Retransmission]
  • 连接中断
    • 查看是否存在异常的 RST 标志。

4. 配置 HTTPS 解密(进阶)

HTTPS 流量需要解密才能分析具体内容。

(1) 前置条件
  • 拥有服务器的 SSL/TLS 私钥文件。
  • 或者获取浏览器的会话密钥(通过环境变量 SSLKEYLOGFILE)。
(2) 配置解密
  1. 打开 Wireshark,点击 Edit > Preferences
  2. 选择 Protocols > TLS
  3. (Pre)-Master-Secret log filename 中,指定会话密钥文件路径。
  4. 重新加载捕获的数据包,即可解密 HTTPS 流量。

5. 常见问题排查场景

(1) 网络延迟问题
  • 通过 TCP 流量,计算数据包的往返时间(RTT)。
  • 检查是否有 重传超时
(2) DNS 解析慢
  • 检查 DNS 查询和响应的时间差。
  • 查看是否有多次未响应的查询。
(3) HTTP 请求慢
  • 检查 HTTP 响应时间。
  • 分析是否是服务器处理时间过长导致。
(4) 异常流量
  • 检查是否有大量重复的请求(如 DoS 攻击)。
  • 查看是否存在未知域名的 DNS 请求。

总结

  • 针对不同协议的分析,Wireshark 提供了强大的过滤和解码功能。
  • 常用的过滤器和解码功能可以快速定位问题根因。
  • 如果需要更详细的教程,可以针对具体场景进一步展开!
相关推荐
程序员三藏16 分钟前
白盒测试和黑盒测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
儒道易行39 分钟前
平凡的2025年终总结
网络·安全·web安全
乾元1 小时前
数据中心流量工程(TE)优化:当 AI 成为解决“维度诅咒”的唯一操纵杆
运维·服务器·网络·人工智能·架构·自动化
代码游侠1 小时前
应用——基于C语言实现的简易Web服务器开发
运维·服务器·c语言·开发语言·笔记·测试工具
Andy工程师1 小时前
网络响应码(HTTP 状态码)和解析方法
网络·网络协议·http
heartbeat..2 小时前
JavaWeb 核心:HttpServletRequest 请求行、请求头、请求参数完整梳理
java·网络·web·request
YJlio2 小时前
网络与通信具总览(14.0):从 PsPing 到 TCPView / Whois 的联合作战
开发语言·网络·php
风途知识百科3 小时前
水质监测系统——手持便携式、在线自动化、浮标移动式、立杆固定式四大方案深度剖析
网络·水质
航Hang*3 小时前
第一章:网络系统建设与运维(高级)—— 多区域OSPF路由协议
运维·服务器·网络·笔记·智能路由器·ensp
hbugs0013 小时前
【EVE-NG流量洞察】包过滤规则
网络·eve-ng·bpf表达式·捕获过滤器·eve-ng模拟器