贝博恩创新科技网

Wireshark 2.2.6教程,新手如何快速上手抓包分析?

Wireshark 2.2.6 完整教程

前言:为什么是 Wireshark?

Wireshark 被誉为“网络世界的显微镜”,它是一款开源的协议分析器,能够捕获并实时显示通过网络的数据包,无论你是网络管理员、程序员、安全工程师,还是一名对网络技术充满好奇的学生,Wireshark 都是你不可或缺的强大工具。

Wireshark 2.2.6教程,新手如何快速上手抓包分析?-图1
(图片来源网络,侵删)

本教程将带你从零开始,一步步掌握 Wireshark 的核心用法。


第一部分:准备工作

在开始之前,请确保你已经完成了以下步骤:

  1. 下载并安装 Wireshark 2.2.6

    • 由于版本较旧,你可能无法从官网直接下载,可以从一些软件存档网站(如 oldversion.com)搜索并下载。
    • 安装时务必勾选 "Install WinPcap" 选项! WinPcap 是一个数据包捕获库,是 Wireshark 能够捕获网络流量的基础,没有它,Wireshark 无法工作。
    • 按照安装向导完成安装即可。
  2. 了解你的网络环境

    Wireshark 2.2.6教程,新手如何快速上手抓包分析?-图2
    (图片来源网络,侵删)
    • 有线连接 vs. 无线连接:如果你使用有线连接(网线直连),Wireshark 默认会捕获所有经过网卡的数据,如果你使用 Wi-Fi,默认只能捕获连接到同一个 Wi-Fi 下的广播数据包和你自己设备的通信数据,要捕获所有 Wi-Fi 流量,需要将网卡设置为“混杂模式”(Promiscuous Mode),这通常需要管理员权限。
    • 选择正确的网卡:一台电脑可能有多个网络接口(有线、无线、虚拟网卡等),捕获前必须选择你想要监听的那个网卡。

第二部分:首次启动与界面概览

打开 Wireshark 2.2.6,你会看到如下界面:

这个界面主要分为三个部分:

  1. 捕获接口列表

    • 位于顶部左侧,列出了你电脑上所有可用的网络接口。
    • 在每个接口旁边,会显示一些实时统计信息,如数据包接收速率 (Pkt/s)、带宽 (Mbps)。
    • 关键操作:点击你想要监听的网卡左侧的 开始捕获 按钮(一个蓝色鲨鱼鳍图标),或者直接双击该网卡。
  2. 数据包列表

    Wireshark 2.2.6教程,新手如何快速上手抓包分析?-图3
    (图片来源网络,侵删)
    • 位于顶部右侧,是捕获到的数据包的“目录”。
    • 每一行代表一个数据包,并显示关键信息:
      • No.:数据包序号。
      • Time:捕获时间戳。
      • Source:源 IP 地址或 MAC 地址。
      • Destination:目标 IP 地址或 MAC 地址。
      • Protocol:使用的协议(如 TCP, UDP, ICMP, DNS, HTTP 等)。
      • Length:数据包长度。
      • Info:关于该数据包的额外摘要信息。
  3. 数据包详情

    • 位于底部左侧,是选中数据包的“解剖图”。
    • 它以树状结构(协议栈)展示了数据包的完整封装结构,从物理层(以太网帧)到应用层(HTTP 请求)。
    • 你可以点击每一层(如 Ethernet II, Internet Protocol Version 4, Transmission Control Protocol)来查看该层的详细字段。
  4. 数据包字节

    • 位于底部右侧,是选中数据包的“原始形态”。
    • 上半部分以十六进制显示数据,下半部分以 ASCII 字符显示可读部分。
    • 这是分析应用层数据(如 HTTP 请求内容、DNS 查询域名)的关键区域。

第三部分:核心操作

开始与停止捕获

  • 开始捕获:如前所述,点击网卡旁边的 开始捕获 按钮。
  • 停止捕获:点击工具栏上的红色 停止 按钮。
  • 重新开始捕获:点击工具栏上的 重新开始 按钮(一个循环箭头),这会清空当前捕获列表并开始新的捕获。

建议:在分析特定问题时,先停止捕获,分析完后再重新开始,这样可以保持列表的整洁。

使用过滤器

过滤器是 Wireshark 的灵魂,能帮你从海量数据包中快速找到目标。

A. 显示过滤器 这是最常用、最高效的过滤器,它只显示符合条件的数据包,而不删除其他数据。

  • 语法:使用类似编程语言的语法,但非常直观。
  • 位置:在工具栏下方有一个标有 "Filter:" 的输入框。

常用过滤器示例:

过滤器表达式 说明
http 显示所有 HTTP 协议的数据包。
dns 显示所有 DNS 协议的数据包。
ip.addr == 192.168.1.100 显示源或目标 IP 地址为 168.1.100 的所有数据包。
tcp.port == 80 显示源或目标端口为 80 (HTTP) 的所有 TCP 数据包。
tcp.port == 443 显示所有 HTTPS 流量。
icmp 显示所有 ICMP 协议的数据包(如 ping 命令)。
dns and ip.addr == 8.8.8.8 显示与 Google DNS 服务器 (8.8.8) 的所有 DNS 通信。
tcp.flags.syn == 1 显示所有 TCP 握手中的 SYN 包(用于发起新连接)。
tcp.stream eq 0 显示属于第一个 TCP 会话的所有数据包。

B. 捕获过滤器 这个过滤器在数据包被捕获到内存之前就进行筛选,可以极大地减少系统资源占用,但功能比显示过滤器弱。

  • 语法:使用 tcpdump 的语法。
  • 位置:在开始捕获前,点击 捕获选项 按钮(一个齿轮图标),在弹出的窗口中设置。

常用捕获过滤器示例:

过滤器表达式 说明
host 192.168.1.100 只捕获与 168.1.100 相关的流量。
port 80 只捕获端口 80 的流量。
tcp 只捕获 TCP 流量。
src host 192.168.1.1 and dst port 22 只捕获来自 168.1.1 且目标端口为 22 (SSH) 的 TCP 流量。

技巧:不确定语法?在 捕获选项 窗口中,有一个 表达式... 按钮,可以帮你构建过滤器。


第四部分:实战分析

让我们通过几个常见的场景来实践。

分析网页访问过程

  1. 设置过滤器:在显示过滤器中输入 http,然后开始捕获。
  2. 访问网页:打开浏览器,访问一个网站,http://www.baidu.com
  3. 观察数据包
    • 你会看到很多 TCP 数据包,因为 HTTP 基于 TCP。
    • 找到一个 TCP 协议的数据包,在 数据包详情 窗口中展开它,你会看到 Transmission Control Protocol -> Hypertext Transfer Protocol
    • 点击 Hypertext Transfer Protocol,在下方窗口就能看到 HTTP 请求的详细信息,GET / HTTP/1.1
    • 你还可以在 数据包字节 窗口中看到更原始的请求内容。
  4. 分析 DNS 查询:清空过滤器,输入 dns,你会发现,在访问网页之前,有一个或多个 DNS 查询数据包,用于将 www.baidu.com 解析为 IP 地址。

分析 TCP 三次握手

  1. 设置过滤器:输入 tcp.port == 80 (或你正在访问的网站端口)。
  2. 访问网页:再次访问一个网站。
  3. 查找握手包
    • 在数据包列表中,找到连续的三个 TCP 包。
    • 查看 Info 列,通常会显示 [TCP SYN], [TCP SYN, ACK], [TCP ACK]
    • 第一次握手 (SYN):客户端向服务器发送一个 SYN 包,请求建立连接,在 tcp.flags 中,你会看到 syn 标志位为 1
    • 第二次握手 (SYN-ACK):服务器收到 SYN 后,回复一个 SYN-ACK 包,表示同意连接。synack 标志位都为 1
    • 第三次握手 (ACK):客户端收到 SYN-ACK 后,再发送一个 ACK 包,连接建立。ack 标志位为 1

追踪 TCP 流

当一个 TCP 会话产生大量数据包时,逐个分析会很麻烦,Wireshark 可以将一个完整的会话重组在一起。

  1. 找到流:在数据包列表中,找到属于同一个 TCP 会话的任意一个数据包(一个 HTTP 请求包)。
  2. 追踪流:右键点击该数据包,选择 追踪 -> TCP 流
  3. 查看结果:会弹出一个新窗口,将这个 TCP 会话的所有数据包按时间顺序重组,清晰地显示了客户端和服务器之间的完整对话内容(如 HTTP 请求和响应),这对于调试应用层问题非常有用。

第五部分:高级技巧与注意事项

  • 重新组装数据:对于被分片或加密(如 TLS/SSL)的数据,Wireshark 可以尝试重新组装,在 数据包详情 窗口中,右键点击协议层(如 TCPTLS),选择 重新组装
  • 导出数据:你可以将感兴趣的数据包列表或数据包内容导出为文本、CSV 或其他格式,选择 文件 -> 导出指定数据包
  • 颜色规则:Wireshark 使用颜色来区分不同类型的数据包,方便快速识别。
    • 黑色:TCP
    • 蓝色:DNS
    • 青色:UDP
    • 你可以自定义颜色规则:通过 视图 -> 着色规则
  • 注意事项
    • 法律和道德未经授权捕获和分析他人的网络流量是违法的! 请务必在获得授权的网络(如你自己的家庭、公司网络)或用于学习目的下使用 Wireshark。
    • 性能:在高流量网络下捕获可能会消耗大量 CPU 和内存,建议使用捕获过滤器,并及时停止捕获。
    • 敏感信息:捕获的数据包中可能包含密码、账号等敏感信息,请妥善处理你的捕获文件。

这份教程涵盖了 Wireshark 2.2.6 的核心功能,要真正掌握它,最好的方法就是多动手实践

  • 从简单的 ping 命令开始,捕获并分析 ICMP 包。
  • traceroutetracert 命令,观察沿途的路由器是如何回复 ICMP 超时包的。
  • 尝试使用 nslookupdig 命令,观察 DNS 查询的完整过程。

Wireshark 是一个功能极其强大的工具,本教程只是带你入门,随着你经验的积累,你会发现它在网络故障排查、性能优化、安全分析等领域的无穷魅力,祝你学习愉快!

分享:
扫描分享到社交APP
上一篇
下一篇