ProxyPin 请求拦截配置指南:3 步上手,4 个场景挡住多余流量
【免费下载链接】network_proxy_flutterOpen source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems项目地址: https://gitcode.com/GitHub_Trending/ne/network_proxy_flutter
调试 App 时,统计、埋点接口和业务请求混在一起,请求列表很难看;也有人只想在手机上挡掉某个广告域名。ProxyPin 的请求拦截(也叫请求阻塞)能在流量到达之前把它们过滤掉。本文从一个真实诉求出发,带你把第一条规则配出来,并顺手讲清不生效时该怎么查。
拦截机制 30 秒看懂
每条请求在出去之前会先过一个检查点,代码里叫拦截器(interceptor),你可以理解成插在处理链路里的一个关卡。 关卡拿"域名 + 路径"去逐条比对你的规则,命中后按规则类型处理:请求型规则让请求根本发不出去;响应型规则放行请求,但把返回的响应直接丢掉。 所有规则最终保存在应用支持目录的request_block.json里,界面上的增删改都会写回这个文件。具体逻辑可以看 request_block.dart 和 request_block_manager.dart。
三步配出第一条拦截规则
- 打开设置页,进入"请求拦截"。桌面端是弹出窗口,移动端是独立设置页。
- 点右上角"添加",在弹窗里填要拦的 URL,比如
*.ads.example.net/*,再选拦截类型:屏蔽请求或屏蔽响应,开关保持打开。 - 点保存,规则立即生效。之后命中的请求会被直接过滤,日志里只剩一条"屏蔽请求"的记录。
通配符写法与匹配模式
规则里用通配符*表示"任意一串字符",系统会替你转成正则表达式(一种按模式匹配文本的写法),你不需要自己写正则。
| 你填的内容 | 实际命中的范围 | 适合用来 |
|---|---|---|
*.ads.example.net/* | ads.example.net 各子域下的任意路径 | 拦掉整个广告域名 |
stats.demo.com/collect* | stats.demo.com 下路径以 collect 开头的接口 | 只命中埋点接口 |
/api/debug/* | 任意域名下 /api/debug/ 开头的路径 | 拦内网调试接口 |
匹配对象是"域名 + 路径"拼起来的完整字符串,所以前缀写全域名会更精确;只写路径前缀则不限域名。
四个高频场景的现成配置
下面每条都是request_block.json中 list 里的一条规则,改域名即可直接用。
广告拦截,拦整域:
{ "enabled": true, "url": "*.ads.example.net/*", "type": "blockRequest" }统计埋点,只拦收集接口:
{ "enabled": true, "url": "stats.demo.com/collect*", "type": "blockRequest" }调试打点,响应也一并丢弃:
{ "enabled": true, "url": "*/api/debug/*", "type": "blockResponse" }整域名屏蔽,不挑路径:
{ "enabled": true, "url": "*.tracker.example.org/*", "type": "blockRequest" }桌面端和移动端的规则入口
两端读同一份规则文件,在一端配好后另一端打开就能看见。差异主要在交互:
- 桌面端:在设置里弹出规则窗口,双击某一行进入编辑,右键一行弹出编辑、启用/禁用、删除菜单。
- 移动端:进入"请求拦截"页,点按某一行编辑,长按某一行弹出底部菜单,可快速启停或删除,见 request_block.dart。
- 两端顶部都有"启用"总开关,关闭后所有规则一律不生效。
规则不生效?按顺序排查 4 件事 🔍
- 看总开关:设置页顶部的"启用"开关必须是打开状态。
- 看单条开关:该规则所在行右侧的开关也要是开着的。
- 对类型和写法:屏蔽请求和屏蔽响应各管各的,别选错;确认所填内容能对上"域名 + 路径"这个匹配对象。
- 查日志:调试日志有"屏蔽请求"字样才算命中,没有就先把 URL 简化成整域名再试。
让规则跑得轻的 3 个技巧 💡
- 要拦整个域名,就写一条
*.域名.com/*,别把子路径一条条拆开列。 - 前缀相同的规则合并成一条,重复的写法能删就删。
- 定期清理不再用的规则,总数控制在几十条以内,列表好维护、匹配也快。
写在最后
请求拦截属于"配一次就长期生效"的功能:规则放在后台默默过滤,你看到的请求列表会明显清爽很多。建议先从最烦人的两三个域名开始,熟悉通配符写法后再扩展到埋点和调试接口。用起来有心得,欢迎到 issue 区聊聊。
【免费下载链接】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),仅供参考