以下に示すスクリーンショットで、モバイルネットワークのAPN設定でプロキシを設定しています:
うまく機能します。 whatismyipで確認しました。ただし、デバイスでホットスポットを有効にし、別のデバイスでこのホットスポットを使用してIPを確認すると、プロキシIPではなく元のモバイルサービスプロバイダーのIPが表示されます。
ホットスポットがこのような動作をする理由モバイルネットワークを使用することになっていて、プロキシがAPNに設定されていますか?ホットスポットを使用するデバイスでもプロキシを機能させるにはどうすればよいですか?
注:このホットスポットを選択しているときに、他のデバイスのWi-Fiオプションの詳細設定でプロキシを設定したくありません。私が使用しようとしているアプリは、wifiで設定されたプロキシを検出するため、これが唯一のオプションです。
回答
質問は OSIモデルの理解に関連しています。プロキシはhttp
/ https
またはsocks
プロトコルを使用します。
は、OSIモデルのアプリケーション層(L7)プロトコルです。アプリケーションがhttp
メッセージを生成すると、下位層に渡されます。https
の場合、メッセージはSSL / TLSによって暗号化されます。これはL6プロトコルです。L4でメッセージはTCPヘッダーを取得し、L3でIPパケットに変換されます。このパケットは、L3でNATとファイアウォールのフィルタリングを通過し、最後にL2でRRM / PDCP / RLC(モバイルデータを使用している場合)、MAC、およびカーネルルーティングを通過します。 L1では、Wi-Fi経由で802.11
フレームまたはモバイルデータ経由のCDMA / TDMA / FDMA信号として送信されます。
一方、ホットスポットは主に2つのユーザースペースツールで; hostapd
-OSIL2でWi-Fiアクセスポイントを作成します-およびdnsmasq
(Android 9まで)-これOSIL7でDHCP / DNSサーバーとして機能します。接続されたホストが電話をDNSサーバーとして使用している場合(DHCPで構成されている場合)、電話はDNSクエリを受信し、UDP / IPパケットとしてインターネット上のアップストリームDNSサーバーに再帰的に転送します(dnsmasq
は使用するように構成されています)。ホットスポットネットワークからの残りのトラフィックはNATされ、L3 / L2でルーティングされます。
したがって、(IPパケット)は表示されません。接続されたホストからのトラフィックは、Android携帯のhttp
スタックを通過するため、プロキシサーバーに転送されません。プロキシサーバーへの直接接続ではなく、接続Webサーバーのようなリモートホストに接続します。 OSIL7でhttp
プロキシを使用するように構成できるホットスポットを作成することはできません。Wi-FiまたはAPNに設定した、またはグローバルに設定したプロキシ設定(ホスト/ポート)はアプリケーションに転送されるだけで、各アプリケーションは独自にプロキシ接続を作成するか、プロキシ情報を無視する必要があります。ホットスポット経由で接続されているすべてのホスト上のアプリにこれらのプロキシの詳細を提供する必要があります。詳細については、以下のリンク先の質問を参照してください。
ただし、Linux / AndroidカーネルのNAT / REDIRECT / TPROXY(L3)とルーティングテーブル(L2)を使用して、トラフィック全体をプロキシサーバーに強制的にリダイレクトすることは可能です。これがプロキシの仕組みです。 、ただし、制限があります。電子メールクライアントは、http GET
メソッドでは機能しないIMAP / POP3 / SMTP(L6 / 7)プロトコルを使用しますが、代わりにhttp CONNECT
プロキシが必要です。後者はTCPトラフィックのみを転送できます。UDPの場合、少なくともL5で動作するSOCKS5プロキシが必要です。DNSおよびほとんどのゲームと音声通話アプリはUDPトラフィックを生成するため、http
プロキシ。 ping
ユーティリティ(たとえば)は、TCPまたはUDPでカプセル化できないICMP(L3)を使用するため、SOCKS5でも機能しません。
したがって、本当の意味で すべてのトラフィック をリモート(プロキシ)にリダイレクトすることはできません。 )VPNなどのL2 / 3ソリューションを使用しないサーバー。詳細については、 adbシェルを介してHTTPではなくWi-FiHTTPSプロキシを設定する方法を参照してください。
ホットスポットがモバイルネットワークを使用することになっていて、プロキシがAPNに設定されている場合、なぜそのような動作になるのですか?
ホットスポットはモバイルネットワークを使用することになっており、アプリはプロキシを使用することになっています。APNで構成したプロキシはシステム全体に適用されません。
このホットスポットを選択しているときに、他のデバイスのWiFiオプションの詳細設定でプロキシを設定したくない。
残念ながら、これは最も簡単です他の方法では、ルート化またはサードパーティのアプリの使用(VPNを作成するため)が必要です。プロキシを透過的に適用する方法については、上記のリンクされた質問を参照してください。
回答
症状が見られる理由は、ホットスポットをオンにすると、スマートフォンを回すようなものだと考えるためです。ルーターに。したがって、ホットスポットのネットワーク設定によってデバイスの個々のIPアドレスが変更されることはありません。ホットスポットに接続すると、変更されたネットワーク設定が物事の階層の最後にあるため、ネットワーク設定で変更されたときではなく、そのデバイスのIPによって接続されます。グーグル検索すると、デバイスのIPアドレスをスプーフィングするアプリであると私は信じています。本質的にはプロキシと同じ概念で、検出できません。
コメント
- しかし、最終的には、モバイル接続を介して送信されるリクエストは、そのAPNを経由する必要があり、そのプロキシの権利に従う必要がありますか?ホットスポットがオンの場合でも、同じデバイスで使用すると機能します。あなたが言ったように、それは物事の最後の階層なので、接続がホットスポットを介して行われた後、それはその後モバイル接続設定でそのプロキシを通過する必要があります