Charles 功能
Charles是一款代理服务器,通过成为电脑或浏览器的代理,截取请求和结果进行抓包分析,支持重发网络请求,方便后端调试。
1 Charles安装
- Charles安装
- 官网下载:https://www.charlesproxy.com/latest-release/download.do。
- 由于Charles收费,安装后需注册,启动Charles>Help>Register Charles。
- Registered Name:https://zhile.io。
- License Key:48891cf209c6d32bf4。
- 输入Registered Name以及License Key>Register>确定>重新启动Charles。
1-1 安装证书
- 安装证书
- Help>SSL Proxying>Install Charles Root Certificate>安装证书>本地计算机>选“将所有的证书都放入下列存储”。
- 浏览>选“受信任的根证书颁发机构”>确定>下一页>完成>确定,安装好之后需要重新打开,确认下证书是否生效。
- Help>SSL Proxying>Install Charles Root Certificate>证书路径>如果证书状态为“该证书没有问题”,则安装成功。
1-2 修改配置
- 修改配置
- 安装好证书之后,使用Charles工具抓取到的HTTPS请求仍然显示为
,说明配置还有其他问题。 - Proxy>SSL Proxying Settings>点Include底部的Add>Host和Port都填
*
>OK>重启Charles。 - SSL Proxying Settings还允许设置SSL访问地址,例如
*.com:443
、*.cn:443
(这两设置允许访问大部分地址)等。
- 安装好证书之后,使用Charles工具抓取到的HTTPS请求仍然显示为
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
(2) 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界面,允许匿名访问,也可配置用户名和密码。
(4) 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过滤
2-2 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
(2) 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 黑名单的配置
5-2 缓存返回数据
5-3 修改请求地址
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 代理设置
6-2 安装证书
Charles 功能
https://stitch-top.github.io/2022/05/10/ce-shi-gong-ju/tt03-charles/tt01-charles-gong-neng/