Charles的安装和使用(超级全)
Charles的安装和使用
一、Charles的简介
Charles 是一款收费的抓包工具,通过成为电脑或者浏览器的代理,截取请求和请求结果达到分析抓包的目的。
二、Charles的安装
官网下载地址:https://www.charlesproxy.com/download/
Charles有Window版本和Mac OS版本,同时支持ios和Android手机系统。
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。
方法一:Charles 4.2.7 目前是最新版,可使用***
方法二:从这个网站(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进行配置
端口号默认为:8888(若端口号冲突可手动改成其他端口号,如8880)
勾选Enable transparent HTTP proxying(启用透明HTTP代理)
(2)点击Proxy–SSL Proxying Settings,设置启用SSL代理能力,并自行添加需要抓取的服务地址。host 为 * 的通配符 即可通配所有域名。
在这里填入Host和Port就好了。
(3)截取分析HTTP协议的相关内容需要安装Charles证书。
点击Http–SSL Proxying—Install Charles Root Certificate,点击安装证书,证书存储在“受信任的根证书颁发机构”。
按着截图顺序操作就好。
2、手机端配置
首先手机和电脑连同一个网络,点击设置–wifi–代理服务器选择“手动”,查看电脑的ip地址,服务器(代理主机名)填电脑的ip,端口号填charles配置的端口号。
这里是查看电脑的ip地址,手机连接代理需要输入连接电脑的ip。
也可以通过cmd查看本机ip,打开cmd,命令:ipconfig。
安卓手机
代理服务器选择“手动”,然后输入代理主机名(就是刚刚查的ip),端口号默认是8888,如果改了就填改了的。
苹果手机:
同样,选择“手动”,填入服务器(就是刚刚查的电脑ip),填入端口,填完记得点击右上角的“存储”。
安卓手机证书安装
方法一:用手机浏览器打开这个地址http://charlesproxy.com/charles.crt,然后按照指示,安装证书。
方法二:点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Save Charles Root Certificate…”保存到手机,在手机上完成安装(证书名可自定义)
手机弹出弹窗,证书名随便输入,记住就好。
苹果手机安装证书
浏览器打开:chls.pro/ssl,弹出确认窗口点击允许,打开手机设置-通用-描述文件与设备管理,安装刚下载的证书,然后打开设置-通用-关于本机-证书信任设置,对安装的证书信任。
点击“允许”后下载,打开设置-通用-描述文件与设备管理。
选中刚刚下载的证书信任。
最后,charles弹出请求连接的确认弹窗,点击“Allow”开始抓包。
配置成功后就能开始抓包,如下图。
下面是我总结的一些常见问题,应该都能解决。
常见问题:
1、手机连接代理后无法上网
2、Charles上无法看到手机的数据
3、抓包返回内容乱码
解决方法:
1、关闭电脑的防火墙
2、检查手机是否安装Charles证书并且信任证书
3、检查Charles是否安装CA证书
4、检查是否连接正确的电脑ip地址和端口号
四、Charles的功能和使用
Charles的常用功能
1、抓包查看返回
2、过滤网络请求
3、模拟慢速网络
4、修改网络请求内容
5、修改服务器返回内容
6、给服务器做压力测试
Charles的两种视图模式
Structure视图将网络请求按访问的域名分类,Sequence视图将网络请求按访问的时间排序。
Structure视图:
Sequence视图:
查看网络请求及返回
点击请求,右侧查看请求及返回内容。
过滤网络请求
方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们要看的地址是:https://www.baidu.com/, 在 Filter 栏中填入关键字“baidu”即可。
方法二:点击“Proxy”–>“Recording Settings”,Include栏 ,点击添加,然后填入需要监控的协议,主机地址,端口号。
方法三:在想过滤的网络请求上右击,选择 “Focus”。
模拟慢速网络—Throttle Setting
在 Charles 的菜单上,点击Proxy–Throttle Setting,勾选 “Enable Throttling”,添加Location,可以设置 Throttle Preset 的类型。
修改请求和返回-- Breakpoint
首先发起一次请求,对该请求设置断点,设置断点后,之后的每次请求都将被拦截住。选中要设断点的点击右键,选择Breakpoint。设置断点后,重新发一次请求,此时,我们可以看到浏览器中一直在转圈,没有响应,这是因为请求被拦截中,没有发送出去。
查看Charles的Breakpoints,点击Edit Request,里面分别有URL、Header、cookies等,可以进行修改,然后点击右下角的Execute按钮,如果不修改请求的话,直接点击Execute按钮,点击Execute按钮后,此次请求才发送出去;点击Abort,中断请求。
PS:compose也能达到相同效果,但仅针对当前此次请求,而打了断点,每次发送这个请求,都会要求去编辑。
修改请求和返回–Rewrite
Rewrite 功能适合对网络请求进行一些正则替换,针对某个值修改。
点击tools—Rewrite,勾选Enable Rewrite,点击添加,然后设置要修改的内容。
修改请求和返回–Map Remote
修改远程映射是通过修改请求的HOST来实现的,可以将请求切换到不同的环境。
选中要修改的请求,右键选择Map remote。
也可以点击tools—Map Remote,勾选Enable Map Remote,点击Add添加,填写Map From和Map To。
服务器压测–Repeat Advanced
可以使用 Repeat 功能简单地测试服务器的并发处理能力。
选择要做测试的请求,点击右键选择Repeat Advanced,填写并发线程数和打压次数。
填写并发线程数:10,打压次数1。
以上就是Charles的安装和使用!