如何在 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/

相关推荐
私人珍藏库12 分钟前
【Android】 VidFetch一键下载各大平台视-内置播放器
android·app·工具·软件·多功能
代码的小搬运工12 分钟前
【iOS】MVC架构
ios·架构·mvc
2501_9327502614 分钟前
Android Activity 生命周期解析
android
伟大的大威19 分钟前
自托管 Happy 服务器,用 iPhone 远程操控 Claude Code(含全部踩坑+约束清单)
运维·服务器·iphone
鹤卿12331 分钟前
iOS OC NSUserDefaults
macos·ios·objective-c
2601_9557674241 分钟前
移动OLED屏幕偏振光缺失的补偿方案:圆偏振光还原与磁控溅射AR协同光学系统设计
ios·ar·iphone·圆偏振光护眼·iphone17护眼钢化膜·#观复盾护景贴
猪脚饭还是好吃的1 小时前
【分享】VideoGuru视频编辑 裁剪拼接,合并调速 解锁会员
android
三少爷的鞋1 小时前
避免 Flow + combine 的首值陷阱:用 StateFlow 保证 UI 始终有状态
android
YIN_尹1 小时前
【Linux系统编程】基础IO第一讲——系统文件IO
android·java·linux·c++
sweet丶1 小时前
Swift async/await并发框架深入总结
ios