Charles手机抓包终极指南:从零开始,轻松掌控网络请求(附2025最新避坑技巧)
Meta描述:
还在为App网络调试抓狂?本文手把手教你使用Charles进行手机抓包,涵盖HTTP/HTTPS配置、SSL证书安装、常见问题解决及高级技巧,无论你是iOS还是Android开发者、测试工程师,还是逆向学习者,一篇搞定所有Charles手机抓包难题,附详细图文步骤,让你秒变网络调试高手!

引言:为什么你需要掌握Charles手机抓包?
在移动应用开发和测试的日常工作中,我们时常会遇到以下难题:
- App接口异常,但后端日志却一切正常,问题究竟出在哪个环节?
- 想要分析第三方App(如微信、淘宝)的网络请求逻辑,以进行竞品分析或逆向学习。
- 需要模拟各种网络环境(如弱网、高延迟、特定错误码)来测试App的健壮性。
- 前后端联调时,接口数据格式对不上,却无法快速定位是哪一方的问题。
Charles,作为一款强大的HTTP代理/HTTP监控/反转代理工具,正是解决这些问题的“瑞士军刀”,它能将手机与服务器之间的所有网络请求“拦截”并呈现在你的电脑上,让你清晰地看到每一个请求的URL、Headers、Cookies以及返回的完整数据。
本文将摒弃晦涩的理论,以最直白、最实用的方式,带你一步步掌握Charles手机抓包的核心技能。
准备工作:工欲善其事,必先利其器
在开始之前,请确保你已经准备好以下“弹药”:

- 一台电脑: 安装有Windows、macOS或Linux操作系统。
- Charles软件: 官方下载并安装最新版的Charles,官网提供14天免费试用,对于学习完全足够。
- 一台手机: 可以是iOS(iPhone/iPad)或Android设备,并确保与电脑连接在同一个Wi-Fi网络下。
- 基础认知: 了解什么是IP地址、端口号、HTTP/HTTPS协议。
核心步骤:三步搞定手机抓包(通用Wi-Fi法)
这是最常用、最主流的方法,适用于几乎所有支持Wi-Fi的手机。
第一步:在电脑上配置Charles代理
启动Charles: 打开你已经安装好的Charles。
开启代理: 点击菜单栏的
Proxy->Proxy Settings...。设置代理端口: 在弹出的窗口中,确保
Enable transparent HTTP proxying被勾选,默认的端口是8888,通常无需修改,点击OK保存。开启抓包: 点击菜单栏的
Proxy->Start Recording(或直接按快捷键Ctrl/Cmd + R),Charles的菜单栏会显示一个红色的圆形按钮,表示已经开始记录网络请求。
第二步:在手机上配置代理服务器
这是连接手机与Charles的关键一步。
获取电脑IP地址:
- Windows: 打开命令提示符,输入
ipconfig,找到你正在使用的Wi-Fi适配器的IPv4地址。 - macOS: 打开“系统偏好设置” -> “网络”,选择当前连接的Wi-Fi,查看“IP地址”。
- Linux: 打开终端,输入
ifconfig或ip addr,找到对应网卡的inet地址。
- Windows: 打开命令提示符,输入
在手机上设置:
iOS (iPhone/iPad):
- 进入
设置->无线局域网。 - 点击你当前连接的Wi-Fi网络名称右侧的
i图标。 - 向下滑动,找到
HTTP代理,选择手动。 - 在
服务器一栏填入你电脑的IP地址。 - 在
端口一栏填入8888(与Charles中设置的端口一致)。 - 确保
认证是关闭状态。
- 进入
Android (不同品牌路径略有差异,大同小异):
- 进入
设置->网络和互联网->WLAN。 - 点击你当前连接的Wi-Fi网络名称右侧的
>或齿轮图标。 - 选择
高级选项或代理。 - 选择
手动。 - 在
代理主机名一栏填入你电脑的IP地址。 - 在
代理端口一栏填入8888。
- 进入
确认连接: 设置完成后,手机会自动断开Wi-Fi并重新连接,手机上的所有网络流量都会通过你的电脑Charles进行代理。
第三步:解决HTTPS抓包问题(SSL证书信任)
默认情况下,Charles无法抓取HTTPS加密的请求,因为它会扮演“中间人”的角色,需要手机信任它“伪造”的SSL证书。
在手机上安装证书:
- 打开手机上的浏览器(推荐使用Safari、Chrome或Firefox)。
- 在地址栏输入:
chls.pro/ssl(这是Charles官方提供的证书安装地址,非常方便)。 - 页面会自动下载并提示你安装描述文件(证书)。
- 根据系统提示,输入你的手机锁屏密码,并一路点击“安装”和“允许”。
信任该证书:
iOS: 安装完成后,需要手动信任它。
- 进入
设置->通用->VPN与设备管理(或关于本机->证书信任设置)。 - 你会看到一个名为
Charles Proxy CA...的描述文件。 - 点击它,然后开启
信任开关。
- 进入
Android: 安装过程通常会自动信任,如果没有,请进入
设置->安全->更多安全设置->加密与凭据->从存储设备安装,找到下载的.pem或.crt文件进行安装和信任。
完成以上三步,恭喜你!在手机上任意打开一个App(如微信、浏览器),并执行一些操作(如刷新朋友圈、搜索内容),你将立刻在电脑的Charles界面上看到抓取到的网络请求了!
进阶技巧与常见问题(避坑指南)
掌握了基础操作后,这些技巧和解决方案将让你事半功倍。
技巧1:过滤与聚焦请求
当请求量巨大时,如何快速找到目标?
- 过滤请求: 在Charles的搜索框中输入关键词(如你的App包名、API域名),可以只显示包含该关键词的请求。
- Focus功能: 选中一个请求,右键选择
Focus,此时只有与该请求相关的流量(如同一个域名的所有请求)才会显示,非常高效。
技巧2:模拟弱网环境
测试App在网络不佳时的表现是开发中必不可少的一环。
- 点击菜单栏
Proxy->Throttle Settings...。 - 勾选
Enable Throttling。 - 你可以预设或自定义网速(如GPRS、3G、Edge),也可以自定义下载/上传速度和延迟。
- 开启后,手机的网络请求就会按照你设定的规则进行“减速”。
技巧3:修改请求与响应
这是Charles最强大的功能之一,用于调试和Mock数据。
- 修改请求: 选中一个请求,右键选择
Edit...,你可以修改URL、Headers、请求体等,然后发送出去,观察服务器的响应。 - 修改响应: 选中一个请求,右键选择
Map Local...,你可以将这个请求的响应内容映射到你本地的文件,当你再次访问这个URL时,Charles会直接返回你本地文件的内容,而不会向真实服务器发送请求,这对于模拟各种API响应(如成功、失败、空数据)极其有用。
Q1:为什么Charles抓不到我App的请求?
- 检查代理: 确认手机Wi-Fi代理设置正确,且电脑和手机在同一网络。
- 检查App: 某些App(尤其是银行类、金融类App)会检测代理环境,一旦发现存在代理,就会拒绝联网,这是App的自我保护机制。
- 检查端口占用: 确保电脑上没有其他程序占用了8888端口。
- 检查防火墙: 电脑的防火墙可能阻止了Charles的连接,请暂时关闭防火墙测试。
Q2:手机上安装了Charles证书,但HTTPS请求依然显示“Unknown”?
- 证书不匹配: 确保你通过
chls.pro/ssl下载的证书与你手机上的系统时间一致,如果手机时间错误,证书验证会失败。 - 证书信任问题: 仔细检查 iOS的“证书信任设置” 和 Android的“已安装的安全证书列表”,确保Charles的根证书已被信任。
- HSTS策略: 少数网站会启用HSTS(HTTP Strict Transport Security),强制客户端只能通过HTTPS访问,并且不允许用户信任非CA签发的证书,这种情况在Charles中难以破解。
Q3:如何抓取App的HTTPS请求,但手机上却无法正常使用网络(证书错误提示)?
这通常是因为你只信任了Charles的根证书,但没有为该特定域名开启“始终信任”(在iOS上表现为弹出“不信任此网站”的警告)。
- 解决方案: 当手机弹出证书警告时,点击 “继续” 或 “高级” -> “继续访问”,这样,系统会为这次会话临时信任该证书,如果问题依旧,可以尝试在手机的
设置->隐私与安全性(或类似路径)中,找到关于该App的证书描述文件,并手动开启信任。
从“抓包小白”到“网络调试大神”
Charles手机抓包是每一位移动开发者、测试工程师乃至逆向爱好者的必备技能,它不仅仅是一个工具,更是一种让你透视App内部网络行为的“X光机”。
通过本文的学习,你已经掌握了:
- 基础抓包流程: 配置电脑代理 -> 配置手机代理 -> 安装SSL证书。
- 核心应用场景: 接口调试、性能分析、逆向学习、Mock数据。
- 高级操作技巧: 过滤、弱网模拟、请求/响应修改。
- 常见问题排查: 解决了代理无效、HTTPS不抓、证书报错等一系列“拦路虎”。
技术的掌握离不开实践,现在就打开你的电脑和手机,亲手操作一遍,随着你使用Charles的次数越来越多,你会发现它调试问题的效率远超你的想象,熟练运用Charles,将极大地提升你的工作效率和问题定位能力,助你在软件开发的道路上走得更远、更稳。
持续关注我们,获取更多前沿、实用的软件开发干货!