软件走代理时如何抓包?用 Reqable 做中间人分析请求(以 JetBrains AI 为例)
在开发调试过程中,我们经常遇到一些软件(如 JetBrains、Postman、模拟器 App、VSCode 插件)默认只能通过代理才能访问服务端接口,比如访问 OpenAI、Claude、外网服务、公司 API 等。
而当你想抓取这些请求分析内容(URL、Header、参数)时,用常规方式却无法抓到任何东西,这就涉及一个经典问题:
“当流量本身就被配置为走代理时,该如何使用 Reqable 抓包?”
本文将以 JetBrains AI 无法连接 OpenAI 的问题为例,讲解如何用 Reqable + Clash 组合搭建抓包链路,并实现一键切换调试/正常模式, JetBrains AI 使用 文章地址。
场景描述:某些软件只能走代理,但我想抓包看看它到底请求了什么
JetBrains 系列 IDE(如 IntelliJ IDEA、WebStorm、PyCharm)默认不走系统代理,必须手动设置代理(如 Clash 提供的 7890 端口),否则无法使用 AI 功能或联网接口。
此时如果你想用 Reqable 抓包,就必须让它成为流量链路中的「中间代理」:
流量对比图:抓包前 vs 抓包中
正常使用(不抓包)
JetBrains ──(127.0.0.1:7890)──▶ Clash ──▶ [海外节点] ─▶ AI / OpenAI / Claude抓包调试(开启 Reqable)
JetBrains ──(127.0.0.1:9000)──▶ Reqable ──(二级代理: 127.0.0.1:7890)──▶ Clash ─▶ [海外节点] ─▶ AI / OpenAI / ClaudeJetBrains 的代理指向 Reqable → Reqable 设置二级代理 → 把请求转发到 Clash → 最终访问目标服务
一、设置 Reqable 抓包代理
启动 Reqable
安装并信任 Reqable 的根证书(macOS/Windows 均需信任)
设置监听地址:
127.0.0.1,端口如9000设置 二级代理:指向 Clash 的端口,如
127.0.0.1:7890开启 系统代理 (可选是否开启)
- 开启会抓取所有流量,建议不开启,因为我们只需要抓取 JetBrains 的流量,有 👆 第三步把 JetBrains 配置代理为 Reqable 监听的地址端口时,JetBrains 的流量就会转发到 Reqable,精确控制显式代理链路。
点击
Start启动 Reqable 抓包
二、给 Reqable 设置二级代理
重要提醒
如果不设置二级代理,流量到了 Reqable,就没有办法继续转发到 Clash,导致请求“断在中间”,无法真正出海访问 OpenAI。
这是一个关键易错点:
正确的做法是:
在 Reqable 中打开「二级代理」(即上游代理)
添加一个指向 Clash 本地代理端口(通常是
127.0.0.1:7890)的规则
Reqable 中的「二级代理」设置说明:
在菜单栏选择:
代理 → 二级代理 → 新建配置 → 填写配置信息填写:
代理地址:
127.0.0.1:7890模式选择:「允许模式」
匹配规则写
*(表示所有请求都通过 Clash 转发),表示全部流量都走上游代理(Clash)。
模式区别说明:
| 模式 | 行为描述 | 适用场景 |
|---|---|---|
| 允许模式 | 只有匹配规则的请求会走上游代理,其它直连 | 仅抓 openai.com / 某域名 |
| 绕行模式 | 所有请求默认走上游代理,匹配的绕过 | 默认出海,排除内网、本地服务等 |
Reqable 二级代理文档地址:https://reqable.com/zh-CN/docs/capture/proxy#secondary
三、配置 JetBrains 代理(指向 Reqable)
打开 JetBrains 设置:
Settings → Appearance & Behavior → System Settings → HTTP Proxy配置如下:
Proxy Type: Manual
Host:
127.0.0.1Port:
9000(Reqable 的监听端口)勾选认证(如果你设置了)
点击 Test Connection 测试是否通过。
此时如果你想用 Reqable 抓包,就必须让它成为流量链路中的「中间代理」。
四、让配置切换更方便 —— 一键切换脚本
当你频繁在「调试抓包」和「正常使用」之间切换时,可以使用 Shell 脚本快速修改 JetBrains 的代理配置文件。
脚本:switch_jetbrains_proxy.sh
#!/bin/bash
CONFIG_FILE="$HOME/Library/Application Support/JetBrains/IntelliJIdea2024.1/options/other.xml"
CLASH_PORT="7890"
REQABLE_PORT="9000"
set_proxy() {
mode=$1
if [ "$mode" == "clash" ]; then
echo "设置为直接代理(Clash)"
sed -i '' "s/<option name=\"PROXY_HOST\" value=\".*\"/<option name=\"PROXY_HOST\" value=\"127.0.0.1\"/" "$CONFIG_FILE"
sed -i '' "s/<option name=\"PROXY_PORT\" value=\".*\"/<option name=\"PROXY_PORT\" value=\"$CLASH_PORT\"/" "$CONFIG_FILE"
elif [ "$mode" == "reqable" ]; then
echo "设置为抓包代理(Reqable)"
sed -i '' "s/<option name=\"PROXY_HOST\" value=\".*\"/<option name=\"PROXY_HOST\" value=\"127.0.0.1\"/" "$CONFIG_FILE"
sed -i '' "s/<option name=\"PROXY_PORT\" value=\".*\"/<option name=\"PROXY_PORT\" value=\"$REQABLE_PORT\"/" "$CONFIG_FILE"
else
echo "用法:$0 clash | reqable"
exit 1
fi
echo "✅ 配置已更新,请重启 JetBrains IDE 生效"
}
set_proxy $1使用方法:
chmod +x switch_jetbrains_proxy.sh
./switch_jetbrains_proxy.sh clash # 连接 Clash(正常使用)
./switch_jetbrains_proxy.sh reqable # 切换到 Reqable(抓包模式)可用于 IntelliJ / WebStorm / PyCharm,只需修改配置文件路径
适用软件场景总结(不限 JetBrains)
| 软件 / 场景 | 是否适用 | 说明 |
|---|---|---|
| JetBrains AI | ✅ 推荐 | 经典“需手动代理”的软件 |
| Postman / Insomnia | ✅ | 可配置代理 |
| VSCode 插件(如 Copilot) | ✅ | 多数支持 SOCKS 代理 |
| 安卓模拟器 App 抓包 | ✅ | 可配置系统代理 |
| Curl/Python 请求 | ✅ | 支持 http_proxy 环境变量 |
| Git / CLI 工具 | ✅ | 可通过 git config 或环境变量设置代理 |
总结
当一个软件必须走代理时,它的请求就不会再“裸奔”,你抓不到它的真实 HTTP 请求;
要抓这些请求,就得把抓包工具放在代理链路中间;
用 Reqable 设置为“中间人代理”,再配合 Clash 做最终出海出口,是一种高效、实用、适用于多种调试场景的方式;
最终实现:既能科学上网,又能精准抓包!