1. Charles抓包工具入门从安装到基础配置第一次接触Charles时我也被这个看似复杂的工具吓到了。但实际用下来发现它就像个透明的快递中转站能让我们清楚地看到手机和电脑发出的每一个网络请求。先说说最基础的安装步骤我在Windows和Mac上都试过过程大同小异。官网下载安装包后建议直接搜Charles官网别在第三方网站下载双击安装就和普通软件没区别。安装完打开会提示试用选择Continue Using Charles就能开始30天试用期。这里有个小技巧每次打开Charles时先断开网络连接等软件完全启动后再联网可以延长试用提示出现的间隔。证书安装是第一个关键步骤。点击顶部菜单Help SSL Proxying Install Charles Root Certificate这时会弹出系统钥匙串窗口。重点来了找到刚安装的Charles证书右键选择显示简介在信任设置里把所有选项都改成始终信任。我遇到过好几次证书安装后仍不生效的情况都是因为这个信任设置没做完整。基础代理配置在Proxy Proxy Settings里默认端口8888。建议勾选Enable transparent HTTP proxying这样能自动识别大部分应用的流量。有个容易忽略的细节如果电脑开了防火墙记得在入站规则里放行Charles的端口否则手机连不上代理。2. HTTPS解密全攻略证书配置与SSL代理HTTPS抓包是Charles最强大的功能也是新手最容易踩坑的地方。第一次看到加密的乱码时我也一头雾水直到搞明白SSL代理的配置逻辑。手机端配置比电脑端更复杂些。以iOS为例确保手机和电脑在同一个WiFi下在无线局域网设置里配置手动代理输入电脑的IP和8888端口。这时用Safari访问chls.pro/ssl下载证书——这个域名是Charles官方提供的快捷方式。安装时要特别注意在设置 通用 VPN与设备管理里完成安装后必须再到设置 通用 关于本机 证书信任设置里启用完全信任。Android手机有个特殊问题7.0以上系统默认不信任用户安装的证书。解决办法有两种要么root手机要么在app的网络安全配置里添加Charles证书。实测用小米手机开发时我都是先在开发者选项里开启允许用户证书否则抓不到某些app的包。电脑端配置有个隐藏技巧在Proxy SSL Proxying Settings里可以添加需要解密的特定域名。我习惯直接添加*:443通配所有HTTPS流量但有些金融类app会做证书绑定SSL Pinning这时候就需要用第三方工具配合处理了。3. 实战抓包技巧从基础操作到高级调试真正用好Charles需要掌握几个核心功能。先说最简单的请求拦截右键任意请求选择Breakpoints就能设置断点。有次测试支付功能我就是通过断点修改了金额参数发现后台没做校验这个漏洞后来被评级为严重级别。Map Local功能是我最常用的mock数据方案。比如测试数据可视化大屏时先正常请求获取真实响应保存为本地JSON文件后修改里面的数据范围值。之后在Tools Map Local里映射到本地文件刷新页面就能看到模拟的超大数值效果。记得测试完要取消勾选有次我忘了关排查了半天为什么线上环境显示测试数据。弱网模拟在移动端测试特别实用。Proxy Throttle Settings里预设了从2G到4G的各种网络环境。测试时发现当设置成2G网络约5-9kbps时我们app的图片加载策略有问题导致页面卡死。后来前端加了根据网速动态降级图片质量的逻辑用户体验提升明显。4. 常见问题排查与性能优化用Charles最头疼的就是证书问题。有次所有配置都正确但安卓手机就是抓不到包后来发现是系统时间不对——证书验证依赖准确的时间。现在我的检查清单是1) 证书是否安装且信任 2) 代理设置是否正确 3) 系统时间是否准确 4) 是否关闭了VPN类软件。性能方面长时间抓包会导致Charles占用大量内存。我习惯在Recording Settings里设置自动保存勾选Save on quit和Limit recording to。还有个实用技巧用Filter过滤无关请求比如我们后端服务域名是api.xxx.com就设置只显示*.api.xxx.com的请求这样界面更清爽。对于抓包过程中出现的CONNECT请求这是HTTPS建立的隧道连接。如果在SSL代理设置里添加了对应域名但还是看不到内容试试重启Charles和客户端应用。我遇到最诡异的一次是微信小程序抓包失败最后发现是微信自己的网络模块做了特殊处理换了测试版Charles才解决。