一、安装
-
下载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的时候,随手做个笔记,希望对大家有所帮助,如还有疑问可留言~