如何在 Mac 上面代理抓包和数据流分析

0 阅读4分钟

在 macOS 上进行网络调试时,抓包一般是第一步。 例如:

  • App 请求接口失败
  • 某个 API 返回数据异常
  • 需要确认客户端发送的参数

这些问题如果只看代码日志,很难判断网络行为,通过抓包可以直接看到请求与响应。

下面通过一个调试流程,介绍在 Mac 上抓包的几种常见方法。


一、先抓 Mac 本机的网络请求

如果需要查看 Mac 本机程序的网络请求,例如:

  • 浏览器访问 API
  • 桌面应用调用接口

最简单的方法是使用代理抓包工具,例如:

  • Charles
  • Proxyman
  • Sniffmaster

这些工具运行在本机,通过代理方式拦截请求。


配置代理抓包

操作步骤如下:

  1. 在 Mac 上启动 Charles 或 Sniffmaster
  2. 查看代理监听端口,例如 8888
  3. 在 macOS 网络设置中开启系统代理
  4. 将 HTTP 与 HTTPS 代理指向本机地址
  5. 保存设置

完成后,本机网络请求会先经过代理工具。


安装 HTTPS 证书

如果请求使用 HTTPS,需要安装代理证书。

操作步骤:

  1. 在浏览器中访问代理工具提供的证书地址
  2. 下载证书
  3. 在 macOS 钥匙串中安装证书
  4. 将证书设置为 始终信任

完成后,代理工具可以解密 HTTPS 请求。


验证抓包是否成功

打开浏览器访问一个 HTTPS 网站。

如果代理工具中出现请求记录,并且可以查看响应内容,说明抓包环境已经建立。


二、在 Mac 上抓取 iPhone 的网络请求

如果需要调试 iOS App 的网络行为,可以让 iPhone 的流量通过 Mac。

常见方式仍然是代理抓包。


设置 iPhone 代理

操作步骤:

  1. 让 iPhone 与 Mac 连接同一 Wi-Fi
  2. 打开 iPhone 设置 → Wi-Fi
  3. 点击当前网络
  4. 在 HTTP 代理中选择 手动
  5. 输入 Mac 的 IP 地址
  6. 输入代理端口(例如 8888) 端口配置 保存后返回桌面。

安装 iOS HTTPS 证书

在 iPhone Safari 中访问代理工具提供的证书地址:

  1. 下载描述文件
  2. 安装证书
  3. 在 iOS 设置中开启证书信任

完成后,代理工具可以解密 iOS HTTPS 请求。


测试 App 网络请求

打开 App 并触发网络操作,例如:

  • 登录
  • 加载列表
  • 提交表单

在代理工具中可以看到:

  • 请求 URL
  • Header
  • 请求体
  • 响应内容

三、当代理抓不到 App 请求时

有时会出现这样一种情况:

  • Safari 请求可以抓到
  • App 请求没有记录

这种情况说明 App 没有使用系统代理。

此时继续调整代理配置不会改变结果。

需要使用设备级抓包。


四、在 Mac 上使用对设备本机直接抓包工具

设备本机抓包可以直接从设备方面读取网络数据。

在这种场景下可以使用 SniffMaster(抓包大师)


使用 SniffMaster 抓取 iOS 流量

操作步骤如下:

  1. 使用 USB 将 iPhone 连接 Mac
  2. 保持设备解锁
  3. 在手机上点击 信任此电脑
  4. 启动 SniffMaster
  5. 在设备列表中选择 iPhone
  6. 按提示安装描述文件
  7. 进入 HTTPS 暴力抓包模式
  8. 点击开始

然后在手机上触发网络请求。

抓包界面会出现对应的 HTTPS 请求。 暴力抓包


只查看某个 App 的流量

设备级抓包会包含系统网络流量,例如:

  • DNS 请求
  • Apple 服务连接

为了更容易定位目标请求,可以:

  1. 点击 选择 App
  2. 勾选目标应用
  3. 再触发网络操作

抓包列表只会显示该 App 的请求。 app


五、分析 TCP 或 UDP 网络问题

如果调试的问题涉及网络连接,例如:

  • 请求延迟
  • 连接断开
  • 数据包丢失

可以使用数据流抓包。

SniffMaster 支持抓取:

  • TCP 数据流
  • UDP 数据流

数据流抓包

抓取完成后可以导出数据到 Wireshark 进行分析。

在 Wireshark 中可以查看:

  • TCP 三次握手
  • 数据重传
  • 连接关闭原因

六、不同抓包工具的使用场景

在网络抓包过程中,不同工具有不同作用:

工具抓包方式主要用途
Charles代理抓包HTTP / HTTPS 调试
Proxyman代理抓包HTTPS 调试
SniffMaster设备级抓包iOS 网络数据
Wireshark网络层抓包TCP / UDP 分析

在 Mac 上进行网络调试时,可以按以下顺序操作:

  1. 使用代理抓包工具查看 HTTP / HTTPS 请求
  2. 如果代理抓不到请求,使用Sniffmaster进行设备本机抓包
  3. 如果需要分析网络连接问题,导出数据到 Wireshark

通过这种方式,可以覆盖大多数抓包场景。

参考链接:www.sniffmaster.net/