找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3289

积分

1

好友

443

主题
发表于 昨天 22:50 | 查看: 4| 回复: 0

Wireshark作为一款强大的网络封包分析软件,凭借其蓝色鲨鱼鳍的经典图标而广为人知。它能够截获流经网卡的网络数据包,并提供极为详尽的分析视图,是网络工程师和安全分析师进行故障排查、协议学习和性能分析的必备利器。本文将系统性地介绍Wireshark的核心界面、抓包流程、过滤器使用,并通过一个具体的TCP三次握手案例,帮助你快速上手这款工具。

Wireshark主界面概览

启动Wireshark后,你会看到一个功能分区明确的主界面。整个界面主要分为以下几个核心区域:

  1. 显示过滤器 (Display Filter)栏:位于顶部工具栏下方,输入框旁有提示“Apply a display filter ... <Ctrl+/>”。在这里可以输入过滤表达式,对已捕获的数据包列表进行筛选,是分析时最常用的功能之一。
  2. 数据包列表 (Packet List Pane):主窗口区域,以表格形式列出所有捕获到的数据包。每一行代表一个数据包,包含以下关键列:
    • No.: 数据包序号
    • Time: 捕获时间戳
    • Source: 源IP地址
    • Destination: 目的IP地址
    • Protocol: 协议类型(如TCP、UDP、ICMP、HTTP等)
    • Length: 数据包长度
    • Info: 数据包概要信息
  3. 数据包详情 (Packet Details Pane):位于数据包列表下方。当你单击列表中的某个数据包时,此处会以树状结构分层展示该数据包的所有协议字段信息,从最底层的物理帧到最高层的应用数据一目了然。
  4. 数据包字节 (Packet Bytes Pane):位于最底部,以十六进制和ASCII码形式展示数据包的原始字节内容。

第一次抓包:以Ping为例

让我们通过一个最简单的例子——捕获Ping命令的ICMP数据包,来熟悉抓包流程。

  1. 选择网卡:点击菜单栏 Capture -> Options(或工具栏上的齿轮图标),打开捕获接口设置窗口。在接口列表中,选择你正在使用的活动网卡(例如名为“Microsoft WLAN”的无线网卡,其IP地址为192.168.1.104)。你可以勾选“Enable promiscuous mode on all interfaces”(混杂模式)以捕获所有流经网卡的数据包,但通常不设置特定捕获过滤器即可开始。
  2. 开始捕获:点击 Start 按钮,Wireshark立即开始捕获经过所选网卡的所有网络数据包。
  3. 执行操作:打开命令提示符,执行 ping www.baidu.com。命令会显示类似以下结果:
    正在 Ping www.a.shifen.com [119.75.217.26] 具有 32 字节的数据:
    来自 119.75.217.26 的回复: 字节=32 时间=20ms TTL=53
  4. 停止并过滤:返回Wireshark,点击红色停止按钮。此时数据包列表区可能充满了各种协议的数据包。为了只查看我们关心的Ping包,在显示过滤器栏中输入:ip.addr == 119.75.217.26 and icmp。这个表达式表示只显示源或目的IP为119.75.217.26,且协议为ICMP的数据包。
  5. 查看结果:应用过滤器后,列表中将清晰地显示一请求一响应的ICMP数据包对。例如: No. Source Destination Protocol Info
    1 192.168.1.104 119.75.217.26 ICMP Echo (ping) request
    2 119.75.217.26 192.168.1.104 ICMP Echo (ping) reply

至此,你已成功完成了第一次抓包和分析。

深入理解数据包详情

点击列表中的一个ICMP请求包,查看数据包详情面板。这里按照网络分层模型,自底向上地解析了整个数据帧:

  • Frame (物理层帧):显示该帧的捕获时间、长度等物理信息。
  • Ethernet II (数据链路层):显示源和目的MAC地址。
  • Internet Protocol Version 4 (网络层/IP):显示源IP (192.168.1.104)、目的IP (119.75.217.26)、TTL等IP头信息。
  • Internet Control Message Protocol (ICMP):这是核心,显示Type为8(回显请求)、Code为0、以及序列号(Sequence number)等信息。

通过这个面板,你可以透彻地理解每一个数据包的构成。Wireshark会使用不同颜色高亮不同协议的数据包,颜色规则可以通过 View -> Coloring Rules 查看和定制。例如,其中一条规则可能是“ICMP errors”,其过滤表达式为 icmp.type eq 3 || icmp.type eq 4 || icmp.type eq 5 || icmp.type eq 11

过滤器的艺术:精准定位数据

面对海量数据包,过滤器是Wireshark的灵魂。它分为两种:捕获过滤器和显示过滤器。

捕获过滤器 (Capture Filter)
在开始捕获前设置,语法相对严格,遵循BPF格式。在 Capture -> Capture Filters 中可以管理预设规则。例如,若只想捕获与特定主机的ICMP流量,可以在接口设置界面的“Capture filter for selected interfaces”框中输入:host 60.207.246.216 and icmp。这样,抓包结果从一开始就只包含符合条件的数据包,非常高效。

显示过滤器 (Display Filter)
在捕获后使用,语法更直观灵活,是日常分析的主要工具。

常用过滤表达式示例:

  • 协议过滤tcp, http, dns
  • IP地址过滤
    • ip.src == 192.168.1.104 (源IP)
    • ip.dst == 192.168.1.104 (目的IP)
    • ip.addr == 192.168.1.104 (任一IP)
  • 端口过滤
    • tcp.port == 80 (源或目的端口)
    • tcp.srcport == 80 (源端口)
    • udp.dstport == 53 (目的端口)
  • 组合逻辑:使用 andornot
    • ip.addr == 192.168.1.104 and tcp.port == 443
  • HTTP方法过滤http.request.method == "GET"
  • 内容过滤tcp contains “HTTP”frame contains “abcd”

你可以直接在过滤器栏输入,也可以右键点击数据包详情中的某个字段,选择“Apply as Filter”来快速生成过滤条件。

实战案例:剖析TCP三次握手

TCP三次握手是建立可靠连接的基础。我们以访问一个网站为例,用Wireshark观察这一过程。

  1. 开始抓包,在浏览器中访问一个网站(如 www.huawei.com)。
  2. 使用 ping www.huawei.com 获取其IP地址(例如 211.162.2.183)。
  3. 在Wireshark过滤器中输入:ip.addr == 211.162.2.183 and tcp。你将看到一系列TCP数据包,其中最前面的三个就是三次握手。

第一次握手 - [SYN]
客户端(你的电脑)发送一个TCP包。

  • 关键标志Flags: 0x002 (SYN)
  • Seq(序列号):一个随机初始值,例如 Seq=0 (相对值)。
  • Ack(确认号):0
  • Info列显示[SYN] Seq=0 Win=65535 Len=0

第二次握手 - [SYN, ACK]
服务器收到SYN包后,回应一个包。

  • 关键标志Flags: 0x012 (SYN, ACK)
  • Seq:服务器端的随机初始序列号。
  • Ack:值为 客户端Seq + 1,即 Ack=1。这表示服务器期望下次收到客户端序列号为1的数据。
  • Info列显示[SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0

第三次握手 - [ACK]
客户端再次发送确认包。

  • 关键标志Flags: 0x010 (ACK)
  • Seq:值为 1(即第一次握手的Seq+1)。
  • Ack:值为 服务器Seq + 1,即 Ack=1
  • Info列显示[ACK] Seq=1 Ack=1 Win=262144 Len=0

至此,TCP连接建立成功,随后便开始传输HTTP等应用层数据。在数据包详情面板的TCP层,你可以清晰看到 Sequence numberAcknowledgment number 以及 Flags 字段的具体值,与理论完美对应。

通过Wireshark,网络通信不再是黑盒。无论是排查连接故障、分析协议交互,还是学习网络原理,它都是一个不可或缺的窗口。结合丰富的过滤器和详细的数据包解析,你可以深入网络的每一个角落,成为一名真正的网络侦探

参考资料

[1] Wireshark的抓包和分析,看这篇就够了!, 微信公众号:mp.weixin.qq.com/s/---fcYsl4T84HdJXYa-nhQ

版权声明:本文由 云栈社区 整理发布,版权归原作者所有。




上一篇:Skills工程精讲:Claude Skills如何赋予AI代理专业化执行能力
下一篇:向量数据库核心技术:面向RAG与语义搜索的深度解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-10 02:39 , Processed in 0.354677 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表