# MintFlow 1.9.0 发布

Canonical: https://galaxnet.dev/zh-hans/mintflow/releases/1.9.0/
Language: zh-Hans







## MintFlow 1.9.0 发布

近期 MintFlow 1.9.0 已在 iOS Apple Store 上线。

本版本通过“Designed for iPad”目标开启了 macOS 商店可见性，这意味着应用现在可在搭载 Apple Silicon 的 macOS 设备上运行。

以下是本次更新中值得关注的内容。

### DNS 架构重构

付费用户专享的应用路由功能是多个高级能力（包括按域名分流、HTTP 抓包和改写）的基础。

该能力本质上是一个内部 DNS 服务器，负责处理来自各应用和 iOS 系统的 DNS 查询。这样我们可以在 MintFlow 的路由表中，根据用户设置的路由规则，动态将流量指向代理和 VPN 等不同目标（得益于 fd.io VPP 带来的灵活路由能力）。

之前，我们并不打算再从 192.88.99.0/24（预留 IPv4 地址段）再额外占用一个 IP 给内部 DNS 服务，而是只使用了两个 IP：

- 192.88.99.2：推送给 iOS 系统的 utun IP 地址
- 192.88.99.1：MintFlow 的内部 utun 对端接口（也由 fd.io VPP 提供），因此可以响应 ping

随后我们把 192.88.99.2 下发为 iOS 的 DNS，并将内部 DNS 绑定到 utun 接口监听知名 UDP 53 端口。这种方式在 iOS 可用，但在 macOS 下不可用，说明所谓“Designed for iPad”场景存在实现差异。

因此在 1.9.0 中我们最终进行了一次架构重构，简要如下：

我们为内部 DNS 分配了新地址 192.88.99.3，并在 fd.io VPP 引擎内处理 DNS 查询，再通过 IPC 机制与内部 DNS 服务通信（该服务使用 Rust 实现）。

从 iOS 系统角度，它把 192.88.99.3 当作 DNS 服务器。系统向该地址发起查询后，由我们接收后转发到内部 DNS；内部 DNS 会依据 DomainSet 路由规则和 DNS 回退规则（若查询域名未命中任何 DomainSet）进行解析，最终沿原路径返回结果。

该方案在 macOS 也能正常工作，因此本版本重新启用了“Designed for iPad”目标。

我们计划今年内继续推进独立 macOS 构建，因为在 macOS 上能用更强的方法接入系统流量，也将带来更多能力，例如按应用 Bundle ID 分流（iOS 上无法使用）。

### DoT/DoH 支持

不少用户提出该需求，因此我们在 1.9.0 中加入了 DoT/DoH。

此特性仅对付费用户开放，因为 DoT/DoH 由我们控制更完整的内部 DNS 提供支持。

另外补充说明：在 MintFlow 中，我们有两套 DNS 配置。一套用于直接流量（从手机网络发出，可为蜂窝或 Wi-Fi），另一套用于 VPN 流量（由用户配置的三层 VPN 下的四层代理转发）。两套都可以配置 DoT/DoH；如果同时配置了传统 DNS 与 DoT/DoH，默认会优先使用 DoT/DoH，以获得更高隐私保护。

对于 VPN 流量，如果你使用域名方式配置 DoT/DoH，还必须配置 `VPN-DNS-SERVER-DOMAINS` 路由规则，这是因为需要先解析 DoT/DoH 服务器的 IP 后才能发起加密 DNS 查询。DNS 配置中还新增了 `bootstrap-dns`，它有良好默认值，通常无需手动设置。

### AmneziaWG 1.5 与 2.0 支持

MintFlow 基于 fd.io VPP，具备原生 WireGuard 插件，兼容性与稳定性都较好。

此前我们基于同一 WireGuard 插件发布过 AmneziaWG 1.0；但部分用户需要更强的混淆能力，因此要求支持 1.5 和 2.0。

本版本已支持该需求，并提供兼容部分 GitHub 上 AmneziaWG 2.0 安装器的配置导入。

### Shadowsocks2022 支持

与旧版 AEAD Shadowsocks 相比，Shadowsocks2022 是一种新的加密套件，并对线路格式做了部分调整。

在 1.9.0 中，我们新增了 2022 套件中的全部 3 种加密方式；若服务器支持，也新增了 UDP 转发支持。

### 诊断工具

我们新增了多种诊断工具，例如 VPN 与 Proxy 诊断。开启 MintFlow VPN 时，它可在不经过 iOS 系统网络栈的情况下检查不同 VPN/Proxy 的可达性；当你某个 VPN/Proxy 在诊断中显示正常但实际无法使用时，可再次核对你的配置并参考 MintFlow 手册。

我们还新增了配置诊断工具，可抓取当前生效的配置及其编译后形态（由运行时加载），从而帮助你判断是否存在配置错误。

### 界面优化

我们持续优化 UI，持续沉淀开发经验，比如配色一致性和字体样式一致性。

## 最后

自 MintFlow 1.0.0 于 iOS App Store 上线以来，已经过去约 15 个月，共发布了 8 个版本。应用形态持续成熟，也已经成为我们日常使用的工具。

我们将持续提高 MintFlow 的功能完整性与稳定性。

一如既往，欢迎发邮件给我们分享反馈和建议。


