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許可證——可隨意使用。