ApiCatcher for macOS

让macOS端HTTP/HTTPS抓包与调试更简单

基于 macOS 底层机制,ApiCatcher 能够自动切换系统代理,无感拦截全系统流量。内置 Keychain 证书库自动导入与信任机制,提供简洁易用的使用体验。

支持 macOS 14.0 (Sonoma) 及以上系统|Latest: v0.1.6
ApiCatcher for macOS | HTTP Capture
ApiCatcher for macOS | HTTP Request Details
ApiCatcher for macOS | Remote Realtime Sync
ApiCatcher | Request History
ApiCatcher | Request Details
ApiCatcher | JSON Viewer
ApiCatcher | Request Details Window
ApiCatcher | JSON Diff
ApiCatcher | Request Replay

专业抓包与接口调试工具

全面覆盖网络请求捕获、Mock重写、AI脚本与接口重放,提供一站式高效网络调试服务。

抓包 HTTPS 流量

在 iOS 设备上直接抓取并分析 HTTPS 请求与响应。

抓包WebSocket流量

支持抓包WS/WSS流量,并以聊天消息列表显示数据帧。

黑白名单过滤

可设置Host黑白名单过滤请求,避免抓取到其它应用的请求。

请求重放

一键重放请求,快速复现与验证问题。

组合重放

拖拽组合多个请求,支持依赖参数注入,按顺序执行。

重写请求

支持 Mock、改写、丢弃等重写行为,覆盖常见调试需求。

执行脚本

为复杂重写与加解密算法提供脚本能力,并可快速测试。

定时重放请求

支持按计划触发重放,辅助自动化测试与回归验证。

导出请求

支持导出请求记录,便于共享与复现。

导出 API

自动生成 API 文档,可导出到 Postman / Apifox。

导出图片/视频/音频

自动识别媒体请求并提取导出,支持合并分片下载。

API扫描

基于已抓流量做规则检测与统计,支持自定义扫描规则。

DNS映射

自定义域名解析规则,将域名映射到指定IP地址。

Protobuf解码

支持请求或响应Body自动Protobuf解码。

简洁易用的macOS网络抓包与调试体验

助力Mac开发者高效定位和分析 HTTP 与 WebSocket 流量。

本地系统代理自动切换

macOSPROXY

一键托管 macOS 代理设置,在抓包启动时自动修改,退出时无缝还原,完美捕获 Chrome 等主流浏览器流量,避免网络残留导致断网。

Keychain 证书智能注入

KEYCHAINTRUST

一键将本地生成的安全 CA 根证书导入 macOS 钥匙串,并自动化提权配置为“始终信任”,免去繁琐的手动操作,快速开启 HTTPS 解密。

iOS 流量毫秒级实时同步

WEBSOCKETSYNC

扫码即连!利用高性能 WebSocket 将 iOS 设备(ApiCatcher App)上捕获的数据包瞬间同步至 Mac 桌面大屏上,轻松进行离线抓包分析。

极简易用的交互设计

UIUX

发挥桌面端大屏优势的交互设计,请求响应一目了然,流量分析更高效。

macOS 抓包配置指南与局限性说明

深入配置与拦截指南,解决非系统代理应用的抓包需求

1抓包工作原理

1. 启动本地代理

当您在 ApiCatcher 软件中开启抓包时,ApiCatcher 会在您电脑本地启动一个安全的 HTTP/HTTPS 代理服务。该服务监听的端口可以在软件的主界面或设置中查看和修改(例如默认端口为 8888)。

2. 自动配置系统代理

开启抓包后,ApiCatcher 会自动将您 macOS 系统网络设置中的 HTTP 和 HTTPS 代理服务器地址修改为 127.0.0.1:端口。

3. 流量重定向与解密

此时,您电脑上的网络请求将会被自动重定向至 ApiCatcher 代理服务。为了能够解密 HTTPS 加密流量,ApiCatcher 会利用您在系统中已安装并信任的 CA 根证书,动态地为请求的域名签发证书,从而实现中间人(MITM)解密分析。

原生支持系统代理的应用(直接抓包):

  • Chrome 浏览器:Chrome 默认会自动读取并遵循 macOS 的系统代理配置,因此在开启抓包后,Chrome 上的 HTTP/HTTPS 流量会直接显示在 ApiCatcher 中。
  • 大部分默认使用系统网络连接的桌面客户端。

不支持系统代理的应用场景(需手动配置):

  • 命令行终端工具(如 curl, wget, git 等)默认不会自动读取系统代理设置。
  • 许多开发调试工具或编程语言运行环境(如 Node.js, Python, Go 或者是 Java 程序)在发起网络请求时默认忽略系统代理。
  • 启用了 SSL Pinning(证书绑定)的安全级别极高的客户端。

>_命令行工具 (curl) 代理配置

macOS 终端中的 curl 默认不遵循系统代理,您需要显式指定代理参数:

1. 单次请求走代理

您可以在执行命令时通过 -x 参数指定代理地址(假设您的 ApiCatcher 监听端口为 8888):

curl -x http://127.0.0.1:8888 https://api.github.com

由于 ApiCatcher 对 HTTPS 请求进行了中间人解密,如果您的终端尚未信任 ApiCatcher 证书,curl 可能会提示证书安全错误。您可以添加 -k 参数临时忽略证书校验:

curl -k -x http://127.0.0.1:8888 https://api.github.com

2. 为当前终端窗口(Shell 会话)配置全局代理

如果您想让当前终端窗口内的所有后续命令都自动走代理,可以设置环境变量:

export http_proxy="http://127.0.0.1:8888"
export https_proxy="http://127.0.0.1:8888"

若要取消代理,直接清空环境变量即可:

unset http_proxy https_proxy