Charles#1

Charles

基础知识

Charles#1

Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).
(内容参考:https://juejin.im/post/5b8350b96fb9a019d9246c4c)
Charles 主界面介绍
Charles#1

Charles 顶部为菜单导航栏,菜单导航栏下面为工具导航栏。视图如下图所示:
Charles#1

工具导航栏中提供了几种常用工具:
Charles#1 :清除捕获到的所有请求。
Charles#1 :红色状态说明正在捕获请求,灰色状态说明目前没有捕获请求。
Charles#1:灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。
Charles#1 :灰色状态说明是没有开启断点,红色状态说明开启了断点。
Charles#1 :编辑修改请求,点击之后可以修改请求的内容。
Charles#1 :重复发送请求,点击之后选中的请求会被再次发送。
Charles#1:验证选中的请求的响应。
Charles#1 :常用功能,包含了 Tools 菜单中的常用功能。
Charles#1 :常用设置,包含了 Proxy 菜单中的常用设置。
Charles 主要提供两种查看封包的视图,分别名为 Structure 和 Sequence。
• Structure: 此视图将网络请求按访问的域名分类。
• Sequence: 此视图将网络请求按访问的时间排序。
可以根据具体的需要在这两种视图之前来回切换。Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
Charles 的主菜单包括:File、Edit、View、Proxy、Tools、Window、Help。其中常用的有 Proxy 和 Tools。
Proxy 菜单:
• Start/Stop Recording:开始/停止记录会话。
• Start/Stop Throttling:开始/停止节流。
• Enable/Disable Breakpoints:开启/关闭断点模式。
• Recording Settings:记录会话设置。
• Throttle Settings:节流设置。
• Breakpoint Settings:断点设置。
• Reverse Proxies Settings:反向代理设置。
• Port Forwarding Settings:端口转发。
• Windows Proxy:记录计算机上的所有请求。
• Proxy Settings:代理设置。
• SSL Proxying Settings:SSL 代理设置。
• Access Control Settings:访问控制设置。
• External Proxy Settings:外部代理设置。
• Web Interface Settings:Web 界面设置。
Recording Settings(记录会话设置)
Recording Settings 和 Start/Stop Recording 配合使用,在 Start Recording 的状态下,可以通过 Recording Settings 配置 Charles 的会话记录行为。Recording Settings 的视图如下图所示:
Charles#1

Recording Settings 有 Options、Include、Exclude 三个选项卡:
• Options:通过 Recording Size Limits 限制记录数据的大小。当 Charles 记录时,请求、响应头和响应体存储在内存中,或写入磁盘上的临时文件。有时,内存中的数据量可能会变得太多,Charles 会通知您并停止录制。在这种情况下,您应该清除 Charles 会话以释放内存,然后再次开始录制。在录制设置中,您可以限制 Charles 将记录的最大大小; 这根本不会影响你的浏览,Charles 仅会停止录制。
• Include:只有与配置的地址匹配的请求才会被录制。
• Exclude:与配置的地址匹配的请求将不会被录制。
Charles#1

windows Proxy(记录计算机上的所有请求)
如果想要抓取电脑端的请求,勾选 Windows Proxy 选项即可;如果只需要抓取手机请求,则取消勾选这个选项。
Tools 菜单
• No Caching Settings:禁用缓存设置。
• Block Cookies Settings:禁用 Cookie设置。
• Map Remote Settings:远程映射设置。
• Map Local Settings:本地映射设置。
• Rewrite Settings:重写设置。
• Black List Settings:黑名单设置。
• White List Settings:白名单设置。
• DNS Spoofing Settings:DNS 欺骗设置。
• Mirror Settings:镜像设置。
• Auto Save Settings:自动保存设置。
• Client Process Settings:客户端进程设置。
• Compose:编辑修改。
• Repeat:重复发包。
• Repeat Advanced:高级重复发包。
• Validate:验证。
• Publish Gist:发布要点。
• Import/Export Settings:导入/导出设置。
• Profiles:配置文件。
• Publish Gist Settings:发布要点设置。
Map Remote Settings(远程映射)
Map Remote 工具根据配置的映射更改请求站点,以便从新站点透明地提供响应,就好像这是原始请求一样。
通过此映射,您可以从另一个站点提供全部或部分站点。
Map Local Settings(本地映射)
Map Local 工具可以启用本地文件,就像它们是远程网站的一部分一样。本地文件的内容将返回给客户端,就像它是正常的远程响应一样。
Charles 使用教程
PC 端抓包
Charles 会自动配置浏览器和工具的代理设置,但有些浏览器会默认不使用系统代理,启用即可。
移动端抓包
手机抓包的原理,和 PC 类似,手机通过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤如下:

  1. 使手机和电脑在一个局域网内,不一定非要是一个 IP 段,只要是在同一个路由器下即可。
  2. 电脑端配置:
    – 关掉电脑端的防火墙(这点很重要)。
    – 打开 Charles 的代理功能:通过主菜单打开 Proxy | Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不用修改),勾选 Enable transparent HTTP proxying。
    – 若不需要抓取电脑上的请求,可以取消勾选 Proxy | Windows Proxy。
  3. 手机端配置:
    – 通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。
    – 设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。
  4. 设置好之后,打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
    HTTPS 抓包
    HTTPS 的抓包需要在 HTTP 抓包基础上再进行设置。需要完成一下步骤:
  5. 完成 HTTP 抓包配置。
  6. 电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。
  7. 设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying。
  8. 移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。
  9. 设置好之后,打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
    Charles License
    • Registered Name: https://zhile.io
    • License Key: 48891cf209c6d32bf4
    注册码来自于网络,注册码 Windows 和 Mac 通用。(有票子的可以支持一下正版)
    Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

上一篇:Charles连接手机抓包


下一篇:charles抓不到包的几种原因