Charles 安装配置
Charles 介绍
Charles是一款很实用、界面很友好(至少跟fiddler比起来)、功能强大的抓包神器。
因为它是基于 Java 开发的,所以跨平台,Mac、Linux、Windows 下都是可以使用的,并且在 Android 和 iOS 设备上通用。
它的原理是通过成为电脑或者移动设备的代理,截取请求和响应,达到抓包分析的目的。
Charles 安装
官网下载地址:https://www.charlesproxy.com/
- 官方版为试用版,启动时有 10 秒等待,每隔 30min 会有提示,这个版本 emmmmm~ 试用一下就好。
绿色版下载(网上有很多相关下载地址)
Charles 秘钥
- Registered Name:https://zhile.io
- License Key:48891cf209c6d32bf4
Charles 代理配置使用
配置代理
【注】这一步的目的是为了移动设备连接到 Charles,这样移动设备发起的所有请求才能在 Charles 中看到。以下所有演示截图皆来自 Android 设备,iOS 设备大同小异。
步骤 1:使用 Charles 工具查看 PC 本地 IP 和端口号(端口号默认为 8888,也可自行修改),选择“Help->Local IP Address”
查看默认端口号“Proxy->Proxy Settings”
注意:如果勾选了 Proxy - Windows Proxy,那么电脑上的抓包请求也会被抓取到,如果只想抓手机的包,可以将这个设置为不勾选。
步骤 2:长按 Android 设备当前连接的 WiFi,选择“Modify network”->“Advanced options”->“Proxy”->“Manual”,如下图所示,输入“Proxy hostname”和“Proxy port”(即上一步查看的 IP 地址和端口号)然后点击保存,见下图:
步骤 3:点击保存后,Charles 会弹出 connection 确认弹窗,选择“Allow”,见下图:
步骤 4:注意,如果首次连接时,Charles 未出现该提示,请手动进入 Charles 的设置选项,添加当前手机的 IP,选择“Proxy->Access Control Settings”:
点击“Add”手动添加IP:
HTTPS(解密)抓包
步骤 1:对于 https 的请求,解密抓包时需要电脑安装证书,选择“Help->SSL Proxying->Install Charles Root->Certificate”:
点击“安装证书”:
步骤 2:证书安装完成后,需要将解密的 URL 添加到“SSL Proxying”中,选择“Proxy->SSL Proxying Settings”:
勾选“Enable SSL Proxying->add”,添加想要抓取的域名和端口号并保存,此时再查看 https 的请求,就显示正常了:
若嫌麻烦不想一条条添加请求,则可配置如下(抓取所有的请求):
移动设备证书安装
上述操作只是完成了代理配置的一半,想要 Charles 抓到包还需要在移动设备上安装证书。
步骤 1:下载证书
- 手机浏览器访问链接 http://www.charlesproxy.com/getssl/
- 也可以在 Charles 中查看下载证书的地址,见下图红框标注的位置
步骤 2:安装动态证书(证书名称随意填写即可),凭据用途默认即可,证书安装时需要设置系统锁,设置锁屏成功后证书会提示证书安装成功。
到此,你的设备和 Charles 就建立了连接,可以尝试在设备上访问一个地址,在 Charles 左侧视图就能实时看到请求啦~
常见问题
Android 手机安装证书
- Android 手机安装证书时,建议使用 QQ 浏览器,其他浏览器不一定能弹出证书命名弹窗。
- 如果 QQ 浏览器也不行,只能先下载下来,然后从手机“设置-安全-从存储设备安装”找到刚才下载的证书手动安装。
iOS 10.X 以上设备证书
iOS 10.X 以上设备证书安装后开关默认关闭,需要手动打开开关“设置-通用-关于本机-证书信任设置”即可。
charles 连接不上手机的处理方式
-
检查电脑和手机有没有连接的同一个 wifi,必须连接的是同一个网。
-
更 换charles 和移动端设备的端口,默认是 8888,可以改成其他的试试。
-
有可能路由器设置的 app 间不能相互访问,需要登录路由器,需要登录路由器。进行求改。把用户间访问的对勾勾上。
-
关闭电脑的防火墙试试。如果防火墙关了还是不行,那么请把手机 wifi 断掉后重新连接,这样一般就可以解决问题了。
-
在 charles 上添加手机的 ip。
-
如果以上方法还是不行,尝试将手机 wifi 位置的 ip 地址设置成静态 ip,然后重启 charles 工具。
添加请求地址
如果 https 请求过多不想一条一条添加的话,可以选择“Proxy->SSL Proxying Settings”添加所有。见下图:
Charles 抓不到包
Charles 也会有抓不到包的时候,它并不是万能的,但有些 APP 也会有丢包比较严重的情况,这时候就需要借助其他工具比如 fiddler 或日志排查到底是什么原因。