如何用 Reverse Proxy 抓取不支持 HTTP 代理的应用流量

如何用 Reverse Proxy 抓取不支持 HTTP 代理的应用流量 的封面图

本文演示如何使用 Reverse Proxy 工具,抓取不支持 HTTP 代理的应用或客户端的 HTTP/HTTPS 流量。

Reverse Proxy 要解决什么问题?

如果你的应用或客户端默认不支持 HTTP 代理,Proxyman 就无法抓取其流量。

以下列表举例说明了哪些库不支持 HTTP 代理,或者需要额外配置才能使用:

  • cURL
  • NodeJS 中的 fetch 或 axios,
  • Python 库中的 request
  • Android TV 盒子
  • 嵌入式设备
  • 老旧的网络 C 库
  • ...

使用 Reverse Proxy,就有可能实现抓取。

使用方法

前提条件

  • 你的应用或客户端不支持 HTTP 代理
  • Proxyman 无法抓取你的应用或客户端的任何流量
  • 你可以访问应用或客户端的源代码

为便于演示,我将使用 cURL 命令行。

默认情况下,cURL 不使用代理,因此 Proxyman 无法抓取其流量。

我们选择 cURL 只是出于演示目的。你也可以使用参数 --proxy localhost:9090,让 cURL 直接使用代理,而无需借助 Reverse Proxy 工具。

Proxyman 无法抓取 HTTP 流量
Proxyman 无法抓取 HTTP 流量
  1. 假设你的服务器是 https://producthunt.com
  2. 打开 Proxyman -> Tools 菜单 -> Reverse Proxy
  3. 使用以下信息创建一条新规则
  • Name: Map to Production
  • Local Port: 10000
  • Remote Host: <your real server>
  • Remote Port: 443 (HTTPS)
设置 Reverse Proxy 规则
设置 Reverse Proxy 规则
  1. 点击 Save 保存
  2. 打开应用或客户端的源代码 -> 将 Base URL 改为 localhost:10000
  3. 启动你的应用或客户端
  4. 在 Proxyman 中查看流量
抓取不支持 HTTP 代理的应用流量
抓取不支持 HTTP 代理的应用流量

如图所示,即使不使用 --proxy localhost:9090 参数,Proxyman 也能抓取 cURL 的流量。

  • 如果你想使用 HTTPS,请使用 https://localhost:10000
  • 如果你想使用 HTTP,请使用 http://localhost:10000

总结

有些应用默认不支持 HTTP 代理,因此 Proxyman 可能无法抓取其流量。不过,使用 Reverse Proxy 可以帮你解决这个问题。

如果客户端支持,请优先尝试显式代理设置或 Proxyman Automatic Setup。当你可以修改客户端的 Base URL 但无法设置代理时,再选择 Reverse Proxy。请确保本地端口未被占用;只有当远程服务器需要原始的 Host 请求头时,才启用 Preserve Host,因为不匹配的值可能导致服务器拒绝请求。


希望这篇短文能帮你保持条理清晰。祝编码愉快!👨‍🚀

Proxyman 是一款高性能的 macOS 应用,可用于抓取和检查来自 iOS 设备、iOS 模拟器和 Android 设备上的应用及域名的 HTTP(s) 流量。

前往 https://proxyman.com/ 获取。

Noah Tran
Noah Tran

最后修订于 2026年7月19日。 新增选择 Reverse Proxy 的指导,以及检查端口和 Host 请求头的说明。

抓取未设置代理的客户端流量

在 Proxyman 中创建本地 Reverse Proxy,并将客户端的 Base URL 指向该端口。

试用 Proxyman Reverse Proxy