Windows: IP とポートのネットワーク トラフィックをローカル マシン上の別の IP とポートにマッピングする

Windows: IP とポートのネットワーク トラフィックをローカル マシン上の別の IP とポートにマッピングする

Windows では、IP アドレス (例: 10.255.255.255) のすべてのトラフィックを別の IP アドレス (例: 127.0.0.1) にマップする必要があります。

netsh interface portproxy を見つけたので試してみました。

netsh interface portproxy add v4tov4 listenaddress=10.255.255.255 listenport=7073 connectaddress=127.0.0.1 connectport=7071

目標は、ユーザーがパケットを送信すると10.255.255.255:7073、そのパケットを127.0.0.1:7071

netsh interface portproxy show all

Listen on ipv4:             Connect to ipv4:

Address         Port        Address         Port
--------------- ----------  --------------- ----------
10.255.255.255  7073        127.0.0.1         7071

7073 ポートのファイアウォール ルールも追加しました。

netsh advfirewall firewall add rule name="7073 port" protocol=TCP dir=in localport=7073 action=allow

これは Windows 11 上です。

netstat -na|find "7073" の結果は空で、7071 の同じ結果は次のとおりです。

netstat -na|find "7071"
  TCP    0.0.0.0:7071           0.0.0.0:0              LISTENING

私のアプリケーションでは、最初に postman から 10.255.255.255:7073 にリクエストを送信しようとしましたが、タイムアウトになりました。同じリクエストを 127.0.0.1:7071 に正常に送信できます。

7073 に telnet を実行しても、接続できません。

telnet 10.255.255.255 7073
Connecting To 10.255.255.255...Could not open connection to the host, on port 7073: Connect failed

IP Helperサービスも実行されていることを確認しました。

私の意図は、ユーザーがすでに にリクエストを送信できる場合127.0.0.1:7071、ポート転送後に にリクエストを送信して10.255.255.255:7073同じ動作を確認できるようにすることです。私のアプリケーションは実際に HTTP リクエストを送信します。

実際には、着信トラフィックをリッスンしているサービスは存在しないことに注意してください7073。しかし、それがポイントです。このポートに何かを送信する人は誰でも (誰もリッスンしていなくても)、トラフィックは7071(誰かがリッスンしている) に送信されるようにします。

すべてのネットワーク トラフィックを送信元 IP から宛先 IP に転送するために IP:ポートを別の IP:ポートにマッピングすることに関して、私のアプローチは正しいでしょうか?

もしそうなら、何が問題なのでしょうか?

ありがとう

答え1

このコマンドの問題点は、とnetshのパラメータを指定するときに、 listenaddressconnectaddress特定の IP アドレス (アドレスの範囲ではない)

したがって、使用した構文10.255.255.255では、アドレスの範囲全体ではなく、この正確な IP アドレスが指定されます10.*

ドキュメント Netsh インターフェイスのポートプロキシ コマンド - v4tov4 を追加 こう言っています。

接続アドレス

指定しますIPv4アドレス接続先。許容される値は、IP アドレス、コンピューターの NetBIOS 名、またはコンピューターの DNS 名です。アドレスが指定されていない場合、デフォルトはローカル コンピューターです。

リスンアドレス

指定しますIPv4アドレスリッスンするコンピュータ。許容される値は、IP アドレス、コンピュータの NetBIOS 名、またはコンピュータの DNS 名です。アドレスが指定されていない場合、デフォルトはローカル コンピュータです。

ポートプロキシを再作成したい場合は、まず、作成したものを削除する必要があります。 v4tov4 を削除

関連情報