Charles 工具使用-弱网-抓包

1、安装:

  • 官网地址:https://www.charlesproxy.com/download/

2、注册:首次打开的Charles需要注册

  • 点击Help —— Register Charles进入注册界面
  • 填入Registered Name和生成的license key,点击 Register
  • 注册成功后,Charles会提示是否关闭,同意关闭后再手动打开

——在线破解链接:https://www.zzzmode.com/mytools/charles/

——在链接中输入Registered Name,点击生成,即可生成激活码license key

一、安装电脑端的证书

(如果不配置证书的话,无法抓取Https请求,Https请求会是Unknown)

1、点击Help–-> SSL Proxying—> install charles Root Certificate

2、Mac电脑——下载好之后需要信任证书

3、注意证书安装后有一年的使用时间过期后需要重新更新一下证书

  • 先点击Help ——> SSL Proxying ——> Reset Charles Root certificate重置证书

  • 需要注意的是,即使是安装完证书之后,Charles 默认也并不截取 Https 网络通讯的信息,若需要截取 Https 网络请求,需进行SSL代理设置。
  • SSL Proxying Settings(SSL 代理设置)是 Charles 中用于配置 SSL 流量解密的功能。通过启用 SSL 代理,Charles 可以拦截和解密 HTTPS 请求,帮助用户查看加密流量的内容。(这对于调试 HTTPS 请求非常有用,尤其是在查看和分析数据包内容时。)
  • 操作步骤:菜单中找到 Proxy -> SSL Proxy Settings -> 勾选Enable SSL Proxying ,并在 locations 里 添加一个 host及port为 *的 通配符 即可通配所有域名。


1. SSL Proxying 标签页

  • Enable SSL Proxying功能:启用 SSL 代理解密。勾选后,Charles 将拦截并解密符合条件的 HTTPS 请求。

用途:启用后,Charles 可以解密并显示 HTTPS 请求和响应的明文内容,适合在调试加密流量时使用。

  • Include 列表功能:指定需要解密的请求地址。可以添加特定的域名、端口或路径,以限制解密范围。

用途:只解密符合特定条件的 HTTPS 流量,避免解密不相关的请求。例如,默认包含 *:443,表示对所有 HTTPS 流量进行解密。

  • Exclude 列表功能:指定不需要解密的请求地址。可以添加域名、端口或路径,排除不需要解密的流量。

用途:如果某些流量不需要解密(如第三方支付服务等),可以将其添加到 Exclude 列表,以避免捕获敏感信息。

2. Server Certificates 标签页:管理服务器证书。

  • 用途:用户可以查看并管理 Charles 为不同服务器颁发的 SSL 证书。可以清除不再需要的证书,或导出证书以供其他用途。

3. Client Certificates 标签页:配置客户端证书。

  • 用途:当访问某些需要客户端证书认证的服务器时,可以在此处添加相应的客户端证书,确保 Charles 能够成功解密和访问受保护的资源。

4. Root Certificate 标签页:管理 Charles 根证书。

  • 用途:用于查看、安装和导出 Charles 根证书。安装 Charles 根证书是启用 SSL 代理的关键步骤,尤其是在调试 HTTPS 流量时。用户可以在此标签页中将根证书安装到系统中或导出到移动设备,以便对设备上的流量进行解密。

例:假设只想解密来自 www.baidu.com 域名的 HTTPS 流量,可以执行以下操作:

点击 Add 按钮,在弹出的窗口中输入 Host 为www.baidu.com ,Port 为 443。

点击 OK 确认。新规则会添加到 Include 列表中,Charles 将只解密符合条件的流量。

将 Charles 设置成系统代理

  • 第一次启动 Charles 后,会请求你给它设置系统代理的权限。输入电脑登录密码授予 该权限。
  • 若忽略了该请求,后续需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” –> “Mac OS X Proxy” 来将 Charles 设置成系统代理。如下所示:

 

  • 注: Charles 是通过将自己设置成代理服务器来完成封包截取的。Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。

若有需要,在Chrome中设置成使用系统的代理服务器即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。

二、安装手机端的证书

1、首先点击Charles的Proxy ——> Proxy Settings把Port端口设置成8888,选中Enable transparent HTTP proxying,点击OK。

2、 charles查看IP地址和端口

点击Help ——> SSL Proxying—> Install Charles Root Certificate on a Mobile Device or Remote Browser,弹出下面弹框

3、 手机连接电脑charles(必须处于同一个网络):在手机上找到和电脑连接的同一个wifi,设置此WiFi修改为手动代理选择手动,随后在服务器和端口中自己电脑中的IP(10.10.3.206)和端口号(8888),输入完成后点击保存。

4、在输入服务器和端口保存后,pc端会弹出下方弹框,点击allow即可。

5、连接好代理后,下载证书。

iOS:依次选择 设置->通用->VPN与设备管理->点击Charles描述文件,打开信任。

Android:

方式一:手机浏览器输入:chls.pro/ssl,下载好后点击安装,提示证书安装成功即可。

(可能问题--无法安装证书:部分机型点击证书提示找不到对应的打开文件,可以尝试后缀名从pem改为crt)

方式二:可以直接导出电脑上charles本地的证书 到手机中。

Help ——> SSL Proxying—->Save Charles root certificate...--导出到桌面,然后导入到手机中再进行安装。

三、弱网测试

1、配置弱网

  • Proxy-->Throttle Settings

2、配置参数

1)针对全局域名进行限速:

  • 在弹出的throttle settings(节流阀控制)面板上,选择enable throttling(授权节流)

Enable Throttling功能:启用限速功能。当勾选此选项时,Charles 会对所有捕获的请求应用限速设置。

注:只选择enable throttling而不添加其他域名,为全局节流(也就是对所有的http和https请求都生效)

2)只针对个别的域名进行限速:

  • 先选择enable throttling(授权节流)

第一步:选择only for selected hosts(只对选择的主机),再配置域名,这适用于只想对某些域名或 IP 进行限速的场景。

  • Only for selected hosts功能:仅对特定主机启用限速功能。

第二步:Location域名添加设置:选择http和https、填写端口号

Location 功能用途:用户可以根据需要,添加想要限速的特定主机地址。点击 Add 可以配置新的主机限速,点击 Remove 可以删除已配置的主机。

  • Protocol:指定协议类型, http 或 https。可以选择特定的协议来过滤请求,如果留空,则匹配所有协议。
  • Host:指定主机名或 IP 地址。可以输入特定的域名(例如 example.com),或使用通配符 * 表示任意域名。例如,输入 api.example.com 只记录来自该主机的请求,输入 *.example.com 则会记录所有子域名的请求。
  • Port:指定端口号。可以输入特定的端口号(例如 80 或 443),或者留空表示任意端口。例如,指定端口 443 表示只记录 HTTPS 请求。

第三步:选择throttle preset:

1)使用工具内部设好的网速(相当于一个快捷选择):3G、4G等等

2)自定义配置参数:

Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(最大传输单元)

注意:在配置参数这里,我们一般配置download(下行速率)和upload(上行速率)就足够用了,其余的字段就默认就行了。

 

开启:选择好要模拟的网速后点击OK按钮,这时Charles工具栏中的乌龟图标会亮起;则已启动弱网。

关闭: PC端点击乌龟,乌龟变灰,关闭弱网。(记得恢复手机上的代理服务器)

Charles 提供了多项预设和自定义的限速设置,以便模拟不同的网络条件。主要参数如下:

  • Throttle Preset功能:提供一些预设的网络环境选项,比如 56 kbps 调制解调器(Modem)、DSL、3G、4G 等。

用途:选择一个预设项时,相关的下载、上传带宽、延迟等参数会自动填入,方便快速设置常见的网络环境。

  • Download / Upload Bandwidth (kbps)功能:设置下载和上传的带宽(以 kbps 为单位)

用途:模拟网络速度的快慢,例如可以将下载速度设置为 256 kbps、上传速度设置为 128 kbps,以模拟低速网络环境。

  • Utilisation (%)功能:设置网络利用率的百分比,控制 Charles 实际使用的带宽占比。

用途:当利用率设为 70%,表示 Charles 实际带宽利用率只有 70%,从而模拟不稳定的网络条件。

  • Round-trip latency (ms)功能:设置往返延迟时间(以毫秒为单位),表示数据包从客户端发送到服务器并返回的时间。

用途:可以通过设置延迟模拟高延迟网络环境,测试应用在延迟较高时的表现,比如设置延迟为 250 ms,模拟海外访问的情况。

  • MTU (bytes)功能:设置最大传输单元(MTU),即数据包的最大大小。

用途:模拟不同的网络传输限制,通过降低 MTU 测试应用在数据包分片或小包传输时的表现。

  • Reliability (%)功能:设置网络的可靠性百分比,控制请求的成功率。

用途:通过调整可靠性,可以模拟不稳定的网络环境,比如设为 80% 表示网络中有 20% 的请求会失败,测试应用的重试或错误处理机制。

  • Stability (%)功能:设置网络连接的稳定性。

用途:模拟网络时不时断开的场景,观察应用在频繁连接断开时的恢复表现。

  • Unstable Quality Range (%)功能:设置不稳定质量的波动范围。

用途:用来模拟不稳定网络下带宽的波动范围,测试应用在网络波动较大时的表现。

四、抓包

1、工作原理

  • Charles 本质为 HTTP/HTTPS 代理,代理转发客户端的 HTTP/HTTPS 请求,拦截服务端响应处理后返回给真实客户端。

(由客户端发送请求、Charles 接收,再发送给服务端、服务端返回请求结果,由Charles 转发给客户端)

2、主界面视图:可以看到Charls左侧有两个查看封包的视图,分别名为 Structure 和 Sequence。

  • Structure功能(结构视图):以层次结构(树状结构)显示捕获到的网络请求,通常按域名和路径进行分组。

用途:结构视图可以帮助用户从域名和路径的角度快速找到特定的请求,非常适合查看来自同一域名的所有请求或浏览接口的层次结构。

场景:当你想要按照服务器或 API 结构来查看请求时,结构视图会更清晰,便于分析各个路径下的请求情况。

  • Sequence功能(顺序视图):按时间顺序显示所有捕获到的请求,最新的请求会显示在列表的底部。

用途:顺序视图更适合查看请求的时间顺序,帮助分析请求的执行顺序和响应时间。

场景:当你需要观察请求的发送顺序,或需要分析某些请求是否导致其他请求的触发时,顺序视图会更加直观。

另: Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

 

 

3、工具导航栏使用介绍

 

 

  • 扫帚图标(Clear Session) :清除当前会话的记录。点击此图标后,Charles 界面中显示的所有请求和响应记录都会被清空,方便用户在新的会话中开始抓包分析。
  • 红色圆圈(Record/Stop)控制 Charles 的抓包功能。表示 Charles 正在记录网络请求(即抓包功能已启动)。此时,所有网络请求和响应都会被捕获并显示在会话列表中。
  • 灰色圆圈:表示 Charles 的抓包功能已停止。此时,Charles 不会记录任何网络请求或响应。
  • 锁图标(SSL Proxying):控制 SSL 解密功能。点击此图标可以启用或禁用 SSL Proxying 功能。启用后,Charles 将可以解密 HTTPS 流量,方便用户查看加密请求的数据内容。
  • 乌龟图标(Throttling):启用或禁用限速功能(Throttling)。开启限速功能后,Charles 可以模拟不同的网络环境(如 3G、4G、Wi-Fi),方便测试应用在不同网络速度下的表现。
  • 六边形图标(Breakpoints):启用或禁用断点功能。启用时,Charles 会在请求发送前或响应返回前暂停,允许用户查看并修改请求或响应的内容,适合调试和测试不同的返回值。
  • 钢笔图标(Edit/Compose):进入编辑和重发模式。此功能允许用户选择一个已捕获的请求,并在重新发送前编辑请求的 URL、参数和头部信息,或者直接创建一个新请求。
  • 旋转箭头(Repeat):重复发送选定的请求。可以用来测试同一请求的多次发送效果,方便测试服务器的稳定性和响应一致性。
  • 绿色勾图标(Auto-Respond):启用自动响应功能。配置后,Charles 可以对符合特定条件的请求自动返回预设的响应内容,适用于本地调试和离线开发。
  • 扳手与螺丝刀图标(Settings/Tools):打开 Charles 的设置和工具选项。点击后可以进入 Charles 的配置界面,进一步设置代理、SSL、限速等功能的详细参数。
  • 齿轮图标(Proxy Settings): Charles 的代理设置。用于设置 Charles 的代理端口和监听 IP 地址,以确保 Charles 能够正确捕获到所需的网络流量。

4、过滤网络请求

  • 方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://yuantiku.com, 那么只需要在 Filter 栏中填入 yuantiku 即可。
  • 方法二:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。(如下图所示)
  • 方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项。(如下图所示)

 

三种方法适用场景:

方法一:做一些临时性的封包过滤

方法二:做一些经常性的封包过滤

方法三:临时性的,快速地过滤出一些没有通过关键字的一类网络请求。

  • 修改网络请求内容
  • 给服务器做简单的压力测试
  • 修改服务器返回内容
  • Rewrite 功能
  • 等等
### 使用Charles条件下进行移动设备抓包 #### 安装与配置Charles 为了能够在环境中使用Charles进行手机抓包,首先需要安装并设置好Charles代理工具。下载并安装最新版本的Charles软件[^3]。 #### 配置移动设备连接至同一Wi-Fi络 确保待测试的移动设备(如Android)和运行Charles的电脑处于同一个局域内。这一步骤对于成功建立代理关系至关重要[^1]。 #### 设置移动设备HTTP代理指向Charles所在主机 进入移动设备的无线络设置页面,在高级选项里找到手动HTTP代理设置项,输入PC端IP地址作为服务器名,并指定8888端口用于通信。 #### 启动SSL证书信任机制 为了让Charles能够解密HTTPS流量,需将自签名CA根证书安装到目标安卓装置上;通过浏览器访问`chls.pro/ssl`来获取该证书文件并完成安装过程。 #### 创建或调整带宽限制规则 打开Charles界面内的菜单栏选择【Proxy】> 【Throttle Settings...】,这里可以根据实际需求定义不同的络延迟、丢包率以及上下行速率参数以模拟各种真实的互联状况[^2]。 #### 应用所创建的节流方案 返回主窗口点击顶部工具条中的【Enable Throttling】按钮激活刚才设定好的条件,此时所有经过此代理转发的数据都将受到相应的约束影响。 ```bash # 假设已经按照上述说明完成了全部准备工作,则现在可以在命令行下验证连通性和性能表现变化情况 ping www.example.com ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值