前言
wireshark 是一款网卡抓包软件,具有强大的抓包功能,可以抓取经过网卡的全部数据,这意味着可以查看所有网络的流量发生过什么事情。但它也会有缺点,就是信息量大,获取有用信息是有门槛的,不提供 https 的解码,也不提供修改数据包内容功能。
安装
下载安装可以到 wireshark 的官网:https://www.wireshark.org/
如果连接不上官网,大家直接搜索下载也可以。安装完成后首先是看到选择网卡页面,既然是从网卡抓包,肯定要先选择要抓的网卡。
开始使用
第一步
选择网卡后,首先会看到大量的数据,第一步我们先过滤一下信息。在过滤器,输入要查看的协议,如HTTP。
过滤前
过滤后
第二步
过滤大量信息后,进一步过滤找到自己的目标,通过&&来增加过滤条件,如想看的 IP 是 120.31.135.116。
http&&ip.addr==120.31.135.116
只想看本地发向目标 IP 的:
http&&ip.dst==120.31.135.116
想看目标 IP 发向本地的:
http&&ip.src==120.31.135.116
到这里,抓到的包就很清晰了,如果想看其他协议的包,把 http 修改为对应协议即可。
像 ARP、DHCP、DNS、ICMP,甚至随便找个网络协议研究,wireshark 都可以满足你的需求。wireshark 的过滤器还有很多维度的过滤功能,具体内容可以去 wireshark 官方文档查看:https://www.wireshark.org/docs/wsug_html_chunked/index.html
分析数据包
OSI 七层模型大家听得多,在 wireshark 可以直观地看到 OSI 七层的内容。
以一个 http 包为例,从上到下分别是:
- 物理层
- 数据链路层
- 网络层
- 传输层
- 应用层
- JSON数据
物理层
最底层的数据,物理链路相关的信息,确保数据能在各种物理介质中传输。
数据链路层
数据链路层,目的是保证物理层的数据,稳定地向网络层目标传输,记录有目标和源头的 MAC 地址。转换 MAC 地址的 ARP、RARP 协议,就属于这一层。
网络层
网络层负责点到点的工作,一台主机的数据传输到目标主机,不保证数据的有效性。主要进行路由选择等工作,也可以进行阻塞控制,异步,综合业务(ISDN数字化,以前是IDN模拟传输)。
传输层
传输层负责端到端的工作,端口端口,一个端口就是一个进程收数据的接口,端到端就是一个进程的数据传输到另一个进程。最出名的 TCP 和 UDP 协议都是传输层协议,负责进程之间的数据传输,保证了数据的可靠性和有效性。基本功能包括:
- 分割和重组数据
- 按端口寻址
- 连接管理(三次握手,四次挥手)
- 差错控制、流量控制等控制功能
应用层
OSI 模型中分七层,而 TCP/IP 模型中把最上三层统一定义为应用层,wireshark也是类似。
其他常用功能
追踪流:查看连接的响应,一般是追踪TCP流。
查看会话:统计,endpoint,可以查看网卡下所有的连接。
过滤器:可以保存常用的过滤参数,方便多次使用。
总结
wireshark 是一款功能强大的抓包软件,如果只从接口来说,功能上不如 fiddler。但如果从网络来说,wireshark 的功能更加强大,可以分析的内容更多,建议大家可以学习了解一下。
下期将会给大家带来一个全新的专题分享,敬请期待~
欢迎各位关注、留言,大家的支持就是我的动力!