すべてのプロダクト
Search
ドキュメントセンター

HTTPDNS:ハイジャックシミュレーションを使用した検証

最終更新日:Nov 09, 2025

Android SDK を統合した後、Local DNS の障害をシミュレートすることで、HTTPDNS が正しく機能していることを確認できます。このトピックでは、このテストの方法と手順について説明します。

仕組み

HTTPDNS は、HTTP または HTTPS を介して Alibaba Cloud DNS サーバーに直接名前解決リクエストを送信します。このプロセスは、システムの Local DNS をバイパスし、ネットワークの問題によって引き起こされる DNS ハイジャックや名前解決の失敗を防ぎます。
モバイルデバイスは通常、現在のネットワークによって提供される Local DNS を使用します。Wi-Fi 接続の場合、デバイスはルーターで構成されているか、キャリアによって提供される DNS を使用します。モバイルデータ接続の場合、デバイスはキャリアの DNS を使用します。Wi-Fi 環境では、Wi-Fi の DNS 設定を変更することで Local DNS の状態を変更できます。Wi-Fi の DNS を無効なアドレスに設定すると、Local DNS の名前解決が失敗する環境が作成されます。このシミュレートされたハイジャック環境でネットワークリクエストを行うと、次のようになります。

  • リクエストが成功した場合、リクエストが Local DNS をバイパスし、HTTPDNS の統合が成功したことを示します。

  • リクエストが失敗した場合、リクエストがまだ Local DNS に依存しており、HTTPDNS の統合が失敗したことを示します。

前提条件

  • テストデバイス: Wi-Fi の DNS 設定を手動で変更できる Android スマートフォン。

  • ネットワーク環境: DNS アドレスを手動で変更できる Wi-Fi 接続。

  • アプリのステータス: アプリが EMAS HTTPDNS SDK と統合されていること。

  • テストドメイン名: Alibaba Cloud HTTPDNS コンソールで構成され、使用されるサービスドメイン名。

手順

ステップ 1: 通常のネットワーク環境での検証

  1. テストデバイスを利用可能な Wi-Fi ネットワークに接続します。デフォルトの DNS 設定を維持します。

    image

  2. HTTPDNS を無効にした状態でアプリを開き、ホームページの読み込みや API の呼び出しなど、ドメイン名を使用するネットワークリクエストをトリガーします。

  3. リクエストが成功したことを確認します。

説明

このステップではベースラインを確立します。これにより、アプリとそのサービスが通常のネットワーク環境で正しく機能することを確認します。

ステップ 2: Local DNS の名前解決の失敗をシミュレートする

  1. テストデバイスで、Wi-Fi 設定に移動します。接続されている Wi-Fi ネットワークの名前を長押しし、[ネットワークを変更] または [詳細オプション] を選択します。

  2. IP 設定を [静的] に変更します。

  3. DNS 1 および DNS 2 フィールドに、1.2.3.4100.100.100.100 などの無効な IP アドレスを入力します。これにより、Local DNS がドメイン名を解決できなくなります。

    説明

    注: 114.114.114.114 や 8.8.8.8 などの有効なパブリック DNS アドレスは使用しないでください。

    image

  4. 構成を保存し、Wi-Fi ネットワークに再接続します。

ステップ 3: シミュレートされたハイジャック環境での検証

  1. デバイスがステップ 2 で変更した Wi-Fi ネットワークに接続されていることを確認します。このネットワークの DNS は、無効なアドレスに設定されている必要があります。

  2. モバイルデータ接続をオフにします。これにより、Wi-Fi 接続が失敗した場合にシステムが自動的にモバイルネットワークに切り替わるのを防ぎます。

  3. HTTPDNS を有効にし、アプリを開き、ステップ 1 と同じサービスリクエスト (ホームページの読み込みや API の呼び出しなど) をトリガーします。

  4. リクエストの結果を観察します。

    リクエスト結果

    結論

    ネットワークリクエストが成功

    リクエストは Local DNS をバイパスしました。ドメイン名の名前解決は HTTPDNS によって完了しました。これは、HTTPDNS が正常に統合されたことを示します。

    image

    ネットワークリクエストが失敗

    • 最初のリクエストが失敗した場合、キャッシュミスにより Local DNS にフォールバックした可能性があります。しばらく待ってからリトライしてください。

    • 複数のリクエストが依然として失敗する場合、アプリはまだ Local DNS に依存しています。シミュレートされたハイジャック環境では、名前解決が失敗します。これは、HTTPDNS の統合が失敗したことを示します。

    image

    説明

    ドメイン名の名前解決に同期非ブロッキング API を使用する場合は、setPreResolveHosts メソッドを使用して事前解決を有効にし、setEnableExpiredIp メソッドを使用して期限切れの IP アドレスの使用を許可します。これにより、名前解決の結果がローカルキャッシュで利用可能になります。この方法により、キャッシュミスによる Local DNS へのフォールバックを防ぎ、検証の精度に影響を与えることを回避できます。