Proxyman 是一款专为 macOS 设计的现代化网络调试代理工具,主要用于拦截、检查和修改 HTTP/HTTPS 流量。它通过中间人(MitM)技术,帮助开发者、测试人员深入分析移动设备与桌面应用同服务器之间的网络通信,是进行 API 调试、性能分析和安全测试的强大助手。
一、核心界面与工作区详解
Proxyman 的主界面采用清晰的三栏式布局,分为工具栏、侧边栏和主内容区。
- 顶部工具栏:包含核心控制按钮,如启动/停止代理(
Cmd + R)、清空当前会话(Cmd + K)、切换工具视图等。 - 左侧边栏:按会话(Sessions)、工具(Tools)、断点(Breakpoints)、脚本(Scripts)等分类组织。其中“Sessions”是核心,按域名或应用分组显示所有捕获的请求。
- 中央主内容区:选中一个请求后,此处显示详细面板,包含:
- 概览(Overview):请求与响应的基本信息、时间线。
- 请求内容(Request):查看和编辑请求头、查询参数、表单数据、请求体(支持 JSON、XML 等格式高亮)。
- 响应内容(Response):查看和编辑响应头、响应体(支持图像预览、JSON 格式化等)。
- 性能(Timing):以瀑布流形式展示请求各阶段耗时。
- 底部状态栏:显示代理状态(如运行端口:9090)、捕获过滤条件等。
二、完整操作流程:从启动到导出
1. 创建/启动代理会话
操作步骤:
- 启动 Proxyman 应用,默认代理服务会自动在端口 9090 启动(状态栏显示绿色指示灯)。
- 若需更改端口或设置,请前往菜单栏 Proxyman -> Preferences -> Proxy 进行配置。
- 在 Mac 上,系统代理可一键设置:点击顶部工具栏 “Proxy” -> “Set as System Proxy”,或使用快捷键
Cmd + Shift + S。
2. 配置设备以捕获流量
对于 iOS 模拟器或 Android 模拟器:流量通常自动捕获,无需额外配置。
对于物理 iOS 设备:
- 确保 Mac 与 iOS 设备在同一 Wi-Fi 网络。
- 在 iOS 设备的 Wi-Fi 设置中,配置 HTTP 代理为手动,输入 Mac 的 IP 地址和 Proxyman 的端口(如 9090)。
- 在 iOS 设备 Safari 中访问
http://proxy.man/ssl,下载并安装 Proxyman 的 CA 证书。 - 进入 iOS 的 设置 -> 通用 -> 关于本机 -> 证书信任设置,完全信任已安装的证书。
3. 捕获、筛选与查看流量
- 流量开始捕获后,所有请求会实时出现在左侧 “Sessions” 列表中。
- 使用顶部搜索框(
Cmd + F)可按 URL、状态码、方法等快速过滤。 - 点击任意请求,在主内容区查看其详情。双击请求可打开独立窗口进行深度分析。
4. 使用断点修改请求与响应
- 在左侧边栏切换到 “Breakpoints” 标签。
- 点击 “+” 添加新断点规则,可基于 URL 通配符(如
*api*)进行匹配。 - 当匹配的请求经过时,Proxyman 会自动暂停,弹出编辑窗口。
- 在编辑窗口中,可直接修改请求参数、头部或响应内容,然后点击 “Resume” 继续发送。
5. 导出会话数据
- 在 “Sessions” 列表中,可单选、多选(按住
Cmd点击)或全选请求。 - 右键点击选择 “Export Sessions…”,或使用菜单栏 “File” -> “Export Sessions”。
- 选择导出格式:支持 Proxyman 原生格式(.proxyman)、HTTP Archive 格式(.har)或 cURL 命令。
- 选择保存路径,点击导出即可。
三、常用功能进阶技巧
- 地图本地化(Map Local):将特定网络请求重定向到本地文件。
- 在请求上右键,选择 “Tools” -> “Map Local”。
- 设置 URL 匹配规则,并选择一个本地 JSON、HTML 或其他文件作为模拟响应。
- 脚本注入(Scripting):使用 JavaScript 动态修改流量。
- 在左侧边栏进入 “Scripts”,创建新脚本。
- 可编写在请求前(
onRequest)或响应后(onResponse)执行的函数,灵活修改内容。
- 性能瀑布图分析:在请求的 “Timing” 面板中,仔细分析 DNS 查询、TCP 连接、SSL 握手、TTFB 等各阶段耗时,定位性能瓶颈。
- 对比会话:选中两个请求,右键选择 “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 的通用工作流程撰写,具体菜单项名称和位置可能随版本更新略有变化。建议在使用时结合软件内提示和官方文档获取最新信息。
“`







