前端组知识库

👍欢迎大家积极投稿交流👍

如果文档内容陈旧或者链接失效,请发现后及时同步,我将尽快修改

👇微信👇

图片
Skip to content

Charles 抓包工具

经典的HTTP代理调试工具 Web开发和移动应用调试的首选 功能强大、稳定可靠的网络流量分析利器

官网

工具介绍

Charles是一款HTTP代理/HTTP监控/反向代理工具,它允许开发者查看所有连接互联网的HTTP和SSL/HTTPS流量。这包括请求、响应和HTTP头信息(包含cookies与缓存信息)。Charles是一个跨平台的工具,支持Windows、Mac和Linux系统。

Charles主界面

主要功能

1. HTTP/HTTPS 流量监控

Charles可以作为HTTP代理服务器,拦截并显示所有通过它的HTTP和HTTPS流量。支持查看完整的请求和响应数据,包括头部信息、参数、响应体等。

2. SSL 证书支持

内置SSL代理功能,可以解密HTTPS流量进行分析。只需安装Charles的根证书,即可查看加密的HTTPS请求内容。

3. 移动设备调试

支持移动设备通过WiFi连接到Charles代理,实现对iOS和Android应用的网络请求监控和调试。

4. 请求重写和映射

  • Map Remote: 将请求重定向到不同的服务器
  • Map Local: 将网络请求映射到本地文件
  • Rewrite: 修改请求或响应的内容

5. 断点调试

设置断点可以暂停请求或响应,允许开发者实时修改数据后再继续传输。

6. 网络限速

模拟不同网络环境,如2G、3G、4G等,测试应用在弱网环境下的表现。

安装配置

下载安装

  1. 访问 Charles官网 下载对应系统版本
  2. 安装完成后启动Charles
  3. 首次启动会提示是否设置为系统代理,选择"Grant Privileges"

基础配置

1. 代理设置

  • 默认代理端口:8888
  • 可在 Proxy → Proxy Settings 中修改端口和其他设置

2. SSL证书安装

桌面端证书安装:

  1. Help → SSL Proxying → Install Charles Root Certificate
  2. 在证书管理器中将Charles证书设置为"受信任"

移动端证书安装:

  1. 手机连接与电脑相同的WiFi网络
  2. 手机WiFi设置中配置代理:IP为电脑IP,端口8888
  3. 手机浏览器访问 chls.pro/ssl 下载证书
  4. iOS:设置 → 通用 → 描述文件 → 安装证书 → 通用 → 关于本机 → 证书信任设置 → 启用Charles证书
  5. Android:设置 → 安全 → 从存储设备安装证书

3. SSL代理配置

  1. Proxy → SSL Proxying Settings
  2. 勾选"Enable SSL Proxying"
  3. 添加需要监控的域名,如 *.example.com:443

使用教程

基本抓包流程

  1. 启动Charles:打开Charles应用
  2. 开始录制Proxy → Start Recording 或点击录制按钮
  3. 访问网站:在浏览器中访问目标网站
  4. 查看请求:在Charles中查看捕获的HTTP请求

移动端抓包

  1. 配置代理

    • 查看电脑IP地址
    • 手机WiFi设置中配置HTTP代理
    • 代理服务器:电脑IP,端口:8888
  2. 允许连接

    • 手机配置代理后,Charles会弹出连接请求
    • 点击"Allow"允许连接
  3. 安装证书

    • 手机浏览器访问 chls.pro/ssl
    • 下载并安装Charles证书
  4. 开始抓包

    • 在手机上操作APP
    • Charles中查看网络请求

常用功能操作

1. 过滤和搜索

  • Filter:在底部输入框中输入关键词过滤请求
  • Focus:右键选择"Focus"只显示特定域名的请求
  • SearchEdit → Find 搜索特定内容

2. 请求重写

Tools → Rewrite
1. 勾选"Enable Rewrite"
2. 添加重写规则
3. 设置匹配条件(Host、Path等)
4. 设置重写动作(修改Header、Body等)

3. 本地映射

Tools → Map Local
1. 勾选"Enable Map Local"
2. 添加映射规则
3. 设置远程URL和本地文件路径

4. 远程映射

Tools → Map Remote
1. 勾选"Enable Map Remote"
2. 添加映射规则
3. 设置原始URL和目标URL

5. 断点调试

Proxy → Breakpoint Settings
1. 勾选"Enable Breakpoints"
2. 添加断点规则
3. 设置断点条件(Request/Response)

实用技巧

1. 快速定位请求

  • 使用Structure视图按域名分组查看
  • 使用Sequence视图按时间顺序查看
  • 善用Filter功能过滤无关请求

2. 导出数据

  • 右键请求选择"Export"
  • 支持导出为cURL、HAR等格式
  • 可以导出Session用于分享和备份

3. 网络限速测试

Proxy → Throttle Settings
1. 勾选"Enable Throttling"
2. 选择预设的网络环境
3. 或自定义带宽限制

4. 重复请求

  • 右键请求选择"Repeat"
  • 可以快速重发请求进行测试
  • 支持批量重发多个请求

5. 比较请求

  • 选择两个请求,右键选择"Compare"
  • 可以对比请求和响应的差异
  • 便于分析接口变化

常见问题

1. HTTPS请求显示为乱码

解决方案

  • 确保已安装Charles根证书
  • 在SSL Proxying Settings中添加对应域名
  • 检查证书是否被系统信任

2. 移动端无法抓包

解决方案

  • 确认手机和电脑在同一网络
  • 检查代理配置是否正确
  • 确认Charles允许了移动端连接
  • 检查防火墙设置

3. 某些APP无法抓包

原因

  • APP使用了证书绑定(Certificate Pinning)
  • APP使用了自定义协议

解决方案

  • 使用Xposed框架绕过证书绑定(Android)
  • 使用越狱工具和SSL Kill Switch(iOS)

4. Charles启动慢或卡顿

解决方案

  • 清理历史记录:File → Clear Session
  • 调整内存设置:增加JVM内存分配
  • 关闭不必要的功能和视图

高级功能

1. 自动保存Session

File → Auto Save
设置自动保存间隔和保存位置

2. 脚本和自动化

  • 支持AppleScript(Mac)
  • 可以编写脚本自动化操作
  • 集成到CI/CD流程中

3. 插件扩展

  • 支持第三方插件
  • 可以扩展Charles功能
  • 社区提供丰富的插件资源

替代工具对比

工具优势劣势
Charles功能全面、稳定可靠付费软件、界面较老
Fiddler免费、插件丰富仅支持Windows
mitmproxy开源、命令行学习成本高
Reqable现代化界面、跨平台相对较新

许可证和价格

  • 试用版:免费使用30天,有功能限制
  • 个人许可证:$50,永久使用
  • 商业许可证:$300,包含技术支持
  • 教育许可证:提供教育折扣

免费破解教程

进入Charles 激活码计算器,随便输入名称(英文即可),点击生成,在弹框中复制名称 和 密钥,在Charles中对应位置粘贴,点击确定即可

学习资源

Charles作为经典的抓包工具,虽然界面相对传统,但功能强大、稳定可靠,是Web开发和移动应用调试的重要工具。掌握Charles的使用技巧,能够大大提高开发和调试效率。

上次更新于: