使用 iOS App 隐私报告构建 MintFlow 域名集和 IP 路由规则
学习如何把 iOS App 隐私报告中的网络活动转换为 MintFlow 域名集和 CIDR 集,用于 App 路由、分流和自定义流量策略。
MintFlow 可以按 CIDR、CIDR 集、域名集、代理、VPN、直连、丢弃或拒绝来路由流量。难点往往不是写路由,而是弄清楚某个 iOS App 实际会访问哪些域名。
注意:MintFlow 的 App 路由和基于域名的分流需要订阅或解锁 Pro 功能。本文假设你已经启用 App 路由,然后再继续建立域名集和路由规则。
Apple 的 App 隐私报告正适合做这个发现步骤。启用后,它可以显示 App 网络活动、网站网络活动,以及所有 App 最常联系的网域。Apple 官方的 App 隐私报告支持页面 也提供了网络活动示例截图,足以确认报告会展示 MintFlow 高级用户需要的域名线索。
这篇文章说明如何把这些线索整理成 MintFlow 的域名集和 IP 集。在 MintFlow profile 语法里,IP 集对应的是 CIDR 集。
从报告到路由
实用流程是:
- 打开 App 隐私报告。
- 有控制地使用目标 App。
- 从 App 网络活动中记录域名。
- 按用途给域名分类。
- 建立 MintFlow 域名集和可选 CIDR 集。
- 用 MintFlow 的 DNS 缓存查看器和实际路由行为验证结果。
打开 App 隐私报告
在 iPhone 或 iPad 上打开 设置 -> 隐私与安全性 -> App 隐私报告,然后启用它。Apple 说明该报告只会在启用后开始收集信息,且报告数据会加密并仅储存在设备上。
接下来正常使用目标 App 一段时间。比如媒体 App 可以测试登录、信息流加载、搜索、播放、下载和通知入口;金融 App 可以测试登录、行情刷新、图表加载、文档下载和内嵌网页。目标是覆盖你真正想要路由的 App 行为。
积累足够活动后,进入目标 App 的 App 网络活动。重点看这几类信号:
| 报告信号 | 能提供什么线索 | 在 MintFlow 中的用法 |
|---|---|---|
| App 直接联系过的域 | 核心 API、登录、同步、媒体、遥测、崩溃上报 | 通常整理为域名集 |
| 通过 App 内内容联系过的域 | 内嵌文章、视频、广告或网页内容 | 先确认用途,不要直接当作 App 核心流量 |
| 最常联系的域 | 跨 App 的高频域名 | 用于发现共享 CDN 或跟踪基础设施 |
| 网站网络活动 | App 内访问的网站加载的域名 | 适合将网页内容和 App 核心流量分开处理 |
Apple 说明 App 隐私报告覆盖过去 7 天内的活动。浏览器 App 的无痕浏览会话不会包含在报告里,因此如果需要采样浏览器流量,应使用普通浏览会话。
先分类,再路由
不要把所有域名直接塞进一个大列表。更好的 MintFlow profile 通常会按用途分组:
- 核心服务域名:API、账号、同步、聊天、媒体播放列表或支付端点。
- CDN 域名:静态资源、图片、视频分片、边缘缓存或下载服务器。
- 遥测域名:指标、崩溃上报、诊断和分析。
- 广告和跟踪域名:广告投放、归因、跨 App 跟踪或营销像素。
- 内嵌内容域名:因为 App 打开网站、文章或第三方视频而出现的域名。
这样做很重要,因为不同组通常应该走不同动作。你可以让核心和 CDN 域名走代理,让遥测直连,拒绝广告,并让未知域名走 DNS fallback。
使用父域名时要保守。如果报告里出现 api.example-video.com 和 cdn.example-video.com,只有在你确认整个父域名都属于同一 App 用途时,才考虑加入 example-video.com。如果域名属于大型云厂商、CDN、广告网络或共享平台,应尽量保持精确。
MintFlow profile 示例
下面的域名和 IP 网段都是文档示例。请替换为你自己的 App 隐私报告域名,以及经过单独验证的 CIDR 网段。
[domain-sets]
video-core=api.example-video.com,auth.example-video.com,stream.example-video.com
video-cdn=cdn.example-video.net,img.example-video.net
video-telemetry=metrics.example-video.com,events.example-video.com
video-ads=ads.example.net,track.example.net
[cidr-sets]
video-fixed-ips=203.0.113.24/32,198.51.100.0/24
[routing]
DOMAIN-SET,video-core,L4PROXY,media-proxy
DOMAIN-SET,video-cdn,L4PROXY,media-proxy
DOMAIN-SET,video-telemetry,DIRECT
DOMAIN-SET,video-ads,REJECT
CIDR-SET,video-fixed-ips,L4PROXY,media-proxy
DNS-FALLBACK,DIRECT
DEFAULT,DIRECT
在这个例子中:
video-core和video-cdn走指定代理。video-telemetry保持直连。video-ads被拒绝。video-fixed-ips是可选项,只应放入你可信的 IP 网段。DNS-FALLBACK,DIRECT避免未匹配域名意外走代理侧 DNS。DEFAULT,DIRECT让显式规则之外的报文流量保持直连。
关于 IP 集
App 隐私报告主要是域名发现工具,并不是完整的 IP 归属数据库。很多 App 使用 CDN、云服务和动态边缘节点。把一次 DNS 解析得到的所有地址都写进 CIDR 规则,可能影响无关 App,或过度路由共享基础设施。
只有在这些情况下才建议使用 CIDR 集:
- App 厂商发布了稳定的 IP 网段。
- 你自己控制该服务器或服务。
- 你已经跨时间、网络和地区验证过该地址范围。
- App 使用字面量 IP 连接,无法通过域名路由覆盖。
对大多数公共 App,先从域名集开始。只有当 DNS 缓存和实际路由行为显示缺口时,再补充 CIDR 集。
在 MintFlow 中验证
修改 profile 后,重启 MintFlow VPN,让当前 profile 编译后的路由状态进入正在运行的 tunnel。
然后小步验证:
- 先只启用核心域名集。
- 打开目标 App 并执行一个任务。
- 查看 MintFlow 的 DNS 缓存查看器中是否出现新域名。
- 将新域名和 App 隐私报告对照。
- 理解用途后,再加入 CDN、遥测或广告域名。
- 始终显式保留 DNS fallback 和默认路由。
这种迭代比导入公共列表慢,但得到的规则更贴合你的账号、地区、App 版本和真实使用方式。
常见错误
避免这些捷径:
- 把 最常联系的域 当作某一个 App 的完整域名列表。
- 把 App 内嵌网页内容访问的所有域名都当作 App 核心流量。
- 使用过宽的 CDN 父域名,导致影响大量无关 App。
- 只凭一次 DNS 样本就建立大型 CIDR 集。
- 忘记报告是滚动 7 天视图,不是永久规则数据库。
为什么适合搭配 MintFlow
MintFlow 的 App 路由模型建立在显式策略上:域名集、CIDR 集、DNS fallback、默认路由,以及代理、VPN、直连、丢弃或拒绝等目标动作。App 隐私报告则提供了来自 iOS 自身的观察层。两者配合,可以让高级用户基于真实使用数据构建 App 级路由,而不是依赖过期的公共列表。
参考: