Proxyman for Mac 网络调试与分析工具详解

Proxyman 是一款专为 macOS 设计的现代化网络调试代理工具,主要用于拦截、检查和修改 HTTP/HTTPS 流量。它通过中间人(MitM)技术,帮助开发者、测试人员深入分析移动设备与桌面应用同服务器之间的网络通信,是进行 API 调试、性能分析和安全测试的强大助手。

一、核心界面与工作区详解

Proxyman 的主界面采用清晰的三栏式布局,分为工具栏、侧边栏和主内容区。

  1. 顶部工具栏:包含核心控制按钮,如启动/停止代理(Cmd + R)、清空当前会话(Cmd + K)、切换工具视图等。
  2. 左侧边栏:按会话(Sessions)、工具(Tools)、断点(Breakpoints)、脚本(Scripts)等分类组织。其中“Sessions”是核心,按域名或应用分组显示所有捕获的请求。
  3. 中央主内容区:选中一个请求后,此处显示详细面板,包含:
    • 概览(Overview):请求与响应的基本信息、时间线。
    • 请求内容(Request):查看和编辑请求头、查询参数、表单数据、请求体(支持 JSON、XML 等格式高亮)。
    • 响应内容(Response):查看和编辑响应头、响应体(支持图像预览、JSON 格式化等)。
    • 性能(Timing):以瀑布流形式展示请求各阶段耗时。
  4. 底部状态栏:显示代理状态(如运行端口:9090)、捕获过滤条件等。

二、完整操作流程:从启动到导出

1. 创建/启动代理会话

操作步骤:

  1. 启动 Proxyman 应用,默认代理服务会自动在端口 9090 启动(状态栏显示绿色指示灯)。
  2. 若需更改端口或设置,请前往菜单栏 Proxyman -> Preferences -> Proxy 进行配置。
  3. 在 Mac 上,系统代理可一键设置:点击顶部工具栏 “Proxy” -> “Set as System Proxy”,或使用快捷键 Cmd + Shift + S。

2. 配置设备以捕获流量

对于 iOS 模拟器或 Android 模拟器:流量通常自动捕获,无需额外配置。

对于物理 iOS 设备:

  1. 确保 Mac 与 iOS 设备在同一 Wi-Fi 网络。
  2. 在 iOS 设备的 Wi-Fi 设置中,配置 HTTP 代理为手动,输入 Mac 的 IP 地址和 Proxyman 的端口(如 9090)。
  3. 在 iOS 设备 Safari 中访问 http://proxy.man/ssl,下载并安装 Proxyman 的 CA 证书。
  4. 进入 iOS 的 设置 -> 通用 -> 关于本机 -> 证书信任设置,完全信任已安装的证书。

3. 捕获、筛选与查看流量

  1. 流量开始捕获后,所有请求会实时出现在左侧 “Sessions” 列表中。
  2. 使用顶部搜索框(Cmd + F)可按 URL、状态码、方法等快速过滤。
  3. 点击任意请求,在主内容区查看其详情。双击请求可打开独立窗口进行深度分析。

4. 使用断点修改请求与响应

  1. 在左侧边栏切换到 “Breakpoints” 标签。
  2. 点击 “+” 添加新断点规则,可基于 URL 通配符(如 *api*)进行匹配。
  3. 当匹配的请求经过时,Proxyman 会自动暂停,弹出编辑窗口。
  4. 在编辑窗口中,可直接修改请求参数、头部或响应内容,然后点击 “Resume” 继续发送。

5. 导出会话数据

  1. 在 “Sessions” 列表中,可单选、多选(按住 Cmd 点击)或全选请求。
  2. 右键点击选择 “Export Sessions…”,或使用菜单栏 “File” -> “Export Sessions”。
  3. 选择导出格式:支持 Proxyman 原生格式(.proxyman)、HTTP Archive 格式(.har)或 cURL 命令。
  4. 选择保存路径,点击导出即可。

三、常用功能进阶技巧

  1. 地图本地化(Map Local):将特定网络请求重定向到本地文件。
    • 在请求上右键,选择 “Tools” -> “Map Local”。
    • 设置 URL 匹配规则,并选择一个本地 JSON、HTML 或其他文件作为模拟响应。
  2. 脚本注入(Scripting):使用 JavaScript 动态修改流量。
    • 在左侧边栏进入 “Scripts”,创建新脚本。
    • 可编写在请求前(onRequest)或响应后(onResponse)执行的函数,灵活修改内容。
  3. 性能瀑布图分析:在请求的 “Timing” 面板中,仔细分析 DNS 查询、TCP 连接、SSL 握手、TTFB 等各阶段耗时,定位性能瓶颈。
  4. 对比会话:选中两个请求,右键选择 “Compare Sessions”,可并排对比请求/响应的差异。

四、常见问题与解决方案

问题 可能原因 解决方案
无法捕获 HTTPS 流量,显示“Tunnel to …” 设备未正确安装或信任 Proxyman CA 证书。 在设备上重新访问 http://proxy.man/ssl 下载证书,并在系统设置中完全信任它。
iOS 设备安装证书后仍提示不安全 iOS 对证书有严格限制,可能需要额外配置。 确保在 设置 -> 通用 -> 关于本机 -> 证书信任设置 中,对 Proxyman 证书启用完全信任。
某些应用(如银行类)的流量无法捕获 应用使用了证书绑定(SSL Pinning)技术。 Proxyman 无法直接绕过。需配合越狱设备或使用修改后的客户端(如通过逆向工程禁用证书绑定)。
捕获的请求过多,难以查找 未使用过滤功能。 1. 使用顶部搜索框。2. 在左侧边栏底部点击 “Filter”,设置只显示特定域名或状态的请求。3. 右键常用域名,选择 “Focus” 进行聚焦。
断点功能未触发 断点规则设置错误或未启用。 检查断点规则(如 URL 模式)是否正确,并确保断点开关(蓝色按钮)处于启用状态。

五、Proxyman for Mac 快捷键汇总

功能 快捷键 (Mac) 说明
启动/停止代理 Cmd + R 快速切换代理捕获状态
清空当前会话 Cmd + K 清除主窗口所有捕获的请求
设置/取消系统代理 Cmd + Shift + S 将 Proxyman 设置为 macOS 系统代理
搜索会话 Cmd + F 在会话列表中快速搜索
新建窗口 Cmd + N 打开一个新的 Proxyman 窗口
打开偏好设置 Cmd + , 打开应用程序偏好设置
切换下一个标签 Ctrl + Tab 在请求详情面板的不同标签间切换
复制为 cURL Cmd + Shift + C 将选中的请求复制为 cURL 命令
切换全屏模式 Cmd + Ctrl + F 进入或退出全屏视图
隐藏/显示侧边栏 Cmd + Option + S 切换左侧边栏的显示状态

提示:本文档基于 Proxyman 的通用工作流程撰写,具体菜单项名称和位置可能随版本更新略有变化。建议在使用时结合软件内提示和官方文档获取最新信息。

“`

爱上MAC 一站式Mac软件下载平台
第三方登录
captcha
第三方登录