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

在 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 的请求。


五、分析 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

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

参考链接:https://www.sniffmaster.net/

相关推荐
宁夏雨科网2 小时前
印刷包装公司开发小程序的优势与内容
小程序·展示小程序·印刷包装·印刷公司小程序
程序员陆业聪2 小时前
AI编码提效实战:Skill、Rule与上下文工程
android
程序员陆业聪3 小时前
AI驱动需求梳理与Spec编写:让PRD自动变成技术方案
android
报错小能手4 小时前
Swift EventBus讲解
开发语言·ios·swift
李艺为5 小时前
Android Studio使用switch匹配资源id时报需要常量表达式解决办法
android
lifewange5 小时前
Idea如何调大字体
java·macos·intellij-idea
YaBingSec6 小时前
玄机靶场-2024ccb初赛sc05 WP
android·运维·网络·笔记·安全·ssh
常利兵6 小时前
解锁Android嵌入式照片选择器,让你的App体验丝滑起飞
android
eastyuxiao7 小时前
MMM 工具一键去水印+检测 批处理脚本(Windows/Mac 双版本)
人工智能·windows·macos·ai音乐去水印
Ching·7 小时前
MAC mini上面安装虚拟机windows11的安装详细过程及其问题解决
windows·macos·wmware fusion