一、安装
-
下载WireShark for Mac版,然后傻瓜式安装即可。
官网下载地址:
https://www.wireshark.org/download.html
小编下载好的分享地址:
链接: https://pan.baidu.com/s/17j-Tyiwv8Xxg9wod5dhK7A 密码: 95tn
-
打开软件,界面如下
二、使用说明(跟window版本有很多共同点)
1、抓包,在最上面菜单栏,找到“捕获(Capture)-》点击(Start)”,如下图所示:
左边绿色的鲨鱼鳍形(正常抓包),点击左上角红色方块(停止抓包),然后再点击左边的鲨鱼鳍形的方块,保不保存随你,以继续不保存为例,然后开始抓包了,如下:
2、抓包网卡的选择。可根据你的网络情况,选择你想要抓的对应网口,如Wi-Fi的抓包方式,如下图所示:
3、在界面可以看到wireshark抓到的实时数据包,从上自下可以看到3个大模块。
第一模块
各个字段进行解释:
字段 | 解释 |
No | 代表数据包标号 |
Time | 在软件启动的多长时间内抓到 |
Source | 源ip |
Destination | 目的ip |
Protocol | 协议 |
Length | 数据包长度 |
Info | 数据包信息 |
第二模块:对应网络分层,我们点击某一条数据可以查看数据包的详细信息
PS:说到网络分层,不得不简单概述OSI七层模型和TCP/IP五层模型的作用和功能是什么
网络通信的过程很复杂,数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够顺利的阅读,为了降低网络设计的复杂性,就将协议进行了分层设计。
在网络分层中,按照不同的定义被分为了五层,七层。
OSI七层模型:
OSI七层模型 |
七层框架功能 |
应用层 |
网络服务、最终用户的一个接口 |
表示层 |
数据的表示、安全、压缩 |
会话层 |
建立、管理、终止会话 |
传输层 |
定义传输数据的协议端口号,以及流量控制和差错校验 |
网络层 |
进行逻辑地址寻址,实现不同网络之间的路径选择 |
数据链路层 |
建立逻辑连接,进行硬件地址寻址、差错校验等功能 |
物理层 |
建立维护断开物理连接 |
TCP/IP五层模型:(协议)
TCP/IP五层模型 |
协议数据单元(PDU) |
设备对应关系 |
协议 |
应用层 |
上层数据 |
计算机 |
HTTP、FTP、TFTP、SMTP、SNMP、DNS |
传输层 |
数据段(TCP头部-上层数据) |
防火墙 |
TCP、UDP |
网络层 |
数据包(IP头部-TCP头部-上层数据) |
路由器 |
ICMP、IGMP、IP、ARP、RARP |
数据链路层 |
数据帧(MAC头部-IP头部-TCP头部-上层数据) |
交换机 |
由底层网络定义的协议 |
物理层 |
比特流(10010110101010011......) |
网卡 |
什么是协议?
就是为了使数据可以在网络上从源传递到目的地,网络上所有设备需要有一个共同的语言,否则无法相互交流。制定这种共同语言的规范就是协议!
HTTP协议
HTTP(HyperText Transfer Protocol)超文本传输协议,HTTP是一个应用层协议,无状态,由请求和响应构成,是一个标准的客户端服务器模型。
【工作原理】HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
参考下图,更容易理解些:(图网上找的,不是自己画的所以不太清晰,大家凑合看,理解其原理才是重点)
HTTPS协议
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)基于SSL的HTTP协议,HTTP的安全版。
使用端口43,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输和身份认证的网络协议。
【工作原理】
① 客户端将它所支持的算法列表和一个用作产生**的随机数发送给服务器 ;
② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用**的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生**的随机数;
③ 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用**;然后,再产生一个称作 pre_master_secret 的随机密码串,并使用服务器的公用**对其进行加密(参考非对称加 / 解密),并将加密后的信息发送给服务器;
④ 客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和 MAC**(参考 DH**交换算法);
⑤ 客户端将所有握手消息的 MAC 值发送给服务器;
⑥ 服务器将所有握手消息的 MAC 值发送给客户端。
参考下图,更容易理解些:(图网上找的,不是自己画的所以不太清晰,大家凑合看,理解其原理才是重点)
第三模块:二进制编码,小编没深入了解,感兴趣的博友们可以去研究下,等你分享~
小编在Mac安装和使用WireShark的时候,随手做个笔记,希望对大家有所帮助,如还有疑问可留言~