SSF0SSF0
首页
前端
  • Node
  • Go
  • Python
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
  • 开源项目
Timeline
Github
标签
分类
首页
前端
  • Node
  • Go
  • Python
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
  • 开源项目
Timeline
Github
标签
分类
  • Bash

    • Bash 获取路径在不同类型电脑的区别
  • Git

    • Git 使用 ssh 与 https 的区别
    • Git 回滚、重置与变基
    • 文件名大小写发生变化的坑
    • Git 提交信息规范解读与实践指南
    • Git 历史邮箱统一
    • Git 拉取 GitHub 失败、配置代理及 DNS 问题排查总结
    • Git 实战教程:如何使用 Cherry-pick 或直接覆盖让两个分支同步公共功能
  • Docker

    • Docker 命令大全
    • nginx 镜像部署静态文件
    • Docker 运行命令说明
    • 使用 node 镜像运行本地项目
    • 挂载和卷的区别
    • Docker 打包多平台镜像
    • Docker 使用 mysql
    • Docker 容器网络访问问题总结
    • Docker 容器绑定ip问题
  • VuePress

    • 使用 VuePress 搭建个人博客概括
  • CI/CD

    • blog 使用 Github-Actions 部署 docker 服务器
    • GitHub Actions项目部署国内服务器文件传输时间优化
  • 服务器

    • 腾讯云使用 ssh 连接服务器(Linux 实例)
    • ssl 证书安装到 docker 服务器
    • 操作系统与架构
    • ssh 连接时长问题
    • Oracle 服务器基础知识
    • OCI 专属网络拓扑图
    • 甲骨文-宝塔面板无法访问问题
    • 甲骨文服务器防火墙问题排查记录
    • 甲骨文重启后宝塔面板无法访问
  • hosts 文件指南
  • Cloudflare DNS与代理
  • 跨平台定时任务设置指南
  • Edge 浏览器连不上代理?一场由插件引发的“夺权”与 v2rayN 的深度探索
  • 二级域名访问异常排查记录
  • 软件走代理时如何抓包
  • JetBrains AI 使用
  • Clash 代理工作原理详解

软件走代理时如何抓包?用 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 / Claude

JetBrains 的代理指向 Reqable → Reqable 设置二级代理 → 把请求转发到 Clash → 最终访问目标服务

一、设置 Reqable 抓包代理

  1. 启动 Reqable

  2. 安装并信任 Reqable 的根证书(macOS/Windows 均需信任)

  3. 设置监听地址:127.0.0.1,端口如 9000

  4. 设置 二级代理:指向 Clash 的端口,如 127.0.0.1:7890

  5. 开启 系统代理 (可选是否开启)

    • 开启会抓取所有流量,建议不开启,因为我们只需要抓取 JetBrains 的流量,有 👆 第三步把 JetBrains 配置代理为 Reqable 监听的地址端口时,JetBrains 的流量就会转发到 Reqable,精确控制显式代理链路。
  6. 点击 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.1

  • Port: 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 做最终出海出口,是一种高效、实用、适用于多种调试场景的方式;

  • 最终实现:既能科学上网,又能精准抓包!

最后更新时间:
贡献者: 何风顺
上一页
二级域名访问异常排查记录
下一页
JetBrains AI 使用