ProxyPin 域名过滤 只看目标应用流量
为什么需要域名过滤
移动端 App 的网络通信往往不止目标 API:
- 系统服务同步(Google Play Services、Apple Push)
- 统计分析 SDK(友盟、Firebase、AppsFlyer)
- 广告追踪(Google Analytics、Facebook)
- CDN 资源加载
- App 自身的 API 调用
如果不做过滤,请求列表会被大量无关流量淹没,目标请求很难找到。
ProxyPin 的域名过滤在连接层生效——不符合规则的域名直接跳过 TLS 握手,不仅减少干扰,还能提升抓包性能。
基本配置入口
- 打开 ProxyPin
- 进入「我的」→「代理过滤」
- 可以设置:
| 选项 | 效果 |
|---|---|
| 不过滤 | 拦截所有域名流量 |
| 白名单模式 | 只拦截列表中的域名 |
| 黑名单模式 | 拦截除列表外的所有域名 |
推荐白名单模式——主动指定关心的域名,避免遗漏。
正则匹配语法
域名过滤使用正则表达式。以下是常用模式:
# 精确匹配某个子域
api.myapp.com
# 匹配所有子域(api.myapp.com、cdn.myapp.com、static.myapp.com)
.*\.myapp\.com
# 匹配多个独立域名(用 | 分隔)
api\.myapp\.com|cdn\.myapp\.com
# 排除(不推荐,用黑名单模式更直观)
# 用 (?!...) 负向前瞻,比如排除 google-analytics
^(?!.*google-analytics).*
正则中 . 匹配任意字符,域名中的点需要用 \. 转义。
实战示例
只抓自己 App 的 API
api\.myapp\.com|static\.myapp\.com
这两条规则会拦截所有以 api.myapp.com 或 static.myapp.com 开头的请求,其他域名(统计 SDK、广告、系统服务)全部跳过。
抓所有 JSON API 响应
^https://.*\.json$
排除已知噪音源
如果选择黑名单模式,可以加入这些常见噪音域名:
google-analytics\.com|crashlytics\.googleapis\.com|appsflyer\.com|adjust\.com|umeng\.com
性能优化建议
- 域名过滤在连接层生效,过滤规则越精确性能越好
- 避免过于宽泛的规则(如
.*),等于没过滤 - 常用规则放在列表前面,正则引擎从前往后匹配,先匹配到就跳过后续规则
- 使用
(?!...)负向前瞻时要小心,复杂的负向前瞻会增加 CPU 开销
与请求级搜索的区别
域名过滤作用在连接层(决定要不要拦截这个域名的流量),而 高级搜索 作用在已拦截的请求(在已捕获的流量中进一步筛选)。两者配合使用效果最佳:
- 先用域名过滤屏蔽 90% 无关域名
- 再用高级搜索在剩下的流量中定位特定请求