ProxyPin 请求阻塞:三步指南,快速摆脱广告与跟踪请求干扰
2026/9/13 19:44:46 网站建设 项目流程

ProxyPin 请求阻塞:三步指南,快速摆脱广告与跟踪请求干扰

【免费下载链接】network_proxy_flutterOpen source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems项目地址: https://gitcode.com/GitHub_Trending/ne/network_proxy_flutter

ProxyPin 是一款开源免费的全平台抓包工具,它的请求阻塞(请求拦截)功能能按 URL 匹配流量,把不想要的请求直接拦下,不让其发出或呈现。读完本指南,你会写自己的拦截规则,用于屏蔽应用的广告跟踪请求、拦截隐私数据上报,还能在调试时保持抓包列表干净。

快速上手:30 秒配出第一条拦截规则

先看效果,再懂原理。以桌面端为例:

  1. 打开 ProxyPin 的设置页,点击「请求屏蔽」,弹出规则面板。
  2. 确认面板顶部的「启用」开关是打开的,这是总开关,关闭后所有规则都不生效。
  3. 点右上角「添加」,在 URL 输入框里填一条模式,比如*.beacon.example.com/*,拦截类型选「屏蔽请求」,勾选启用后保存。
  4. 回到主界面触发一次对应请求,你会发现它不再出现在请求列表里。

原理一句话就能说清:ProxyPin 在代理链路上按顺序拿每条规则去比对请求的 URL,命中就拦下并记录日志,目标服务器根本收不到这个请求。

所有规则以 JSON 格式写在本地的request_block.json配置文件中,重启应用后依然有效。这份读写的逻辑在 lib/network/components/manager/request_block_manager.dart 里,想看细节可以直接翻源码。

通配符规则怎么写不翻车

你填的 URL 不会被逐字使用。系统会先做一步机械转换:把规则里的所有*替换成正则通配符.*,然后对「域名 + 路径」做部分匹配——只要 URL 里有一段命中就算命中。

规则写法匹配目标等价正则(转换后)
*.beacon.example.com/*beacon.example.com 及其子域名的全部请求.*.beacon.example.com/.*
/api/v2/export/*任意域名下 v2 导出接口的所有路径/api/v2/export/.*
*collect*.adnet.com*某广告网络的采集类链接及全部子路径.*collect.*.adnet.com.*

记住两点就不会翻车:

  • *可以出现任意多次,写得越多匹配面越宽,*单独一条等于拦下所有请求。
  • *外没有其他特殊字符,规则里的普通问号、斜杠都按字面匹配。

拦截类型分两种:屏蔽请求(blockRequest)在请求发出前拦下,服务器收不到;屏蔽响应(blockResponse)放行请求,收到响应后再丢弃。「不想让它发出去」选前者,「只是不想看返回内容」选后者。一条规则落盘后大致长这样:{"url":"*.beacon.example.com/*","type":"blockRequest","enabled":true}

三个实战场景:从广告噪声到调试降噪

场景一:屏蔽广告跟踪请求

  • 现象:抓包某个应用时,列表被 beacon、adtrack 之类的埋点请求刷屏,真正的业务请求淹没其中。
  • 操作:先看一眼请求列表,把跟踪域名抄下来,添加*.该域名/*规则,类型选屏蔽请求。
  • 验证:刷新页面触发流量,这类请求不再出现在列表,日志里能看到对应的屏蔽记录。

场景二:拦截隐私数据上报

  • 现象:第三方 SDK 静默上报设备和行为数据,你希望设备压根别发出去。
  • 操作:定位 SDK 的上报域名后添加屏蔽请求规则;若请求必须发出、只是不想看返回内容,则改用屏蔽响应。
  • 验证:抓包屏上该域名的请求彻底消失,确认设备真的「闭嘴」了。

场景三:调试时丢弃脏请求

  • 现象:前端频繁迭代,轮询、自动重试等请求不断刷新列表,干扰断点调试。
  • 操作:临时添加一条路径规则(如/api/poll/*)屏蔽该接口,调试结束后删除或停用这条规则。
  • 验证:列表只剩你关心的请求,重放和断点操作都清爽了。

桌面 vs 移动:两端入口差异一张表看懂

对比项桌面端移动端
入口位置设置页的「请求屏蔽」弹窗左侧抽屉菜单中的「请求屏蔽」
新增/编辑点右上角「添加」,或双击某条规则点右上角「添加」,或轻点某条规则
快捷操作在规则行上右键,弹出编辑/启停/删除长按规则行,底部菜单弹出
配置写入时机关闭规则弹窗时统一落盘每次开关切换后立即落盘

两端共用同一套规则,底层都是那份request_block.json。移动端界面的实现可以看 lib/ui/mobile/setting/request_block.dart。

避坑清单:规则没生效先查这里

交付或换设备前,按序自查一遍:

  • 两个开关都查:面板顶部的总开关和规则行上的启用开关,缺一不可。
  • 类型别选错:屏蔽请求和屏蔽响应互相独立,选错了规则永远命中不了。
  • 匹配对象记牢:参与匹配的是「域名 + 路径」,把 URL 里?后面的查询串写进规则,大概率匹配不上。
  • 警惕贪婪匹配:*.com*这种规则宽到能拦下半个互联网,优先写具体的域名或路径。
  • 控制规则数量:每个请求都要依次比对所有规则,日常几十条足够,同域名的多条规则尽量合并成一条。
  • 桌面端注意保存时机:关闭规则弹窗时才会写配置,改完别立刻强退应用。

进阶组合:拦截只是起点

玩熟拦截后,可以和其他功能联动:

  • 搭配请求重写:重写负责「改完再发」——重定向、替换请求或响应体;拦截负责「不让它发」。两者配合,一个管堵、一个管改,覆盖大部分流量操纵需求。
  • 搭配 Hosts:在 Hosts 设置里把整个域名指到本地地址,属于域名级的硬屏蔽;拦截规则粒度更细,能只拦某个路径,两者互补。
  • 搭配脚本:需要复杂判断时(例如只在参数包含某个值时才拦),写一段 JavaScript 脚本处理,比纯 URL 通配灵活得多。

一句话收尾:请求阻塞本身很简单,一条通配符规则就能决定流量「发不发、看不看」,真正好玩的在与重写、Hosts、脚本的组合拳。

延伸阅读:

  • README.md:功能全貌与下载渠道
  • test/:抓包与拦截相关的测试用例

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询