Show HN:ProxyBoy——帶AI助手的Windows HTTP/HTTPS除錯代理
ProxyBoy是一款Windows原生的中間人(MITM)HTTP/HTTPS代理工具,內建基於GitHub Copilot的AI助手。它可以捕獲、檢查和修改網路流量,支援GraphQL感知、Protobuf解碼、網路限速、斷點規則等功能。該專案受Proxyman啟發,是一個實驗性開源工具。
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/。
使用方式:
- 點選狀態列中的播放按鈕或使用AI助手啟動代理。
- 在設定中切換“系統代理”,或手動配置瀏覽器/應用使用
127.0.0.1:9090。 - 點選任意行檢視請求/響應詳情。
- 使用斷點、對映本地或對映遠端檢視建立規則,或詢問AI助手。
- 點選側邊欄中的機器人圖示或按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許可證——可隨意使用。