AI News HubLIVE
站内改写3 分钟阅读

Show HN:ProxyBoy——带AI助手的Windows HTTP/HTTPS调试代理

ProxyBoy是一款Windows原生的中间人(MITM)HTTP/HTTPS代理工具,内置基于GitHub Copilot的AI助手。它可以捕获、检查和修改网络流量,支持GraphQL感知、Protobuf解码、网络限速、断点规则等功能。该项目受Proxyman启发,是一个实验性开源工具。

来源Hacker News AI作者: InfraScaler

ProxyBoy是一款专为Windows设计的HTTP/HTTPS调试代理工具,采用中间人(MITM)技术捕获、检查和修改网络流量。它不仅提供了类似Charles Proxy、Fiddler或Proxyman的核心功能,还创新性地集成了基于GitHub Copilot SDK的AI助手,能够通过对话方式分析流量、创建规则并协助调试网络问题。

主要功能

  • 流量捕获:自动生成SSL证书,拦截HTTP和HTTPS流量。
  • 请求/响应检查器:查看头部、正文(JSON、HTML、XML、图像)、时序和元数据。
  • GraphQL感知:检测GraphQL操作,显示操作名称,并按操作过滤流量。
  • Protobuf/gRPC解码:使用.proto文件解码Protobuf负载,缺失模式时回退到原始字段检查。
  • 无缓存切换:剥离缓存验证器并返回Cache-Control: no-store以强制获取最新响应。
  • 网络限速:使用预设或自定义的上传、下载和延迟配置文件模拟慢速连接。
  • 请求合成器:从头构建请求,通过ProxyBoy发送并内联检查捕获结果。
  • 上游代理链:通过HTTP或SOCKS5上游代理转发流量,支持绕过模式和凭证安全存储。
  • Cookie检查器:将请求Cookie和Set-Cookie头部解析为结构化的可搜索视图。
  • AI助手:基于GitHub Copilot的聊天面板,可搜索流量、分析模式、创建规则和导出数据。
  • 断点规则:在半空中暂停请求/响应,检查后转发或丢弃。
  • 映射本地规则:用本地文件替代远程响应以模拟API。
  • 映射远程规则:将匹配的请求转发到不同的上游主机,无需更改客户端。
  • 捕获规则:在全部捕获、白名单和黑名单模式间切换,控制记录内容。
  • 系统代理集成:从应用内切换Windows系统代理的开启/关闭。
  • HAR导出/导入:标准HAR格式,便于与其他工具共享捕获内容。
  • 可配置列:显示/隐藏列,按任何字段排序,时间戳。
  • 正文搜索:在流量过滤中包含请求和响应文本正文,进行更深层次的搜索。
  • WebSocket和SSE检查:在流量详情视图中捕获实时WebSocket帧和服务器发送事件。
  • 脚本规则:在应用内运行沙盒化JavaScript规则,无需离开即可重写请求和响应。
  • 复制为cURL:右键点击任何请求复制为cURL命令。
  • 键盘快捷键:快速访问代理控制、HAR导入/导出、过滤和流量操作。
  • 主题模式:深色、浅色或系统主题选择,支持实时切换。
  • 可分离的AI面板:将助手弹出到单独窗口。

AI助手工具

内建的Copilot代理可调用以下工具:

  • getRecentTraffic:获取最新捕获的流。
  • searchTraffic:按URL、正文或头部搜索流。
  • getErrorFlows:查找所有4xx/5xx响应。
  • getFlowDetails:深入查看特定请求。
  • createBreakpointRule:创建断点以暂停匹配的流量。
  • createMapLocalRule:用本地文件模拟API端点。
  • exportHar:导出捕获的流量为HAR。
  • controlProxy:启动或停止代理引擎。

工具执行可设置为自动批准或每次调用需要手动确认。

技术栈

  • Electron + React + TypeScript
  • http-mitm-proxy:MITM代理引擎
  • @github/copilot-sdk:AI代理能力
  • sql.js:进程内SQLite持久化
  • Tailwind CSS:样式
  • react-virtuoso:虚拟化流量列表
  • Electron Forge:构建和打包

开始使用

前提条件:Windows 10/11,Node.js 20+,GitHub Copilot订阅(AI助手需要,代理本身无需)。

安装与运行

git clone https://github.com/pjperez/proxyboy.git
cd proxyboy
npm install
npm start

构建安装程序npm run build,输出到out/make/

使用方式

  1. 点击状态栏中的播放按钮或使用AI助手启动代理。
  2. 在设置中切换“系统代理”,或手动配置浏览器/应用使用127.0.0.1:9090
  3. 点击任意行查看请求/响应详情。
  4. 使用断点、映射本地或映射远程视图创建规则,或询问AI助手。
  5. 点击侧边栏中的机器人图标或按Ctrl+Shift+A启动AI助手。

SSL/HTTPS:需要信任ProxyBoy的根CA证书。转到设置→安装证书,这将把本地根CA安装到Windows证书存储中。安装后重启浏览器。证书在本地生成并存储于用户配置文件中,不会离开您的机器。

已知限制

  • 仅Windows:系统代理集成使用Windows注册表,但其他部分理论上可跨平台。
  • 断点中无法编辑请求/响应:目前只能检查和转发/丢弃,尚不支持修改。
  • SSL检查问题:某些启用证书固定或HSTS预加载的网站可能无法通过代理。
  • Cloudflare挑战:位于Cloudflare浏览器挑战后的网站通常无法通过任何MITM代理。
  • 自动化测试非常有限:虽然已有少量测试,但覆盖率远未达到生产就绪。

致谢

  • Proxyman:主要灵感来源。如果需要成熟可靠的代理工具,强烈建议使用Proxyman。
  • Charles Proxy和Fiddler:该领域的其他优秀工具。
  • GitHub Copilot:驱动AI助手,并帮助构建了整个应用。

许可证

MIT许可证——可随意使用。