Charles 功能

Charles是一款代理服务器,通过成为电脑或浏览器的代理,截取请求和结果进行抓包分析,支持重发网络请求,方便后端调试。

1 Charles安装

1-1 安装证书

  • 安装证书
    • Help>SSL Proxying>Install Charles Root Certificate>安装证书>本地计算机>选“将所有的证书都放入下列存储”。
    • 浏览>选“受信任的根证书颁发机构”>确定>下一页>完成>确定,安装好之后需要重新打开,确认下证书是否生效。
    • Help>SSL Proxying>Install Charles Root Certificate>证书路径>如果证书状态为“该证书没有问题”,则安装成功。

Charles安装-安装证书

1-2 修改配置

  • 修改配置
    • 安装好证书之后,使用Charles工具抓取到的HTTPS请求仍然显示为,说明配置还有其他问题。
    • Proxy>SSL Proxying Settings>点Include底部的Add>Host和Port都填*>OK>重启Charles。
    • SSL Proxying Settings还允许设置SSL访问地址,例如*.com:443*.cn:443(这两设置允许访问大部分地址)等。

Charles安装-修改配置

1-3 Charles界面

  • Charles界面
    • 菜单栏:File、Edit、View、Proxy(用得多)、Tools(用得多)、Window、Help。
    • 工具栏(从左到右依次)
      • 清除会话、开始/停止抓取会话、开始/停止SSL代理、开始/停止限流、开始/停止断点。
      • 依据所选内容编辑新请求、重新发送一个请求、验证会话、工具、配置(Proxy配置等)。
    • 两种视图模式
      • Structure:树状结构显示,将网络请求按访问的域名分类。
      • Sequence:水平结构显示,将网络请求按访问的时间排序,可修改为类似Fiddler的左右视图模式。
      • 修改为左右视图模式操作:菜单栏Edit>Preferences>Viewers>Sequence view layout选Tall>OK。

(1) Structure

Charles安装-Charles界面-Structure

(2) Sequence

Charles安装-Charles界面-Sequence

(3) Proxy菜单

  • Recording Settings
    • Options:通过Recording Size Limit限制记录数据的大小。
    • Include:只有与配置地址相匹配的请求才会被录制。
    • Exclude:只有与配置地址相匹配的请求才不被录制。
  • Throttle Settings
    • 在Start Throttling状态下,可通过Throttle Settings配置Charles的网速模拟配置。
    • 勾选Enable Throttling启用网速模拟配置,在Throttle Preset下选择网络类型即可。
  • Breakpoint Settings
    • 勾选Enable Breakpoints启用断点模式,选Add,填入需监控的Scheme、Procotol、Host等信息。
    • 可以用来观察和修改请求内容,以及响应内容,但在这个过程中,需要注意请求的超时时间问题。
  • Web Interface Settings:勾选Enable web interface启用Web界面,允许匿名访问,也可配置用户名和密码。

Charles安装-Charles界面-Proxy菜单

(4) Tools菜单

Charles安装-Charles界面-Tools菜单

2 过滤网络请求

  • 过滤网络请求
    • 通常情况下,需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。
    • Focus过滤:在已经捕捉到的会话列表中,选中想过滤的网络请求,右击选Focus。
    • Filter过滤:在Filter栏中填入需要过滤出来的关键字,例如服务器的地址是https://www.csdn.net/,填入csdn。
    • 捕捉会话设置:菜单栏Proxy>Recording Settings>Include>Add>Protocol为https,Host为www.csdn.net>OK。

2-1 Focus过滤

过滤网络请求-Focus过滤

2-2 Filter过滤

过滤网络请求-Filter过滤

2-3 捕捉会话设置

过滤网络请求-捕捉会话设置

3 模拟慢速网络

  • 模拟慢速网络
    • 开发时常需要模拟慢速网络或高延迟网络,以测试在移动网络下应用的表现是否正常。
    • 配置:Proxy>Throttle Settings>勾选Enable Throttling>设置Throttle Preset的类型。
    • 完成配置后,可通过Proxy>Start Throttling或快捷键Ctrl+T,来启用或停止模拟操作。
    • 关于:2G、3G、4G网络制式上下行频率、速率比较

模拟慢速网络

4 修改返回内容

  • 修改返回内容
    • 让服务器返回指定内容,方便调试,例如列表页面为空、数据异常、部分耗时的网络请求超时等。
    • Charles提供了Map、Rewrite以及Breakpoints功能,都可以达到修改服务器返回指定内容的目的。
      • Breakpoints:断点功能,适合做一些临时性的修改。
      • Rewrite:重写功能,适合对网络请求进行一些批量和长期的正则替换。
      • Map:重定向功能,适合长期地将某一些请求重定向到另一个网络地址或本地文件。

4-1 断点功能

  • 断点功能
    • 会话列表中右键点击某会话,例如:https://www.baidu.com路径下的content-search.xml,然后选Breakpoints。
    • Proxy>Breakpoints Settings中断点设置完成,打开浏览器重新访问百度,Charles中将弹窗一个Breakpoints断点窗口。

修改返回内容-断点功能

4-2 重写功能

  • 重写功能
    • 例如:百度请求获取到带“百度搜索”字样的返回结果,重写设置改成了“重写测试”。
    • 当浏览器再次请求百度页面时,获取到的返回结果就是带“重写测试”字样的返回结果。
    • Tools>Rewrite Settings>勾选Enable Rewrite>左侧Add>Name填百度搜索>右下角Add>填写Rewrite Rule>OK。

修改返回内容-重写功能

4-3 重定向功能

  • 重定向功能
    • Map Local:重定向到本地文件中,Tools>Map Local Settings>Enable Map Local>Add>Edit Mapping>OK。
    • Map Remote:重定向到另一网络,Tools>Map Remote Settings>Enable Map Remote>Add>Edit Mapping>OK。

(1) Local

修改返回内容-重定向功能-Local

(2) Remote

修改返回内容-重定向功能-Remote

5 Tools中的配置

  • Tools中的配置
    • 黑名单的配置
      • 不想某些请求发起,直接返回无法访问,可以使用黑名单配置,例如访问百度操作。
      • Tools>Block List Settings>勾选Enable Block List>Add>填写Edit Location>OK。
    • 缓存返回数据
      • 多用于APP数据缓存,在没有Server情况下程序也能运行,Charles菜单栏Tools>Mirror Settings。
      • 勾选Enable Mirror和Only for selected locations>Save to路径选择>Add>填写Edit Location>OK。
    • 修改请求地址
      • 即DNS欺骗设置,把域名解析到一个假的IP上,不一定要使用locahost,或者127.0.0.1。
      • Tools>DNS Spoofing Settings>Enable DNS Spoofing>Add>填写Edit DNS Spoof>OK。

5-1 黑名单的配置

Tools中的配置-黑名单的配置

5-2 缓存返回数据

Tools中的配置-缓存返回数据

5-3 修改请求地址

Tools中的配置-修改请求地址

6 PC与移动端抓包

  • PC与移动端抓包
    • PC端:确保Charles处于Start Recording状态,勾选Proxy>Windows Prcsoxy。
    • 移动端:通过把网络委托给Charles工具进行代理,与服务端对话。
      • 手机和电脑需在一个局域网内,不一定非要同个IP段,只要是在同一个路由器下即可。
      • 电脑端设置
        • 确保电脑防火墙已经关闭,如果不抓取电脑上的请求,可以取消勾选Proxy>Windows Proxy。
        • 代理设置:Proxy>Proxy Settings>Port默认8888,勾选Enable transparent HTTP proxying。
      • 移动端设置
        • Help>SSL Proxying>Install Charles Root Certificate on a Mobile Device or Remote Browser。
        • 手机WiFi的代理设置:连接的WiFi设为手动代理,输入主机名(电脑IP)和端口(默认填写8888)。
        • 如果是IOS,则在手机中打开浏览器,地址栏输入“chls.pro/ssl”下载证书,再进行证书的安装。
        • 如果是安卓,那么直接等待Charles页面弹窗,提示允许代理的操作,再点击Allow按钮就可以了。
        • 如果不小心点了Deny按钮,则Proxy>Access Control Settings>在IP Range中Add手机的IP>OK。

6-1 代理设置

PC与移动端抓包-代理设置

6-2 安装证书

PC与移动端抓包-安装证书


Charles 功能
https://stitch-top.github.io/2022/05/10/ce-shi-gong-ju/tt03-charles/tt03-01-charles-gong-neng/
作者
Dr.626
发布于
2022年5月10日 23:48:53
许可协议