2

ルート化されたデバイスでシステム権限を持つアプリケーションを開発しています。接続しているWIFI接続のDNS設定をプログラムで変更することができました。確認するために、アプリケーションを実行し、デバイスを USB 経由で接続し、「adb shell」から「getprop」コマンドを実行します。アプリケーションはセッションの DNS を正常に変更し、ブラウザーはドメインを使用する Web サイトへの接続をブロックされます。

Android デバイスから DNS サーバーを実行する DNS サーバーというアプリケーションをインストールしました。特定の疑わしい Web サイトへの要求をブロックし、他のすべての要求を元の DNS サーバーに転送するように DNS サーバーを設定しました。その IP アドレスは WIFI 接続設定から抽出されます。

一方、私のアプリケーションは、デバイスの DNS 設定を変更し、デバイスのパブリック IP 自体を指します。このように、すべての要求は DNS サーバー アプリケーションを通過し、ブロックされた Web サイトを除外して元の DNS サーバーに要求を転送します。

問題は、すべてのブラウザ/アプリ リクエストと DNS サーバー アプリケーション間の接続にあります。ログから、DNS サーバーは接続をリッスンしていますが、要求を受信して​​いません。これを達成する他の方法はありますか、それとも何か間違った設定をしている場合、誰かが私を啓発することができますか?

私のアプリケーションから、デバイスの DNS サーバーを 127.0.0.1 (ループバック)、デバイス自体の IP アドレス (パブリックとプライベートの両方) に設定しようとしましたが、成功しませんでした。接続を確立できません。

詳細情報: DNS サーバーにはリッスンするポートが必要ですが、このポートをグローバルに設定することはできません (すべての要求にデフォルトの 53 DNS ポートが使用されていると想定しています)。

4

0 に答える 0