Wireshark抓包教程:只能查看封包,适用协议及抓包选择说明
软件主界面:怎么抓包、抓包详细图文教程
出于安全因素的考量,我们仅能查阅封包信息,不得对封包内容进行任何修改或发送封包。我们能够获取HTTP和HTTPS协议的数据,然而,由于无法解密HTTPS,因此无法理解其内容。概括来说,在处理HTTP协议时,HTTPS协议同样适用;而对于TCP、UDP等其他协议,则应选择使用它们。
开始抓包
开始界面
在捕获机器上的特定网卡所传输的网络数据包时,若你的计算机配备了不止一块网卡,务必挑选正确的网卡。操作步骤如下:点击相应的选项,会出现一个对话框,此时请挑选恰当的网卡。完成选择后,点击“开始”按钮以启动抓包过程。特别提醒,务必确保选对了网卡,否则将无法正确捕获数据。在我接下来的抓包操作中,将选用VM8网卡。
窗口介绍
(1)(显示过滤器), 用于过滤
封包列表界面(List Pane),它展示了所捕获的封包信息,包括发送者和接收者的地址,以及端口号。不同的颜色标识则象征着不同的含义。
(3) Pane(封包详细信息), 显示封包中的字段
(4)Pane(16进制数据)
(5) (地址栏,杂项)
过滤功能至关重要,对于初学者来说,一旦使用,往往会被海量的冗余信息所淹没,这些信息可能多达几千甚至几万条,使得寻找所需信息变得异常困难,让人感到困惑不已。而过滤器则能帮助我们迅速从庞杂的数据中筛选出所需的信息。
过滤器有两种:
这是一种显示筛选工具,位于主界面之上,其主要功能是在所捕获的数据记录中筛选出所需的特定信息。
这是捕获过滤器,其功能在于筛选所捕获的数据包,以防止记录数量过多。您可以在设置中配置保存过滤条件,于相应栏位输入已设定的表达式,随后点击“保存”按钮,并为该设置命名,例如命名为“102”。
栏上就多了个" 102" 的按钮。
过滤表达式的规则
表达式规则如下:
(1) 协议过滤
例如TCP协议,仅展示TCP相关内容。在接下来的抓包分析中,我们将探讨RTMP以及HTTP这两种协议。
(2)IP 过滤
例如,若ip.src等于192.168.1.102,则表示源地址是192.168.1.102;同时,若ip.dst也等于192.168.1.102,则说明目标地址也是192.168.1.102。
(3)端口过滤
TCP端口号等于80,该端口号设定为80,TCP协议中仅显示指定端口为80,接下来将讨论8080端口的相关内容。
(4)Http模式过滤
https://img0.baidu.com/it/u=961430100,3184701200&fm=253&fmt=JPEG&app=138&f=JPEG?w=667&h=500
当访问链接时,仅展示采用HTTP GET方式的请求。
(5)逻辑运算符为 AND/ OR
封包列表( List Pane)
在封包列表的界面中,你可以观察到编号、时间戳、源地址、目标地址、协议类型、数据长度以及封包的具体内容。此外,不同协议的显示颜色各异,你可以根据自己的需求调整这些颜色的显示规则,具体操作路径为“查看”菜单下的“规则”。
封包详细信息 (Pane)
这个面板是我们最重要的,用来查看协议中的每一个字段。
各行信息分别为
Frame: 物理层的数据帧概况。
II: 数据链路层以太网帧头部信息。
4: 互联网层IP包头部信息。
: 传输层T的数据段头部信息,此处是TCP。
: 应用层的信息,此处是HTTP协议。
TCP包的具体内容
从下图可以看到捕获到的TCP包中的每个字段。
观察至此,我们对其基本概念已有初步把握,接下来,让我们来分析一个TCP三次握手的实际案例:
三次握手过程为,如下:
图中展示,我们成功截获了三次握手所需的三个数据包,而第四个数据包则属于HTTP协议,由此可见,HTTP协议确实是通过TCP协议来建立连接的。
第一次握手数据包
客户端向服务器发送一个TCP数据包,其标志位设置为SYN,序列号设定为0,这一行为表明客户端正试图建立一个新的连接。具体情形,请参照以下图示。
第二次握手的数据包
服务器回传的确认信息中,其标志字段显示为SYN和ACK。同时,它将确认序列号设定为客户端的初始序列号加一,即0加1等于1,具体过程如图所示。
第三次握手的数据包
客户端重新发送了确认信息包(ACK),其中SYN标志显示为0,而ACK标志则显示为1。同时,客户端将服务器返回的ACK包中的序号字段增加1,并将这个新的序号值放入确定字段中发送给对方。此外,客户端还在数据段中记录了ISN的值加1,具体过程如图所示。
就这样通过了TCP三次握手,建立了连接。
这一节都是使用图文教程。手把手教你抓包。
1.抓包HLS
https://img0.baidu.com/it/u=1957789014,857558011&fm=253&fmt=JPEG&app=120&f=JPEG?w=889&h=500
其中要设置三要素,三要素如下:
(1)ip地址
(2)端口
(3)协议 http
窗口设置,如下:
IP地址为172.16.204.133,端口号为8080,同时满足HTTP协议要求。
点击推流(可以使用各种推流工具),可以看到如下界面:
在此,我们以推流为例:执行命令时,需输入参数 -re,接着是 -i,然后是 time.flv,紧接着是 - copy,再是 - copy,最后是 -f flv,以及 -y。
也可以参考前面的文章
超详细RTMP协议详解(资深流媒体架构师推荐)
手把手搭建流媒体服务器详细步骤
进行直播时(亦可用其他软件实现),操作指令如下所示,界面上的图标表明捕获操作已顺利完成。
这里拉取RTMP流:
rtmp://172.16.204.133/live/
执行HTTP数据流的抓取操作,具体指令如下,这表明操作已顺利实现,观察此处所抓取的信息,均为遵循HTTP协议的数据内容。
关于如何一步步构建HLS流媒体服务器,您可以查阅以下文章:详细指导如何设置HLS流媒体服务器。
这里拉取HTTP流:HLS拉流地址:
:8080/live/.m3u8
注意:HLS,这里走的是HTTP协议。
可以看到客户端请求服务器端.m3u8的数据。
通过HLS协议的抓包分析,我们可以观察到数据是通过HTTP协议进行分段下载的ts文件,具体包括图示中的-148.ts、-149.ts、-150.ts以及-151.ts等片段。
注意:客户端会实时拉取更新的.m3u8。
还能抓取到PAT表、PMT表。
为了减少延迟,某些策略会选择获取最近的ts流,然而这可能会引发一个问题。这究竟是什么原因呢?
若直接播放最后一个ts文件,待当前文件播放完毕,此时若去下载更新后的m3u8文件,后续的ts文件可能尚未制作完成。这可能导致播放中断,影响用户观看体验。例如,若当前播放至第9秒,而新ts文件需10秒才能生成,便会出现播放中断。为应对这两种情况,建议适当进行缓冲后再进行播放。
页:
[1]