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