本文主要介紹了用戶端接入 HTTPDNS 的基本原理和主要步驟說明。
1. 前言
HTTPDNS 是一種端側 DNS 解決方案,可替代傳統 Local DNS,避免出現網域名稱劫持、解析延遲、失敗率高以及調度不精準等問題,為移動終端提供更穩定、更快速、更安全的解析能力。接入 HTTPDNS 總共包括以下幾個主要步驟:
開通服務
添加網域名稱到解析列表
擷取開發配置
擷取解析 IP
應用解析結果到網路程式庫
接入成功驗證
如果您使用了軟體自訂解析實現業務調度,還需要配置自訂解析策略,參考自訂解析
其中,前三步屬於控制台操作,如果您還沒完成對應操作,可以參考產品使用流程。後三步屬於用戶端接入流程。本文主要介紹 用戶端接入流程,在展開之前,我們先瞭解下 DNS 解析器。
2. DNS解析器
DNS 解析器是一種負責接收使用者網域名稱查詢請求,並返回對應 IP 位址的網路服務組件。當 App 用戶端 發起網路請求時,通常會先調用其內部整合的 網路程式庫(如 NSURLSession、OkHttp、libcurl 等)。網路程式庫在建立串連前,會通過 DNS 解析器將目標網域名稱解析為 IP 位址,以便後續完成 TCP/UDP 串連。DNS 解析器可以分為兩類:
系統 DNS 解析器:由作業系統提供並維護的網域名稱解析組件(庫或系統服務)。應用通過統一 API 呼叫(如 POSIX
getaddrinfo()、WindowsDnsQuery()、AppleNetwork.framework等)觸發系統解析器完成網域名稱解析。系統解析器會依據當前網路設定(如本地 hosts 檔案、DNS 緩衝、網路介面卡配置)發起查詢,最終向遞迴 DNS 伺服器請求解析結果。這些遞迴 DNS 伺服器通常由 DHCP 自動下發的電訊廠商 DNS,或者使用者手動設定的公用 DNS(如 8.8.8.8、1.1.X.X)提供服務,並返回對應的 IP 位址。自訂 DNS 解析器:由應用或第三方庫實現的、部分或完全繞過系統解析器的解析邏輯。應用可直接繞過電訊廠商下發的遞迴 DNS,改為訪問指定的解析服務(如 HTTPDNS 伺服器),擷取權威解析結果IP。常見方式包括:應用接管網路程式庫的 DNS 介面(如 OkHttp 的
Dns介面、libcurl 的resolve機制),在應用程式層直接注入解析結果;或者通過代理方式接管請求流量,在代理層完成 DNS Hook 與網域名稱到 IP 的映射,從而實現定製化的網域名稱解析與串連調度。
用戶端接入 HTTPDNS 的過程,就是基於 HTTPDNS 服務實現自訂 DNS 解析器的過程,下圖以一個 HTTP 要求為例,示範用戶端如何通過自訂 DNS 解析器 或 DoH 協議,將 HTTPDNS 服務端返回的解析結果應用到網路程式庫中,確保網路請求使用最優 IP 建立串連。

3. 接入流程
在開通服務和在控制台添加網域名稱到解析網域名稱列表後,就可以通過HTTPDNS實現自訂 DNS 解析器,主要包含三個核心步驟:
擷取解析 IP :訪問 HTTPDNS 服務端擷取網域名稱對應的 IP 位址
應用解析結果 :將擷取的 IP 位址注入到網路程式庫的請求中
接入成功驗證:通過日誌、網路抓包等方式確認以上兩步生效
3.1 擷取解析IP
您可以通過 SDK、HTTP API 和 DoH 三種方式從 HTTPDNS 服務端擷取網域名稱解析結果:
若需快速接入並屏蔽與服務端的互動複雜度,同時獲得完整的高可用與效能最佳化能力,建議優先使用SDK接入:
若環境限制無法引入 SDK 或需要高度定製控制,則選擇 HTTP API接入手冊,它支援HTTP協議、更輕量,並可擴充如 加密、加簽、SDNS 及額外錯誤碼的能力
若用戶端網路程式庫封閉(如基於 Chromium 核心的 CEF、Electron、Qt WebEngine 等),暴露網路層的 API 有限,但開放了 DoH 配置介面,則推薦使用 DoH接入
在絕大多數情境下,推薦優先選擇 SDK 方案。
3.2 應用解析結果
擷取解析 IP 之後,您需要把該 IP 應用到網路請求的 DNS 解析環節,應用方案取決於您所使用的網路程式庫是否支援自訂 DNS 解析。如果網路程式庫提供 DNS Hook 或網域名稱映射介面,可直接注入解析結果;若未提供,則需通過 IP 直連、協議替換或本地代理等方式進行適配。本文檔同時列出了常用網路程式庫和架構的適配方案,供參考。
Android:OkHttp、Webview、Webview本地代理、ExoPlayer、HttpURLConnection、gRPC、阿里雲OSS SDK等
HarmonyOS:阿里雲OSS SDK、HarmonyOS SDK接入等
Socket.io、HttpClient、Glide、SwiftNIO、Libcurl 等其他網路程式庫或架構的適配方案,請聯絡支援人員諮詢。
3.3 接入成功驗證
用戶端接入 HTTPDNS 後,建議通過以下兩種方式進行驗證以上兩個步驟是否接入成功:
日誌驗證(推薦)
方式:在用戶端埋點列印,從 HTTPDNS API 擷取的解析 IP 列表和實際業務請求是否正常發起。
特點:該方式實現簡單、輕量級,適合絕大多數情境。
劫持類比:
通過將手機WIFI網路的 DNS 伺服器設定為一個無效地址,觀察業務請求是否依然能夠正常發起,以此判斷HTTPDNS是否接入成功。
特點:該方式能夠有效屏蔽系統 DNS 幹擾,更加準確。
4. 總結
接入 HTTPDNS 的本質是基於 HTTPDNS 構建自訂 DNS 解析器。本文簡要介紹了擷取解析 IP、應用到網路程式庫以及接入驗證三個核心步驟。更多接入細節、 API 說明和注意事項,請參見對應接入方式的使用者手冊: