工具

Mac下使用Charles抓包工具

介绍 Charles https://www.charlesproxy.com/ 是Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器的网络通讯协议,常常需要截取网络封包进行分析。除了在做移动开发中调试端口外,Charle

  • 工具

介绍

Charles是Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器的网络通讯协议,常常需要截取网络封包进行分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles还可以分析 Https 协议。

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

下载

请从 Charles 官网 获取正版安装包和授权。原文中的第三方下载与激活信息已在站点迁移时移除。

界面

image-20210315165625446

PC端抓包

macOS Proxy是默认勾选的,一打开Charles就开始抓取了。

image-20210315214145574

但是你会发现http接口是正常的,而https接口返回的报文却是乱码。

image-20210315214527583

通过查看Notes提示需要配置代理。

image-20210315215009924

在Proxy→SSL Proxying Setting中include添加规则,这里我配置的*.*

image-20210315215240948

重启Charles,依然报错,Notes提示需要安装根证书。

image-20210315215337622

选择Help→SSL Proxying→Install Charles Root Certificate选项,在弹出的钥匙传中,双击该证书,选择信任。

image-20210315215545672 image-20210315215602140

重启Charles,https封包抓取正常。

image-20210315215741462

移动端抓包

我手头只有iOS设备,这里只演示iOS端,其实Android端设置也差不多。

首先手机和电脑必须在同一个局域网内,在Proxy→Proxy Settings选项卡中配置端口号,这里我配的8889

image-20210315220039707

然后打开手机WLAN,点击已连接WIFI右侧的感叹号。

image-20210315220258998

进入页面后在最下面有一个HTTP代理-配置代理选项,选择手动,在服务器和端口分别输入电脑的ip和端口,最后点击存储。

image-20210315220543886

这是电脑会弹出一个窗口,选择allow。

image-20210315220644713

同样,移动端也需要安装证书,打开浏览器输入chls.pro/ssl,下载证书,安装证书。

image-20210315221147879 image-20210315221159150

这时候就可以正常抓取http和https请求了。

image-20210315221350339