在 Mac 上配置 Charles,抓取 iOS 手机端接口请求

工具官网:https://www.charlesproxy.com/

一、简介

Charles 是一款强大的网络抓包工具,支持 HTTP 和 HTTPS 协议,适用于调试手机 App、微信小程序、H5 页面等网络请求。

它能作为代理服务器,转发并记录本机及其他设备发出的请求,方便开发人员查看请求/响应的详细信息,甚至进行参数修改与调试。

本教程将介绍如何在 Mac 上配置 Charles,实现对 iOS 设备网络请求的抓取,适用于接口联调、排查问题等场景。

二、前提条件

  1. 一台 Mac,并已安装 Charles;
  2. 一部 iOS 设备(如 iPhone);
  3. iOS 设备和 Mac 必须在 同一个局域网(例如连接同一个 Wi-Fi);
  4. 推荐 iOS 版本在 iOS 10.3 以上(证书信任操作不同);

三、Mac 上配置 Charles

1. 启用 Mac 的 HTTP 代理监听

打开 Charles,依次点击:

复制代码
Proxy > macOS Proxy

✅ 勾选此项后,Charles 将作为本机的代理服务器,监听网络请求。

2. 启用 SOCKS 代理(可选)

如需支持 SSH 、代理等场景,可启用 SOCKS:

复制代码
Proxy > Proxy Settings > SOCKS
  • 勾选 "Enable SOCKS proxy"
  • 端口默认是 8889,可自定义

⚠️ 若无特定需求,建议跳过此配置。



3. 配置 HTTPS 抓包(SSL Proxying)

Charles 默认 不会抓取 HTTPS 请求,需要手动配置监听域名。

推荐方式:全局抓取

打开 Charles:

复制代码
Proxy > SSL Proxying Settings

点击【Add】,添加以下配置:

  • Host:*
  • Port:443

此设置会抓取所有 HTTPS 请求,适用于开发环境。

⚠️ 正式环境请谨慎使用"全局抓取",避免敏感数据泄露。


四、获取 Mac 的 IP 地址

在 Charles 中:

复制代码
Help - Local IP Address

或在终端执行命令:

复制代码
ipconfig getifaddr en0

📌 注意:请确认你使用的是连接 Wi-Fi 的网卡,如 en0、en1 不同机型可能不同。


五、配置 iOS 代理

  1. iPhone 与 Mac 保持连接同一个 Wi-Fi;
  2. 打开 iPhone【设置】>【无线局域网】;
  3. 点击当前连接的 Wi-Fi 网络;
  4. 下滑到【HTTP 代理 - 配置代理】> 设置为"手动";
  5. 服务器填写:Mac 的 IP 地址
  6. 端口填写:8888(Charles 默认端口)

六、安装 Charles 根证书(Mac端)

打开 Charles:

复制代码
Help > SSL Proxying > Install Charles Root Certificate

此操作会在 Mac 上安装并信任 Charles 的根证书,确保抓取 HTTPS 请求正常工作。

七、安装 Charles 证书(iOS端)

打开 Charles:

复制代码
Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser

Charles 会弹出提示框,显示一个供手机访问的地址

步骤如下

  1. 使用 iPhone 的 Safari 浏览器 打开:chls.pro/ssl
    http://charlesproxy.com/getssl
  2. 点击"允许"下载配置描述文件;
  3. 安装证书:设置 > 已下载描述文件 > 安装
  4. 信任证书:设置 > 通用 > 关于本机 > 证书信任设置 > 打开 Charles Root Certificate 开关

⚠️ 一定要用 Safari 打开链接并安装!

否则无法触发描述文件安装流程,HTTPS 抓包将失败。

八、抓包验证

  1. 确保 Charles 已启动;
  2. iPhone 访问任意网络接口(App 或浏览器);
  3. 首次连接 Charles 会弹出提示,点击"Allow"允许连接;
  4. 成功后 Charles 中会显示 iOS 的请求流量;

九、建议与拓展

  • 抓包完毕后记得关闭手机代理和证书信任,避免影响正常网络;
  • Charles 支持 Map Local、Breakpoints、Throttle 等高级功能,适合接口联调和前后端 Mock;
  • 可与 iOS 模拟器、安卓真机等多平台联调使用;
相关推荐
千里马学框架1 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
茶底世界之下1 天前
为什么预览、录制、离线导出不能共享同一个背压策略?
ios·swift
2501_916007471 天前
苹果商店iOS应用上架费用全面解析:开发者计划与审核费用计算
android·ios·小程序·https·uni-app·iphone·webview
2501_916008891 天前
如何实现iOS App代码混淆:SwiftShield使用指南
android·ios·小程序·https·uni-app·iphone·webview
2501_915909061 天前
移动端开发工具链怎么组合比较好,iOS、Android、跨端三套配置方案
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
开开心心就好1 天前
安卓手写文字生成工具,多种纸张一直免费
网络·网络协议·tcp/ip·leetcode·智能手机·电脑·模拟退火算法
2501_916008891 天前
怎么用 Godot 导出 iOS 应用并上架 App Store?签名字段该填什么?
android·ios·小程序·https·uni-app·iphone·webview
开开心心就好2 天前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
2501_915918412 天前
iOS编程用什么软件好?主流工具Xcode、AppCode、CodeRunner与新兴快蝎对比
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
终端安全笔记2 天前
iOS 27 之后「策略空转」:设备升级不报错,但旧策略不再管它
android·网络·安全·ios·智能手机