Charles 抓包工具

369 阅读4分钟

本人在工作中用到,看到一篇文章进行总结,方便后期使用

Charles主要功能

  • 截取 http 和 https 网络封包。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获,并动态修改。
  • 支持模拟慢速网络。

下载安装

打开浏览器访问 Charles 官网 ,下载相应系统的 Charles 安装包,然后安装即可。

Charles 主界面

Charles 的主界面视图如下图所示: image.png 工具导航栏中提供了几种常用工具:

  • image.png:清除捕获到的所有请求
  • image.png:红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。
  • image.png:灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。
  • image.png:灰色状态说明是没有开启断点,红色状态说明开启了断点。
  • image.png:编辑修改请求,点击之后可以修改请求的内容。
  • image.png:重复发送请求,点击之后选中的请求会被再次发送。
  • image.png:验证选中的请求的响应。
  • image.png:常用功能,包含了 Tools 菜单中的常用功能。
  • image.png:常用设置,包含了 Proxy 菜单中的常用设置。

主界面视图

Charles 主要提供两种查看封包的视图,分别名为 Structure 和 Sequence。

  • Structure: 此视图将网络请求按访问的域名分类。
  • Sequence: 此视图将网络请求按访问的时间排序。 使用时可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

Charles 菜单介绍

Charles 的主菜单包括:File、Edit、View、Proxy、Tools、Window、Help。用的最多的主菜单分别是 Proxy 和 Tools。

Charles 使用教程

通过 Charles 进行 PC 端抓包

Charles 会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。只需要保证一下几点即可:

  1. 确保 Charles 处于 Start Recording 状态。
  2. 勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。

通过 Charles 进行移动端抓包

手机抓包的原理,和 PC 类似,手机通过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤如下:

  1. 使手机和电脑在一个局域网内,不一定非要是一个 IP 段,只要是在同一个路由器下即可。

  2. 电脑端配置:

    关掉电脑端的防火墙(这点很重要)。

    打开 Charles 的代理功能:通过主菜单打开 Proxy | Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不用修改),勾选 Enable transparent HTTP proxying。

image.png

如果不需要抓取电脑上的请求,可以取消勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。

  1. 手机端配置:
  • 通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。(或者点击wifi的小图标,打开网络偏好设置,就会在下图中展示。)

image.png

  • 设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。(这里每个手机不同,华为长按住点修改,显示高级。)
  1. 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。

  2. 完成以上步骤,就可以进行抓包了。

通过 Charles 进行 HTTPS 抓包

HTTPS 的抓包需要在 HTTP 抓包基础上再进行设置。需要完成一下步骤:

  1. 完成 HTTP 抓包配置。

  2. 电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。 image.png

  3. 设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying。

  4. 移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。

  5. 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。

  6. 完成以上步骤,就可以进行 HTTPS 抓包了。

总结

参考文章:《Charles 功能介绍和使用教程》。 本人的版本是2021年的。