Charles怎么抓包?最全抓包教程与实战配置指南(新手必看)

307 阅读5分钟

每一个刚接触 Charles 的开发者,第一个问题几乎都是——“Charles到底怎么抓包?”

表面上看,它只是一个网络代理工具,但真正用起来,你会发现它比想象中更强大: 它能帮你看清 HTTP/HTTPS 请求的来龙去脉、重放接口、模拟弱网,甚至修改响应数据。

这篇文章,我们就一步步讲清楚: Charles 抓包的原理、完整配置方法、以及在实际开发中最常见的抓包场景。


一、Charles 抓包的原理是什么?

要理解“怎么抓包”,先要理解“为什么能抓包”。

Charles 的本质是一台 HTTP 代理服务器。 当你在电脑上运行 Charles 时,它会:

  1. 拦截你的网络请求;
  2. 将这些请求转发到目标服务器;
  3. 再把服务器响应转回给你。

在这个过程中,Charles 能“看到”所有的 HTTP 和 HTTPS 数据。

这就像你上网时,数据从你电脑经过 Charles,再到服务器,Charles 站在中间,就能完整地“监听”整条链路。


二、Charles 抓包的基本流程

安装 Charles

访问 Charles国内中文镜像网 下载最新版。 支持 Windows、macOS、Linux 全平台。

安装完成后,首次打开会提示是否启用系统代理。 点击 Allow 即可。

Charles 默认监听端口是 8888


验证抓包是否生效

打开浏览器访问任意网站,例如 https://www.example.com。 此时你应该在 Charles 的主界面看到:

www.example.com
 └── GET /
 └── GET /favicon.ico

这就表示抓包已经成功。

如果没有显示,请检查:

  • 系统代理是否被其他软件占用;
  • 防火墙是否拦截 Charles;
  • 浏览器是否绕过系统代理。

三、Charles HTTPS 抓包配置

默认情况下,Charles 只能抓取 HTTP 流量,要想分析 HTTPS 请求(比如接口或登录请求),必须安装 SSL 证书

安装步骤(电脑端)

  1. 点击菜单:Help → SSL Proxying → Install Charles Root Certificate
  2. 安装后打开“钥匙串访问”(macOS)或“证书管理”(Windows);
  3. 找到 “Charles Proxy CA” 证书,将其设置为 始终信任
  4. 回到 Charles,点击: Proxy → SSL Proxying Settings → Add → 输入 *:* (表示对所有域名启用 HTTPS 抓包)。

完成后,再访问 HTTPS 网站(如 https://google.com),你将能看到完整的请求头、Body与响应内容。


四、Charles 抓取手机(App)请求

很多人只在电脑上抓包,其实 Charles 完全支持 移动端抓包。 下面以 iPhone 为例:

让手机与电脑在同一 Wi-Fi 下

Charles 是通过局域网代理工作的, 所以手机和电脑必须在同一个网络环境。

配置手机代理

进入手机 Wi-Fi 设置 → 手动配置代理:

  • 服务器:电脑的 IP 地址
  • 端口:8888

(电脑端 Charles 左下角会显示当前 IP)

此时,手机访问网页或打开 App, Charles 会弹窗提示“是否允许连接”。 点击 “Allow”。

安装手机证书

在手机浏览器访问:chls.pro/ssl 下载证书并安装。

iOS 用户需前往:

设置 → 通用 → 关于本机 → 证书信任设置 → 启用“Charles Proxy CA”

安卓用户直接安装并信任即可。

完成后,Charles 就能抓到手机 App 的 HTTPS 请求。


五、Charles 抓包常用功能详解

Structure vs Sequence 视图

  • Structure:按域名分类,适合分析同站点多个请求。
  • Sequence:按时间顺序排列,适合还原整个访问过程。

Request / Response 查看

你可以在每条请求下查看:

  • Headers(请求头)
  • Body(请求体)
  • JSON 响应内容
  • 状态码与耗时

这对分析 API 响应异常尤其重要。


六、Charles 抓包常见场景

场景1:调试接口请求

查看接口参数、状态码与响应时间,定位前后端交互问题。

场景2:分析App流量

抓取移动端 HTTPS 请求,验证接口调用逻辑是否正确。

场景3:测试异常响应

利用 Breakpoints 手动修改返回数据,模拟后端报错。

场景4:Mock 接口

用 Map Local 将请求映射到本地文件, 实现前端独立开发与UI演示。

场景5:模拟弱网

通过 Throttle 功能设置延迟与带宽,测试App在3G网络下的表现。


七、抓包失败的常见原因

问题原因解决方案
无法抓HTTPS证书未信任重新安装证书并设置“始终信任”
手机不显示流量未在同一Wi-Fi / IP错误检查手机代理设置
请求为空App使用了证书绑定(SSL Pinning)使用开发版本或关闭证书校验
Charles不显示流量系统代理被禁用重新启用代理(菜单栏中可切换)

八、Charles的抓包“进阶用法”

当你熟悉基本抓包后,还可以进一步掌握:

功能用途
Rewrite自动修改请求参数或响应内容
Map Remote重定向请求到测试/预发环境
Repeat & Advanced Repeat重放或批量发送请求,测试接口稳定性
Export Session导出日志文件,方便团队复现Bug

这些功能,让Charles从“调试工具”升级为“测试分析平台”。


九、延伸学习与中文资源

想更深入学习Charles的使用技巧与案例,可以访问 Charles国内中文镜像网

这里提供:

  • 中文版操作教程
  • 证书配置与抓包示例
  • 常见问题排查指南
  • Rewrite与Throttle高级技巧

学会抓包,可以解决很多问题

学会用Charles抓包,不只是为了修Bug,而是为了学会观察系统的行为

每一个请求、每一条响应、每一次延迟,背后都藏着代码与服务器的真实对话。