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

1426

积分

0

好友

208

主题
发表于 5 天前 | 查看: 17| 回复: 0

Wireshark是一款功能强大的网络封包分析软件。它能捕获流经网卡的数据报文,并以尽可能详细的方式展示网络封包的各类信息。作为网络封包与流量分析领域的利器,它深受网络工程师和分析师的青睐。

本文将系统介绍Wireshark的核心使用方法,主要内容包括:

  1. Wireshark主界面构成解析。
  2. 简单抓包示例,学习如何捕获并初步分析数据包。
  3. 过滤器的深度使用,包括协议过滤、端口/IP过滤以及数据包内容过滤。

Wireshark软件与主界面概览

首先,我们来认识Wireshark。下图展示了Wireshark启动后的主界面:
Wireshark主界面

这个界面是进行所有分析操作的基础,下图对其主要区域进行了标注:
Wireshark主界面区域说明

一个简单的抓包示例

  1. 启动抓包:点击菜单栏的 Capture -> Options,选择正在使用的网卡(例如WLAN),然后点击 Start 按钮。
    启动抓包
  2. 执行操作:Wireshark处于抓包状态后,执行需要监控的网络操作,例如在命令行中执行 ping www.baidu.com
  3. 停止与过滤:操作完成后,点击停止按钮。为避免无关数据包干扰,可在过滤栏输入条件。例如,输入 ip.addr == 119.75.217.26 and icmp 可以只显示与百度服务器IP相关且协议为ICMP的数据包。
    过滤结果显示

至此,一个完整的抓包流程就完成了。接下来,我们深入了解界面和过滤功能。

Wireshark抓包界面详解

主界面的数据包列表会使用不同颜色区分协议,颜色规则可以在 View -> Coloring Rules 中查看和定制。
颜色规则

界面主要分为四个部分:

  1. 显示过滤器 (Display Filter):用于对已捕获的数据包列表进行筛选。相关设置路径:Analyze -> Display Filters
    显示过滤器

  2. 数据包列表 (Packet List Pane):显示所有捕获到的数据包,包含编号、时间戳、源/目的地址、协议、长度和概要信息。
    数据包列表

  3. 数据包详情 (Packet Details Pane):选中列表中的某个数据包后,此处会分层显示该数据包的所有详细信息,这是协议分析的核心区域。通常包括:

    • Frame: 物理层数据帧概况。
    • Ethernet II: 数据链路层以太网帧头部。
    • Internet Protocol Version 4: 网络层IP包头。
    • Transmission Control Protocol: 传输层TCP段头部。
    • 应用层协议 (如Hypertext Transfer Protocol): 应用层信息。
      数据包详情

    例如,展开一个TCP包的详情,可以看到每个字段的具体值,理解这些字段对于网络协议分析至关重要。
    TCP包详情

  4. 数据包字节 (Packet Bytes Pane): 以十六进制和ASCII码形式显示数据包的原始字节。

Wireshark过滤器设置详解

面对海量数据包,过滤器能帮助我们快速定位目标。Wireshark提供两种过滤器:抓包过滤器和显示过滤器。

抓包过滤器 (Capture Filters)

在开始捕获前设置,用于决定哪些数据包被捕获进来。路径:Capture -> Capture Filters
抓包过滤器

使用方法示例:在抓包前设置过滤条件 ip host 60.207.246.216 and icmp,则只捕获与该主机IP相关的ICMP包。
抓包过滤器设置
抓包过滤结果

显示过滤器 (Display Filters)

在捕获完成后使用,从已捕获的数据包中筛选显示内容。在组网简单或流量不大的场景下,掌握这些网络抓包技能并熟练使用显示过滤器即可满足大部分需求。

使用方法示例:捕获所有流量后,在显示过滤器栏输入 ip.addr == 211.162.2.183 and icmp 来筛选特定主机的ICMP包。
显示过滤

过滤器表达式规则

1. 抓包过滤器语法

  • 协议过滤:直接输入协议名,如 tcp, http
    协议过滤
  • IP过滤host 192.168.1.104src host 192.168.1.104dst host 192.168.1.104
  • 端口过滤port 80src port 80dst port 80
  • 逻辑运算符&& (与), || (或), ! (非)。例如:src host 192.168.1.104 && dst port 80

2. 显示过滤器语法

  • 比较操作符== (等于), != (不等于), > (大于), < (小于), >= (大于等于), <= (小于等于)。
  • 协议过滤:直接输入小写协议名,如 tcp, http, icmp
  • IP过滤
    • ip.src ==192.168.1.104 (源地址)
    • ip.dst==192.168.1.104 (目标地址)
    • ip.addr == 192.168.1.104 (源或目标地址)
      IP过滤
  • 端口过滤
    • tcp.port ==80 (源或目的端口)
    • tcp.srcport == 80 (TCP源端口)
    • tcp.dstport == 80 (TCP目的端口)
      端口过滤
  • HTTP方法过滤http.request.method=="GET"
  • 逻辑运算符and, or, not。例如:ip.addr == 192.168.1.104 and icmp
    逻辑过滤
  • 按数据包内容过滤:使用 contains 关键词。例如,要过滤负载中包含“abcd”的TCP流,可选中相应数据区域,右键选择“作为过滤器应用” -> “选中”,然后在生成的过滤器后添加 and tcp contains "abcd"
    内容过滤步骤1
    内容过滤步骤2
    内容过滤步骤3

Wireshark抓包分析TCP三次握手

TCP通过三次握手建立可靠连接。

  1. 第一次握手:客户端发送 SYN=1, Seq=0 的包至服务器。
  2. 第二次握手:服务器回复 SYN=1, ACK=1, Seq=0, Ack=1 的包。
  3. 第三次握手:客户端发送 ACK=1, Seq=1, Ack=1 的包确认连接。

抓包分析步骤

  1. 启动Wireshark抓包,并访问一个网站(如 www.huawei.com)。
  2. 通过 ping 命令获取该网站IP(例如 211.162.2.183)。
    获取IP
  3. 设置显示过滤器 ip.addr == 211.162.2.183,即可观察到TCP三次握手及后续的HTTP通信数据包。
    握手数据包列表

第一次握手数据包详情
标志位SYN置1,序列号Seq=0。
第一次握手

第二次握手数据包详情
标志位SYN和ACK均置1,确认号Ack=客户端Seq+1=1。
第二次握手

第三次握手数据包详情
标志位ACK置1,序列号Seq=1,确认号Ack=服务器Seq+1=1。
第三次握手

连接建立后,开始数据传输。TCP包头的Flags字段常见标识含义如下,这些技能也是网络安全分析的基础:

  • SYN:发起连接。
  • FIN:终止连接。
  • ACK:确认响应。
  • PSH:推送数据,接收方应尽快交付给应用层。
  • RST:重置连接。
    TCP Flags

Wireshark常用操作调整

为了方便分析,可以调整时间戳显示格式。路径:View -> Time Display Format -> Date and Time of Day。调整后,数据包列表的时间列将显示具体的日期和时刻。
调整时间格式




上一篇:云计算架构三层服务模型深入解析:IaaS、PaaS、SaaS技术演进与业务选型
下一篇:前端请求数据安全防护:加密内容防止浏览器开发者工具窥探
您需要登录后才可以回帖 登录 | 立即注册

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

GMT+8, 2025-12-24 17:07 , Processed in 0.222297 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

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