ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ProxyPin 跨平台抓包:从连接手机到改写请求的完整调试流程

ProxyPin 跨平台抓包:从连接手机到改写请求的完整调试流程 ProxyPin 跨平台抓包从连接手机到改写请求的完整调试流程【免费下载链接】network_proxy_flutterOpen source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems项目地址: https://gitcode.com/GitHub_Trending/ne/network_proxy_flutterProxyPin 是一款开源免费的全平台 HTTP(S) 抓包工具同一套代理引擎跑在 Windows、macOS、Linux、Android、iOS 上可拦截、检查并重写请求。读完这篇你能独立完成捕获 → 定位 → 改写 → 归档一整轮 ProxyPin 调试且不需要在每台设备上重复配置代理。阶段一连接与准备这个阶段要回答的问题怎么把想调的那台设备的流量不动手动 Wi-Fi 代理配置地引到你面前的同一个窗口里。最小化启动3 步从源码跑起来只有三条命令。git clone https://gitcode.com/GitHub_Trending/ne/network_proxy_flutterflutter pub getflutter run -d windows第三步按你的平台换成macos、linux、android或ios。应用启动后代理随之启动主界面打开即开始监听没有单独的后台进程要管。Mac 首次打开若提示不受信任的开发者到系统设置的安全性与隐私里允许一次即可。扫码连上手机手机端装好 ProxyPin 后用其中一端扫另一端的二维码桌面端入口见 手机连接。手机侧不需要改任何 Wi-Fi 代理设置抓包配置也在两端之间自动同步——这是它和电脑开热点、手机指代理这类手工方案最大的差别。阶段二捕获与筛选这个阶段要回答的问题几十条请求同时打过来时你怎么找到出问题的那一条。浏览实时请求流请求发生即入列表每一条带着方法、URL、状态码和响应时间点开就能看到 headers 和 body。WebSocket 与 SSE 连接会按帧展示消息流不用另找工具看长连接。相比系统代理 往控制台打日志的老办法你省去了重启应用、滚动日志去对时间线的那部分工作量。按域名和状态码过滤面对一个整页请求先用域名过滤只拦截你在意的那个域其余流量直接放行既不污染列表也不干扰局域网里其他应用。再用搜索缩小范围关键词、方法、状态码可以组合。比如一个接口偶现失败直接按 5xx 过滤失败请求会立刻浮出来。另外可以用 URL 屏蔽把某个请求拦在本地、不让它到服务器验证页面卡顿是不是被这一个接口拖住的这类假设比反复翻日志快得多。阶段三解读与对比这个阶段要回答的问题找到那一条请求后差异到底出在哪里。单条请求的完整解剖请求详情里请求头、响应头、请求体、响应体分栏展示JSON 可以格式化阅读。如果接口对消息体做了 AES 加密配置解密密钥后响应会自动解密你看到的是明文而不是十六进制。这一步解决数据在眼前但读不懂的问题。多设备请求并排对比同一个请求在桌面正常、手机偶发异常是最典型的跨平台问题。两端扫码连上后手机端的流量会并入桌面端的同一视图你可以按设备来源筛出同一接口的两次调用逐字段比对 headers 和 body。需要离线比对时把两边的记录各导出一份 HAR用任意支持 HAR 的工具做 diff差异点一目了然。历史记录页还保存着之前的抓包回溯上周那个请求长什么样不需要重新复现。阶段四干预与改写这个阶段要回答的问题不重新编译、不动一行源码怎么复现和修正问题。用脚本动态替换请求头在 脚本管理界面 新建一个请求阶段的 JavaScript 脚本对命中的请求在线修改function onRequest(request) { if (request.url.includes(api.example.com/orders)) { request.headers[Authorization] Bearer test_token_for_regression; request.headers[X-Test-Env] staging; } }脚本跑在代理侧App 端的代码完全无感知。测试不同权限、不同环境的行为改脚本里的匹配条件就行不用改业务代码、不用重新出包。URL 映射与环境切换在 请求映射 里加一条规则源写https://api.example.com/orders/*目标写http://localhost:3000/*所有命中请求会直接打到你的本地服务。也可以不转发直接在规则里填一段 JSON 作为本地响应——请求根本不会出网这让你能脱离后端单独验证前端的容错逻辑。生产、测试环境来回切启用或停用这条规则即可。HTTPS 与证书锁定HTTPS 要先装上内置 CA 证书再信任桌面端有 证书安装 入口证书文件在仓库的assets/certs/ca.crt。手机上同样需要信任这一步否则加密流量读不到明文。遇到开启证书锁定的 App需要配合端侧注入证书的方式处理。这个能力只用在你们有调试权限的应用上别拿它去抓不属于你调试范围的设备。阶段五验证与收尾这个阶段要回答的问题怎么向自己和同事证明修好了并给后来的人留下现场。改前改后对比回归动手前先留证把出问题的请求收藏或导出一份抓包记录。修完后再打同一个请求若干次对比状态码与响应体。接口联调时把改前改后两份记录放在一起看 diff比凭记忆判断好像好了可靠。导出与归档给同事抓包记录会自动存入历史无需手动保存。导出时选 HAR 标准格式任何浏览器开发者工具都能直接打开——把这个文件发给同事对方就能在自己机器上重放完整的请求和响应不用你再口头描述一遍现象。场景用哪个阶段的功能注意事项手机上出问题、桌面正常阶段一扫码连接 阶段三跨设备对比两端在同一局域网手机端先信任 CA 证书只想看一个接口不想被其他请求淹没阶段二域名过滤 状态码搜索未匹配的流量放行不影响其他应用不部署就复现坏环境阶段四脚本 请求映射匹配条件先收紧避免误伤其他请求接口响应体是密文阶段四请求解密配 AES 密钥加密方式需先和后端确认一致要把现场交给同事排查阶段五 HAR 导出确认导出包含请求与响应两部分打开项目的 README_CN.md按上面三条命令把第一个包跑起来你离独立排完一轮网络问题只差一次扫码。【免费下载链接】network_proxy_flutterOpen source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems项目地址: https://gitcode.com/GitHub_Trending/ne/network_proxy_flutter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表