3个抓包技巧:不用再在真机和电脑间来回改代理配置
【免费下载链接】network_proxy_flutterOpen source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems项目地址: https://gitcode.com/GitHub_Trending/ne/network_proxy_flutter
在手机上设好 WiFi 代理、改完端口重启应用、连不上又切回模拟器——这个循环你大概率卡过。ProxyPin 是一款基于 Flutter 的开源免费抓包工具,在 Windows、Mac、Linux、Android、iOS 五个端拦截、检查和重写 HTTP(S) 流量,你看到的就是设备上真实发出的原始报文。
📊 能力全景
| 能力 | 省掉的传统动作 | 一句话价值 |
|---|---|---|
| 扫码连接 | 在手机上手动配置 WiFi 代理,测完再手动还原 | 扫一下就连上,配置自动同步 |
| 域名过滤 | 在一大串无关请求里肉眼翻找目标 | 只拦你关心的域,不干扰其他应用 |
| 脚本与请求重写 | 改代码、重新编译打包、再安装验证头改动 | 写几行 JS 在线改请求,应用不用重编 |
| 请求映射 | 改代码里的环境地址并重新打包 | 本地配置或脚本直接响应,不请求远程服务 |
🛠 工作流实操:一次跨平台抓包配置,从启动到改写
以"真机上跑一个 App,要看到它的请求、改掉它的鉴权头、把接口指到本地"为完整任务,全程约 4 步。
启动本地代理并信任 CA 证书
目的:HTTPS 内容要看到明文,前提是系统信任 ProxyPin 的 CA 证书。
操作:
- 启动桌面端并点开始,首次打开 Mac 版会提示不受信任开发者,先到"系统偏好设置-安全性与隐私-允许任何来源"。
- 在 SSL 设置 里完成本机证书安装,让证书链生效:ProxyPin 用自己的 CA 给目标域名现场签发证书,浏览器信任它才能解密。
你会看到:浏览器访问 https 站点后,列表里出现的是解密的请求体和响应体,而不是一串 CONNECT 握手。
把手机流量引到本地代理
目的:去掉"手动配 WiFi 代理"这个最容易出错的环节。
操作:
- 桌面端工具栏点 手机连接,弹窗生成二维码,内容形如
proxypin://connect?host=<电脑IP>&port=<代理端口>。 - 手机装 ProxyPin 扫码,随后在域名过滤里只勾选目标 App 的域名。
你会看到:手机 App 的请求逐条出现在桌面列表里,手机的系统设置里没有任何代理配置。
拦截请求并替换鉴权头
目的:不改应用代码,在线修改一条在途 HTTPS 请求的报文。
操作:在 脚本管理 里新建脚本,基于内置模板写 onRequest 钩子:
async function onRequest(context, request) { request.headers['Authorization'] = 'Bearer test-token'; return request; }你会看到:重新触发一次请求后,列表详情里的 Authorization 已经是你写死的测试值;onResponse 钩子还能在响应回到客户端前改写状态码和 body。
把生产 API 映射到本地响应
目的:接口没上线,或者不想污染线上数据,让请求根本不出设备。
操作:
- 进入 请求映射 入口,新增一条 URL 匹配规则。
- 响应内容选"本地配置"直接填报文,或选脚本按请求内容动态返回。
你会看到:命中规则的请求由本地直接应答,远端服务收不到这次调用,抓包历史照常记录。
场景深潜:两个真实调试任务
真机上的 App,不改一行代码验证参数
背景:真机 App 直连线上环境,你要改一个请求参数确认某个偶现 bug 是不是客户端传错导致的。传统做法卡在"改参数必须改代码"这一步:改、重编、装、复现,一轮试错几十分钟起步,中间连不上代理还要再折腾。用 ProxyPin 的路径:手机扫码连上,域名过滤只留目标域,脚本里替换 header 或 body,然后重发。结果:验证一轮就是"重发一次请求",不用重新打包应用。
后端接口没就绪,前端先跑通
背景:联调阶段接口还没部署,但页面逻辑要先验证。传统做法要么写一套 mock 服务部署起来,要么改代码里的请求地址重新打包,两条路都要付出额外成本。用 ProxyPin 的路径:在请求映射里加一条 URL 规则,用本地配置或脚本应答;想模拟不同返回就在脚本里按条件区分。结果:请求不请求远程服务(README 中该能力的原始描述),抓到的数据还能导出 HAR 格式,前后端对着同一个文件核对字段。
避坑清单
- Mac 首次打开报不受信任:按 README 指引到"系统偏好设置-安全性与隐私"允许任何来源,再启动。
- 扫码连不上先查网络:二维码里编码的是电脑局域网 IP,手机和电脑不在同一局域网时扫码必失败,先确认同一 WiFi 再扫。
- 不过滤就全量抓:全量拦截会让列表淹没在无关流量里,还干扰其他应用;开抓前先把域名过滤设好。
- 脚本里写真实 token:改鉴权头时最容易把生产 token 硬编码进脚本,务必用测试 token,测完删掉规则。
一条扫码连接、一段域名过滤、一个五行的 onRequest 脚本,就是 ProxyPin 给抓包调试的最短路径:HTTPS 请求的明文你直接看到,头和内容你在线改掉。读完先做工作流里的第 2 步——启动代理、扫个码,让手机上随便发一条请求出现在列表里,这一步通了后面都是小修小补。中途报的错,去项目 Issues 搜一下,大概率有人踩过同样的坑。
【免费下载链接】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),仅供参考