# 使用 iOS App 隐私报告构建 MintFlow 域名集和 IP 路由规则

Canonical: https://galaxnet.dev/zh-hans/mintflow/articles/app-privacy-report-domainset-routing/
Language: zh-Hans

学习如何把 iOS App 隐私报告中的网络活动转换为 MintFlow 域名集和 CIDR 集，用于 App 路由、分流和自定义流量策略。







MintFlow 可以按 CIDR、CIDR 集、域名集、代理、VPN、直连、丢弃或拒绝来路由流量。难点往往不是写路由，而是弄清楚某个 iOS App 实际会访问哪些域名。

> 注意：MintFlow 的 App 路由和基于域名的分流需要订阅或解锁 Pro 功能。本文假设你已经启用 App 路由，然后再继续建立域名集和路由规则。

Apple 的 App 隐私报告正适合做这个发现步骤。启用后，它可以显示 App 网络活动、网站网络活动，以及所有 App 最常联系的网域。Apple 官方的 [App 隐私报告支持页面](https://support.apple.com/zh-cn/102188) 也提供了网络活动示例截图，足以确认报告会展示 MintFlow 高级用户需要的域名线索。

这篇文章说明如何把这些线索整理成 MintFlow 的域名集和 IP 集。在 MintFlow profile 语法里，IP 集对应的是 CIDR 集。

## 从报告到路由

<figure class="workflow-diagram">
  <div class="workflow-diagram-scroll">
    <picture>
      <source media="(max-width: 720px)" srcset="/mintflow/app-privacy-report-to-mintflow-routing-zh-hans-mobile.svg">
      <img src="/mintflow/app-privacy-report-to-mintflow-routing-zh-hans.svg" alt="从 iOS App 隐私报告提取域名并生成 MintFlow 域名集、CIDR 集和路由规则的流程图" loading="lazy">
    </picture>
  
  <figcaption class="workflow-diagram-caption">仅为原创示意图。图中的域名和 IP 网段是文档示例，不是真实 App 数据。</figcaption>
</figure>

实用流程是：

1. 打开 App 隐私报告。
2. 有控制地使用目标 App。
3. 从 App 网络活动中记录域名。
4. 按用途给域名分类。
5. 建立 MintFlow 域名集和可选 CIDR 集。
6. 用 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 网段。

```ini
[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。

然后小步验证：

1. 先只启用核心域名集。
2. 打开目标 App 并执行一个任务。
3. 查看 MintFlow 的 DNS 缓存查看器中是否出现新域名。
4. 将新域名和 App 隐私报告对照。
5. 理解用途后，再加入 CDN、遥测或广告域名。
6. 始终显式保留 DNS fallback 和默认路由。

这种迭代比导入公共列表慢，但得到的规则更贴合你的账号、地区、App 版本和真实使用方式。

## 常见错误

避免这些捷径：

- 把 **最常联系的域** 当作某一个 App 的完整域名列表。
- 把 App 内嵌网页内容访问的所有域名都当作 App 核心流量。
- 使用过宽的 CDN 父域名，导致影响大量无关 App。
- 只凭一次 DNS 样本就建立大型 CIDR 集。
- 忘记报告是滚动 7 天视图，不是永久规则数据库。

## 为什么适合搭配 MintFlow

MintFlow 的 App 路由模型建立在显式策略上：域名集、CIDR 集、DNS fallback、默认路由，以及代理、VPN、直连、丢弃或拒绝等目标动作。App 隐私报告则提供了来自 iOS 自身的观察层。两者配合，可以让高级用户基于真实使用数据构建 App 级路由，而不是依赖过期的公共列表。

参考：

- [Apple 支持：关于“App 隐私报告”](https://support.apple.com/zh-cn/102188)


