MintFlow
MintFlow 選單

MintFlow 1.9.0 發布

MintFlow 1.9.0 發布

近期 MintFlow 1.9.0 已在 iOS App Store 上線。

本版本透過「Designed for iPad」目標開啟 macOS 商店可見性,代表應用現在可在搭載 Apple Silicon 的 macOS 裝置上執行。

以下是本次更新中值得關注的內容。

DNS 架構重構

付費使用者專用的應用程式路由功能,是多項進階能力(包含以網域為基礎的分流路由、HTTP 抓包與改寫)的核心。

它本質上是一個內建的 DNS 伺服器,負責回應來自各應用與 iOS 系統的 DNS 查詢。因此我們可以依使用者的路由規則,將路由動態安裝到 MintFlow 的路由表,將流量導向不同目標(包含 Proxy 與 VPN)。這得益於 fd.io VPP 提供的高彈性路由能力。

過去我們不想為內建 DNS 再額外從 192.88.99.0/24(保留 IPv4 區段)保留一個 IP,只使用以下兩個地址:

  • 192.88.99.2:推送給 iOS 系統的 utun IP
  • 192.88.99.1:MintFlow 的內部 utun peer 介面(也由 fd.io VPP 提供能力),因此可回應 ping

我們先前將 192.88.99.2 下發為 iOS DNS,並將內部 DNS 綁到 utun 介面監聽常見的 UDP 53 端口,該方式在 iOS 可用,但在 macOS 無法正常工作,顯示「Designed for iPad」情境有些微實作差異。

因此在 1.9.0,我們最終進行了一次架構重整:

我們為內部 DNS 分配了新 IP 192.88.99.3,在 fd.io VPP 引擎內處理 DNS 查詢,再透過 IPC 機制交由內部 DNS 服務(以 Rust 撰寫)完成解析。

從 iOS 系統視角看,192.88.99.3 就是 DNS 伺服器;系統向該位址發起查詢後,我們接收並轉交內部 DNS,內部 DNS 依 DomainSet Routing 規則與 DNS Fallback 規則(查詢網域未命中任何 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 下四層 Proxy)。兩套都可配置 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 版本相比,Shadowsocks2022 是新版加密套件,同時也調整了封包格式。

在 1.9.0 中,我們新增了 2022 套件中的三種加密方式;若伺服器支援,也支援 UDP Forward。

診斷工具

我們新增了多個診斷工具,例如 VPN/Proxy 診斷,可在 MintFlow VPN 啟用時不經由 iOS 系統網路直接檢查各 VPN/Proxy 可達性;若某個 VPN/Proxy 在診斷中顯示正常,但仍無法連線,可依此重新檢視 MintFlow 手冊找出可能的設定問題。

我們也新增了 profile 診斷工具,可擷取目前生效的 profile 及其編譯結果,供 MintFlow runtime 載入,協助定位未正確設定的部分。

使用者介面優化

我們持續優化 UI,將開發過程中累積的規範落地,例如配色一致性與字型樣式一致性。

結語

自 MintFlow 1.0.0 在 iOS App Store 發布至今已約 15 個月,共發佈 8 個版本。應用形態逐步成熟,也已成為我們的日常工具。

我們將持續強化 MintFlow 的功能完整度與穩定性。

一如既往,歡迎透過信箱與我們分享任何回饋與建議。