最近在维护一个App,解决线上问题时需要抓包来定位问题,使用的抓包工具是Charles,手机是iPhone,电脑系统是Win10。
Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
其实就是在电脑上安装Charles作为一个代理服务器,然后手机连接到跟电脑同一个局域网内,给手机连接的网络设置代理,代理服务器就是你安装的Charles,然后Charles就能接收到你手机所有的网络请求了。

具体使用步骤如下:

下载Charles并**

Charles抓包分享

http抓包

查看电脑ip

打开Charles,点击Help > Local IP Address
Charles抓包分享

设置代理

打开Charles,点击Proxy->Proxy Settings,填写一个没有被占用的端口号
Charles抓包分享

手机连接并设置代理

手机连接到和电脑同一局域网内,设置网络 > 配置代理
Charles抓包分享


Charles抓包分享


Charles抓包分享
这个时候就可以抓到http请求了,想要抓https请求需要下载证书,具体步骤如下:

https抓包

设置ssl

打开Charles,点击:Proxy –> SSL Proxying Settings –> Enable SSL Proxying 打开SSL代理
Charles抓包分享
在SSL Proxying Settings中点击Add添加需要代理的域名,我嫌麻烦,直接代理了所有请求
Charles抓包分享

电脑上安装CA证书

打开Charles,点击:Help –> SSL Proxying –> Install Charles Root Certificate
Charles抓包分享


Charles抓包分享


Charles抓包分享

手机上安装证书

打开Charles,点击:Help –> SSL Proxying –>Install Charles Root Certificate on a Mobile Device,然后用手机打开safari浏览器访问chls.pro/ssl

Charles抓包分享


Charles抓包分享


Charles抓包分享

启用手机证书

手机打开:通用 ->关于本机 -> 证书信任设置 -> 启用信任charles的证书
Charles抓包分享
这个时候就可以抓到https请求了,任务完成!

但是,打开https代理后发现手机上不了网了,没关系,想玩游戏的时候直接关掉https代理就好了
Charles抓包分享

参考网址

https://github.com/haoxinxin/blog/issues/5

相关文章: