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

相关推荐
诸神黄昏EX2 小时前
Android Safety 系列专题【篇六:SecureElement安全硬件】
android
blackorbird2 小时前
Coruna 间谍软件活动持续扩散,苹果破例为旧版iOS设备推送双版本安全补丁
macos·ios·objective-c·cocoa
一只特立独行的Yang2 小时前
Android Graphics - openGL and Vulkan小结
android
房开民2 小时前
使用cuda核函数加速 yolov5后处理
yolo·macos·cocoa
段帅星2 小时前
mac下sublime text优化
macos·编辑器·sublime text
for_ever_love__2 小时前
Objective-C 学习 单例模式
学习·ios·单例模式·objective-c
peachSoda72 小时前
小程序图片加载优化方案
前端·微信小程序·小程序
cola_wh3 小时前
避免团队多人 cocopods 冲突未验证
ios
2501_915921433 小时前
在 Linux 上通过命令行上架 iOS APP,Fastlane + AppUploader(开心上架)
android·linux·运维·ios·小程序·uni-app·iphone