Charles的安装和使用

  • 一、Charles的简介
  • 二、Charles的安装
  • 三、Charles的配置
  • 四、Charles的功能和使用


一、Charles的简介

Charles 是一款收费的抓包工具,通过成为电脑或者浏览器的代理,截取请求和请求结果达到分析抓包的目的。

charles android 抓包 charles安卓抓包下载_网络请求

二、Charles的安装

官网下载地址:https://www.charlesproxy.com/download/ Charles有Window版本和Mac OS版本,同时支持ios和Android手机系统。

charles android 抓包 charles安卓抓包下载_网络请求_02


Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。

方法一:Charles 4.2.7 目前是最新版,可使用注册码

Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

方法二:从这个网站(https://www.zzzmode.com/mytools/charles/)生成charles.jar文件
替换本地charles.jar文件即可。

macOS: /Applications/Charles.app/Contents/Java/charles.jar
 Windows: C:\Program Files\Charles\lib\charles.jar

三、Charles的配置

1、电脑端配置

(1)点击Proxy–Proxy Settings进行配置

charles android 抓包 charles安卓抓包下载_网络请求_03


端口号默认为:8888(若端口号冲突可手动改成其他端口号,如8880)

勾选Enable transparent HTTP proxying(启用透明HTTP代理)

charles android 抓包 charles安卓抓包下载_服务器_04


(2)点击Proxy–SSL Proxying Settings,设置启用SSL代理能力,并自行添加需要抓取的服务地址。host 为 * 的通配符 即可通配所有域名。

charles android 抓包 charles安卓抓包下载_charles android 抓包_05


在这里填入Host和Port就好了。

charles android 抓包 charles安卓抓包下载_网络请求_06

(3)截取分析HTTP协议的相关内容需要安装Charles证书。

点击Http–SSL Proxying—Install Charles Root Certificate,点击安装证书,证书存储在“受信任的根证书颁发机构”。

charles android 抓包 charles安卓抓包下载_服务器_07


按着截图顺序操作就好。

charles android 抓包 charles安卓抓包下载_服务器_08


2、手机端配置

首先手机和电脑连同一个网络,点击设置–wifi–代理服务器选择“手动”,查看电脑的ip地址,服务器(代理主机名)填电脑的ip,端口号填charles配置的端口号。

charles android 抓包 charles安卓抓包下载_端口号_09


这里是查看电脑的ip地址,手机连接代理需要输入连接电脑的ip。

charles android 抓包 charles安卓抓包下载_服务器_10


也可以通过cmd查看本机ip,打开cmd,命令:ipconfig。

charles android 抓包 charles安卓抓包下载_charles android 抓包_11


安卓手机

代理服务器选择“手动”,然后输入代理主机名(就是刚刚查的ip),端口号默认是8888,如果改了就填改了的。

charles android 抓包 charles安卓抓包下载_网络请求_12


苹果手机:

同样,选择“手动”,填入服务器(就是刚刚查的电脑ip),填入端口,填完记得点击右上角的“存储”。

charles android 抓包 charles安卓抓包下载_服务器_13


安卓手机证书安装方法一:用手机浏览器打开这个地址http://charlesproxy.com/charles.crt,然后按照指示,安装证书。

方法二:点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Save Charles Root Certificate…”保存到手机,在手机上完成安装(证书名可自定义)

charles android 抓包 charles安卓抓包下载_端口号_14


手机弹出弹窗,证书名随便输入,记住就好。

charles android 抓包 charles安卓抓包下载_服务器_15


苹果手机安装证书浏览器打开:chls.pro/ssl,弹出确认窗口点击允许,打开手机设置-通用-描述文件与设备管理,安装刚下载的证书,然后打开设置-通用-关于本机-证书信任设置,对安装的证书信任。

charles android 抓包 charles安卓抓包下载_服务器_16


点击“允许”后下载,打开设置-通用-描述文件与设备管理。

charles android 抓包 charles安卓抓包下载_端口号_17


选中刚刚下载的证书信任。

charles android 抓包 charles安卓抓包下载_端口号_18


charles android 抓包 charles安卓抓包下载_端口号_19


最后,charles弹出请求连接的确认弹窗,点击“Allow”开始抓包。

charles android 抓包 charles安卓抓包下载_服务器_20


配置成功后就能开始抓包,如下图。

charles android 抓包 charles安卓抓包下载_服务器_21


下面是我总结的一些常见问题,应该都能解决。

常见问题:

1、手机连接代理后无法上网

2、Charles上无法看到手机的数据

3、抓包返回内容乱码

解决方法:

1、关闭电脑的防火墙

2、检查手机是否安装Charles证书并且信任证书

3、检查Charles是否安装CA证书

4、检查是否连接正确的电脑ip地址和端口号

四、Charles的功能和使用

Charles的常用功能

1、抓包查看返回

2、过滤网络请求

3、模拟慢速网络

4、修改网络请求内容

5、修改服务器返回内容

6、给服务器做压力测试

Charles的两种视图模式

Structure视图将网络请求按访问的域名分类,Sequence视图将网络请求按访问的时间排序。

Structure视图:

charles android 抓包 charles安卓抓包下载_端口号_22


Sequence视图:

charles android 抓包 charles安卓抓包下载_网络请求_23


查看网络请求及返回点击请求,右侧查看请求及返回内容。

charles android 抓包 charles安卓抓包下载_端口号_24


过滤网络请求方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们要看的地址是:https://www.baidu.com/, 在 Filter 栏中填入关键字“baidu”即可。

charles android 抓包 charles安卓抓包下载_charles android 抓包_25


方法二:点击“Proxy”–>“Recording Settings”,Include栏 ,点击添加,然后填入需要监控的协议,主机地址,端口号。

charles android 抓包 charles安卓抓包下载_端口号_26


方法三:在想过滤的网络请求上右击,选择 “Focus”。

charles android 抓包 charles安卓抓包下载_charles android 抓包_27


模拟慢速网络—Throttle Setting在 Charles 的菜单上,点击Proxy–Throttle Setting,勾选 “Enable Throttling”,添加Location,可以设置 Throttle Preset 的类型。

charles android 抓包 charles安卓抓包下载_服务器_28


修改请求和返回-- Breakpoint首先发起一次请求,对该请求设置断点,设置断点后,之后的每次请求都将被拦截住。选中要设断点的点击右键,选择Breakpoint。设置断点后,重新发一次请求,此时,我们可以看到浏览器中一直在转圈,没有响应,这是因为请求被拦截中,没有发送出去。

charles android 抓包 charles安卓抓包下载_charles android 抓包_29


charles android 抓包 charles安卓抓包下载_charles android 抓包_30

查看Charles的Breakpoints,点击Edit Request,里面分别有URL、Header、cookies等,可以进行修改,然后点击右下角的Execute按钮,如果不修改请求的话,直接点击Execute按钮,点击Execute按钮后,此次请求才发送出去;点击Abort,中断请求。

charles android 抓包 charles安卓抓包下载_网络请求_31


PS:compose也能达到相同效果,但仅针对当前此次请求,而打了断点,每次发送这个请求,都会要求去编辑。

修改请求和返回–Rewrite

Rewrite 功能适合对网络请求进行一些正则替换,针对某个值修改。

点击tools—Rewrite,勾选Enable Rewrite,点击添加,然后设置要修改的内容。

charles android 抓包 charles安卓抓包下载_网络请求_32


修改请求和返回–Map Remote修改远程映射是通过修改请求的HOST来实现的,可以将请求切换到不同的环境。

选中要修改的请求,右键选择Map remote。

也可以点击tools—Map Remote,勾选Enable Map Remote,点击Add添加,填写Map From和Map To。

charles android 抓包 charles安卓抓包下载_网络请求_33


charles android 抓包 charles安卓抓包下载_charles android 抓包_34


服务器压测–Repeat Advanced可以使用 Repeat 功能简单地测试服务器的并发处理能力。

选择要做测试的请求,点击右键选择Repeat Advanced,填写并发线程数和打压次数。

charles android 抓包 charles安卓抓包下载_服务器_35


填写并发线程数:10,打压次数1。

charles android 抓包 charles安卓抓包下载_端口号_36


以上就是Charles的安装和使用!