Charles 网络抓包工具详解与实战指南
创作时间:
作者:
@小白创作中心
Charles 网络抓包工具详解与实战指南
引用
1
来源
1.
https://cloud.tencent.com/developer/article/2363615
导读
- 了解网络抓包工具 Charles 的基本原理和核心功能,以及常用功能的使用案例。
软件版本
- Charles 4.6.4
Charles
- Charles 是在 PC 端常用的网络包抓取工具,移动端开发者可能接触更多,Web 端使用浏览器开发工具或者 Postman 已经基本可以满足我们开发中的需求,但 Charles 作为一款热门的网络包抓取工具,具备一些高级特性,比如请求重发、请求断点、网速截流、DNS欺骗、动态请求重写、请求名单限制等等,在某些场景能够帮助我们进行更加高效的完成开发工作。
基本原理
- Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络包的截取和分析。
核心功能
- HTTP & HTTPS 网络包抓取(PC端、Web端、手机端)
- 网络请求修改、动态修改、重发、规则重发等
- DNS欺骗、网速模拟,支持请求白名单黑名单等。
- 支持 Mac、Win、Linux。
下载及安装
- 下载及安装比较简单,在 Charles 官网下载最新版,直接安装,使用下面在线激活网站生成激活码激活即可。
- 官网地址:https://www.charlesproxy.com/documentation/welcome/
- 激活码在线生成:https://www.zzzmode.com/mytools/charles/
界面介绍
网络包展示
- Charles 主要提供两种查看网络包的视图,分别名为 Structure 和 Sequence。Structure: 此视图将网络请求按访问的域名分类。 Sequence: 此视图将网络请求按访问的时间排序。
常用场景介绍
- Charles 的功能很多,本文主要介绍一些常用的使用场景。
PC 端网络抓包
- 勾选 Proxy | Windows Proxy
- 开启 Charles 处于 Start Recording 状态
- 上述操作完成后,打开浏览器访问,你会发现网络请求并没有被抓取,这是因为还没有配置浏览器的代理,Charles 启动的代理服务器如下图所示,你可以在 windows 设置中进行配置,也可以使用浏览器插件进行配置,本文演示使用 Chrome 代理插件 SwitchyOmega 配置:
移动端网络抓包
- ++前提PC端和手机端需要在同一网络下++
PC 端配置 - 开启 Charles 代理功能,代理配置 Enable transparent HTTP proxying
- 开启 Charles 处于 Start Recording 状态
手机端配置 - 通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。
- 打开手机端的 WIFI 代理设置,输入PC IP 和 Charles 的代理端口。
- 完成上述步骤,打开手机浏览器发起请求,看到 Charles 弹出手机请求连接的确认,点击 Allow,Charles 就可以抓取网络请求了。
开启 SSL 代理
- 上述步骤全部完成后,点击发起一个请求,发现请求内容是乱码的,其实这是因为没有开启 SSL 代理,这是为什么呢?解答:猜测 + 理解不一定完全正确 这是因为没有开启 SSL 代理时,Charles 只是单纯的转发了客户端和服务端的请求,无法解密客户端和服务端建立 SSL 的通信内容。 开启 SSL 后,Charles 和客户端、服务端分别建立了 SSL 链接,并可以解密通信的内容。 因此,开启 SSL 代理后需要 Charles 生成 CA 证书并安装。
PC 端和移动端 CA 证书安装
Charles 直接安装
- 电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。
- 设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying。
- 移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。
Charles 下载 CA 文件手动安装
- Help | SSL Proxying | save Charles Root Certificate(移动端选择.pem、PC端选择.crt)
- 上述功能都配置完成后,就可以看到如上述的正常的请求,愉快的进行 debug 。
常用操作
请求重发
- 重新发送该请求。
请求改写、动态改写 - 修改原请求并进行重新发送;根据动态规则匹配请求修改请求的请求头或请求体。
断点(Breakpoint Settings) - 可以在客户端请求服务前以及响应时进行断点。
DNS 欺骗(DNS Spoofing) - 当通过 Charles 解析 DNS 时,将使用我们配置的 DNS 进行解析。
节流 Throttle Settings(网速模拟) - 模拟上下行网速。
更多功能
常见安装问题
- 手机端安装证书后无法生效,重启一下 Charles
- Android 7.0 (API 24)之后,做了改动,使得系统安全性增加了,导致APP 默认不信任用户域的证书,需要 root 后将证书放到系统证书。
- 注意 PC 端 CA 证书存储位置
- SSL 配置好证书后仍无法正常抓取(显示 unknown),确认一下是否已经配置 需要开启 HTTPS 代理域名和端口
热门推荐
民非单位违规分红被罚,职场合规再敲警钟!
天津南开快康门诊部财务警示:分红违法!
Docker Desktop性能优化:WSL2 vs Hyper-V
新农保如何顺利转换?这种转换方式有何影响?
《哪吒2》爆火:经典形象再进化
柳永《少年游》:一首失意文人的秋日悲歌
晏殊、柳永、苏轼:《少年游》中的古典诗词魅力
《少年游:AI互动解谜》:单人剧本杀的创新之作
上市公司年报出炉:如何从中挖掘投资机会?
古今《少年游》:从流行歌曲到宋代词作的文化传承
CPI上涨0.5%,你的股票投资策略该变了?
中国证监会新政+高盛看好,股市迎来新机遇!
揭秘前十大股东:如何在股市中实现稳定收益?
妈妈生日摄影技巧大揭秘!
DIY手工项链:给妈妈最独特的爱
旅游旺季!深圳北站到河源东站车票抢购攻略
母亲生日派对:亲朋好友大集合!
母亲节必学:奶油蛋糕+炸糕大餐!
深圳到河源东最快选择:G6310次高铁全程仅需59分钟
G6310高铁带你畅游深圳至河源东
LLM加速全攻略:教你降本增效,提升响应速度的必备技巧!
高端车型空调技术如何影响家用空调选购?
消委会报告:选购益生菌产品需谨慎,这些菌株要当心
互联网技术助你突破就业困境
树莓派3B+入门:从零开始搭建你的机器人
用树莓派打造家庭智能助手:从零开始构建你的智能家居
我国科学家首次利用干细胞再生疗法功能性治愈1型糖尿病
雪球ETF粉丝节:六大策略玩转513130 ETF
失恋旅行指南:丽江治愈心碎, 寻找自我,全方位失恋恢复之旅
如何查明名下企业公司的注册地址