web-dev-qa-db-ja.com

外部ネットワークからローカルIPを使用してWLAN内のデバイスにtcpパケットを送信するにはどうすればよいですか?

インターネットから、ポート9999をリッスンしているWLAN内のデバイスにコマンドを送信する必要があります。

デバイス自体にはローカルIPのみが割り当てられます。

また、同じプログラム(ポート9999をリッスンしている)を持つn(2-100 +)個のデバイスがあります。

私はすべてのデバイスのローカルIPを知っており、コマンドを送信するIPを知っています。

外部ネットワーク(クラウド/モバイルデバイス)からゲートウェイルーターを介して特定のローカルIPにコマンドを送信するにはどうすればよいですか?

WLAN内で実行されているサーバー、または専用のゲートウェイデバイスを使用して実現できることを理解しています。しかし、これがワイヤレスルーターでのみ可能かどうか知りたいです。

6
Rifat Mahmud

ルーター以外のものが必要です

ルーターは、定義と一般的な使用法の両方で、routesパケットを、指定された宛先アドレスとポートに基づいており、他の要因には基づいていません。

送信に使用している技術が何であれ、単一のTCP/IPパケットが外部接続からルーターに到着するまでに、ルーターはその単一のパケットをどう処理するか、何百もの内部デバイスのどれに送信するかを決定する必要があります。送信する必要があります-そしてそれを行うには情報が必要です。

セットアップでは外部IPアドレスが1つしかないため、IPアドレス情報を使用できません。これは、ルーターのアドレスになります。これは、異なる方法でルーティングするすべてのパケットで同じです。

couldは、他の回答で示唆されているように、そのためにTCPポート情報を使用できますが、明らかに受け入れられません。

はパケットペイロードを使用できますが、それは実行されません。一般的に使用されている消費者向けワイヤレスルーターは、各パケットペイロードを検査して、ルーティングを決定することはありません。それを処理するカスタムデバイスまたはコードを作成できます。これは、実際には「WLAN内で実行されているサーバー」と同じであり、明らかに受け入れられません。

他の情報はありません-ルーターは IPパケットヘッダー の他のフィールドに基づいていくつかの決定を行う可能性がありますが、これらのフィールドはニーズにまったく使用できないか、実用的ではありません-例: sourceIPアドレスに基づいてルーティングを設定し、スプーフィングされた送信元アドレスでパケットを送信する場合がありますが、単にポートを使用する場合と同じ構成上の問題があります。そのために。

1
Peteris

nポートマッピング(ポート転送)をワイヤレスルーターのNATゲートウェイ設定に入力します。便宜上、パブリックポートをクライアントの内部IPに相関させることができます。アドレス(ホスト番号の部分)とプレフィックス(たとえば、50000)。

したがって、プライベートアドレス10.0.0.2から10.0.0.202にクライアントマシンがあるとします。次のようにポートマッピングを入力します。

 [無線ルーターのパブリックIP]:50002-> 10.0.0.2:9999 
 [無線ルーターのパブリックIP]:50003->10.0.0.3:9999
…
 [無線ルーターのパブリックIP]:50202-> 10.0.0.202:9999

これで、クライアントソフトウェアで、各ホストに到達するために、常にNATゲートウェイ(ワイヤレスルーター)のパブリックIPアドレスを指定しますが、指定するポートは、クライアントに基づいて異なります。行きたかった。

ほとんどのクライアントソフトウェアでは、ポートをhttp://example.com:50001/のようなURLでエンコードするか、コマンドライン引数として指定することで、多くの場合-pまたは-Pオプションの後にポートを指定できます。ツールのマニュアルページを確認してください。

12
Spiff

タスクを実行するには2つのオプションがあります

  1. WiFiルーターへのVPNアクセスを使用する-このように、外部デバイスは、デバイスが内部Wifiネットワークにルーティングするように、使用可能なvpnプロトコルの一部(PPTPなど)を使用する必要があります。その後、各IPに直接接続できます。
  2. Socks を使用する-socks-proxyをサポートするwifiルーターを見つける必要があります。

最初の方法は、アプリケーションコードを変更せずに簡単に実行できます。両方のオプションに DD-WRT または Mikrotik ベースのWifiルーターを使用できます。私にとって、MikrotikはVPNサーバーとしてセットアップするのがより簡単です。 Socks の実装に関する詳細はこちらです。

5
t0d0r

もちろん、ルーターでポートフォワーディングを使用することもできます。しかし、それに関連するセキュリティリスクがあります。

デバイスでOpenVPNを実行できる場合は、VPNを作成することをお勧めします。すべてのデバイスとクラウド/モバイルもVPN上にあるため、物理的に同じネットワーク上にあるかのようにアクセスできます。さらに、すべての通信は暗号化されます。

2
Diogo Melo

ルーターでポート転送ルールを開くことができます。これは、パブリックインターフェイスとポート9999で受信したものはすべて、デバイスのIPと同じポートに転送する必要があることを示しています。

ルーターは、指定されたデバイスとポートに外部要件を送信し、他のデバイスはこのトラフィックを認識しません。

0
jcbermu

ワイヤレスルーターでNAT /ポート転送を設定する必要があります。お持ちのルーターを指定していないので、これ以上お役に立てません。また、多くの民生用ワイヤレスルーターにはローエンドの機能セットがあり、手動ポートフォワードの数が制限される場合があります。

なんらかの理由でコメントに返信できないため編集

いいえ、ロードバランサーなしで単一のポートを複数のIPにマッピングすることはできません。内部ネットワーク上のデバイスのさまざまなIP /ポートの組み合わせにマップするには、ルーターの外部インターフェイスにさまざまなポートを設定する必要があります。

0
Matt