Charles 配置指南:VPN 环境下的 iOS 抓包实践和吐槽

Charles 配置指南:VPN 环境下的 iOS 抓包实践和吐槽

前言

Charles 浪费了我一整天的时间,但是本文来记录下配置过程。

不推荐 Charles 的原因

  • 下载的 beta 版本,卡顿一塌糊涂,鼠标飘让索子哥都PTSD,输入法慢你十拍出字。
  • 内存占用极高,3060ti + i5 + 16G 无法满足(CPU拉了点, 真不配),停止 recording 时依然占用 2700M 内存。
  • 几个版本 GUI 选项设计不一,让人很迷惑。
  • 说是 30 天免费试用,实际上 30 分钟强制重启,不会保留任何抓包数据, 这绝对是第一让人崩溃的,和第一条并列第一。
  • 考虑购买正版 $50 。

在这里下载

beta 版 Charles 下载

版本特性:

  • 有 dark mode,初次启动就会自动配合系统改变,但是我没找到过 theme 项在哪。

  • 没有中文。

兼顾 VPN 环境如何配置 Charles 和 iOS

VPNCharles 非常容易冲突,官方文档的解决方法是:

Try starting Charles before establishing the VPN connection. If you quit and relaunch Charles while the VPN is running, you may need to disconnect and reconnect the VPN again.

先启动 Charles,再启动 VPN - 很有效,但是这也意味着每 30 分钟 Charles 强制关闭并开启,你也需要重启一次 VPN。

以下是我的另外一些 VPN 环境下的配置,可以尽量避免 VPN 和 Charles 冲突:

  1. 打开 Charles 先点击右上角的圆 Stop Recording。当 “Recording” 关闭后,Charles 将不再记录新的网络请求。

    点击中上方的垃圾桶图标 “Clear the current Session” 按钮清除 Charles 中已经记录的所有网络请求,防止等会太卡 (虽然做了这些还是会卡)。

  2. 代理和端口设置:

    • Proxy - SSL Proxying Settings - 勾选 Enable SSL proxying

    • 在 Include 下面的框中,点 +host 填写 *port 填写 443,并勾选这个 *:443,点击 Done

  3. 以下基于我的 Clash 监听 7890 端口:

    • Proxy - External Proxies Settings
    • 先勾选 “Use external proxy servers”,
    • 勾选 Web Proxy (HTTP):填写 192.168.2.2:7890 (替换成你的以太网/WLAN ipv4 地址)
    • 勾选 Secure Web Proxy (HTTPS):填写 127.0.0.1:7890
    • 取消勾选 “Use external proxy servers”,
    • 点击 Done

什么时候需要 Start Recording:

  • 只有当你需要抓取 App 或网页的网络请求时,才需要开启 Recording。
  • 在以下情况下,你需要开启 Recording:
    • 当你需要分析一个 App 的 API 时。
    • 当你需要调试一个网页的网络请求时。
    • 当你需要查看 App 或网页发送和接收的数据时。
  • 在你不需要抓包的时候,你应该关闭 Recording。 这可以减轻 Charles 的负担,并避免 Charles 记录大量的无用数据。
  • 如果你只是想测试 Charles 的连接是否正常,或者测试你手机的代理设置是否正确,你不需要开启 Recording。

设置手机:

  • 在清理完这些之后,设置你的手机:

    1. 确保 Clash 已经启动并连接。
    2. 确保 Charles 已经启动,并且 Recording 已关闭。
    3. 在你的 iOS 设备上,设置代理:
      • 打开 “设置” -> “Wi-Fi”。
      • 找到你连接的 Wi-Fi 网络,点击右边的 “i” 图标。
      • 滑动到底部,找到 “配置代理”,选择 “手动”。
      • 服务器: 192.168.2.2 (你的电脑的 IP 地址)
      • 端口: 8888 (Charles 的代理端口)
      • 点击 “存储”。
    4. 在你的 iOS 设备上访问 chls.pro/ssl,并安装 Charles 的证书。 (通常这一步就失败了)
    5. 在你的 iOS 设备上,启用 Charles 证书的完全信任。
    6. 打开你想要分析的 App,或者在 Safari 中访问一个网页,然后开启 Charles 的 Recording。

    可能手机 chls.pro/ssl 页面会显示以下错误或者 “服务器已断开连接” 等:

    Charles Error Report
    
    Failure
    
    No buffer space available (maximum connections reached?): connect
    
    The actual exception reported was:
    
    java.net.SocketException: No buffer space available (maximum connections reached?): connect
    Charles Proxy, https://www.charlesproxy.com/
    

    直接考虑用以下方案代替:

    直接将 Charles 的证书配置文件传到手机,然后手机上下载安装,这是一个非常有效的绕过方法。

如何操作:
  1. 导出 Charles 的证书:

    • 打开 Charles,点击菜单栏上的 “Help” -> “SSL Proxying” -> “Save Charles Root Certificate…”。
    • 选择一个保存路径,将证书保存为 .pem 文件。
  2. 将证书传输到手机:

    • 你可以使用多种方法将证书传输到手机,例如:
      • iCloud (推荐)
      • 文件传输助手
      • 通过 Airdrop (如果你是 MacOS 和 iOS)。
  3. 在手机上安装证书:

    • 在你的 iOS 设备上,打开 “设置” -> “通用” -> “VPN 与设备管理”。
    • 你会看到一个 “已下载描述文件” 的选项,点击它。
    • 点击 “安装” -> 然后按提示操作。
    • 安装完成后,你需要手动开启证书的完全信任。打开 “设置” -> “通用” -> “关于本机” -> “证书信任设置”,找到你安装的证书,然后开启信任。

完成以上步骤后,你的 iOS 设备应该就可以正常抓包了。

温馨提示:
  • 如果你之前在手机上安装过 Charles 的证书,请先删除旧的证书,然后再安装新的证书。
  • 你仍然需要保证你的电脑和手机在同一网络下。
  • 你仍然需要确保你的电脑开启 Charles 和 Clash。

祝你玩得开心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值