1

AndroidデバイスでHTTPサーバーをホストしています。自宅のwifi(無線ルーターの後ろ)に接続していても、インターネットからアクセスできるようにしたいと思います。

さらに、インターネットからはルーターの構成にアクセスできないため、ルーターで静的ポート転送を構成することはできません。

オプションはありますか?

私はこれを試しました:

Androidアプリは、Androidデバイス(ローカルIPアドレス、たとえば192.168.0.1)から特定のポート番号(たとえば8080)からホームWIFIを介してインターネット上のWebサーバーにHTTP要求を送信します。

ルーターは、送信元アドレスをパブリックIPアドレス(たとえば111.100.45.65)に変更し、送信元ポート番号を任意のランダムポート番号(たとえば39824)に変更し、動的NATテーブルにエントリを作成します。

内部IP内部ポート外部ポート192.168.0.1808039824

私の理解によると、このエントリは少なくとも数時間保持されます。インターネット上のWebサーバーは、送信元IPとポートをそれぞれ111.100.45.65と39824として報告します。

Androidアプリからインターネット上のWebサーバーにHTTPリクエストを送信した後、デバイスのポート8080でHTTPサーバーを実行します。ここで、インターネットからポート39824のアドレス111.100.45.65にHTTPリクエストを送信する場合、デバイスで実行されているHTTPサーバーで受信する必要があります(ルーターは動的NATテーブルからリクエストを解決し、デバイスに送信します) 。

しかし、何らかの理由で、このリクエストは解決されません。任意のポインタ。

4

2 に答える 2

1

まず、インターネットからのルーター構成へのアクセスに関しては、ほとんどのルーターが WAN インターフェイスからのログインを実際にサポートしています。ほとんどのルーターではデフォルトでオフになっていますが、パスワードが安全である限り、これを有効にできない理由はありません.

第二に、インターネット上の Web サーバーにプロキシを設定すると、あなたが試したことは機能します。

  1. Android デバイスからインターネット上の Web サーバーへの接続を開始して、TCP ホールを開けます。
  2. これで、インターネット上の Web サーバーはパブリック IP と宛先ポートを認識して、Android デバイスと通信できるようになります。
  3. 自動化されたスクリプトは、HTTP 要求を Android デバイスに転送するインターネット上の Web サーバー上にプロキシ サーバーを構成できます。

ところで、NAT エントリが少なくとも数時間保持されるかどうかは疑問です。TCP ホールが開いたままになるように、Android デバイスとインターネット上の Web サーバーの間にキープアライブ メカニズムを実装することをお勧めします。

于 2013-02-07T23:00:25.620 に答える
0

いいえ。アプリはポート 39824 経由で Web 上の http サーバーと通信できます。他の誰もそのポートを使用して、Web からデバイス上の http サーバーに接続することはできません。インターネットからデバイスに到達できるようにするには、ルーターでポート転送が必要です。

于 2013-02-07T20:01:31.553 に答える