Windows での UDP ストリームのシンプルなポート転送

Windows での UDP ストリームのシンプルなポート転送

私は ncat (Windows 用の nmap ディストリビューションから) を使用して、単純に UDP ストリームを転送しようとしています。

例: ビデオ ストリームはポート 5444 で受信できます。そのストリームをポート 5555 上の別のマシン (たとえば 192.168.10.10) に転送したいとします。

TCP接続(つまり、

netsh インターフェイス portproxy 追加 v4tov4 listenport=5444 listenaddress=192.168.10.9 connectport=80 connectaddress=192.168.10.10

) ですが、UDP の場合はどうすればよいかわかりません。

Linux では Socat が明らかな解決策ですが、Windows を使用する必要があります。

私はこれを試しました:

5444 のコマンド192.168.10.10 5555 のコマンドを実行します。

しかし、パフォーマンスがひどくて使えません。ncat については間違ったことを言っているように思います。

これは簡単なはずですが、iptables などに関しては初心者です (答えはそこにあると思います)。何かアドバイスがあれば、ぜひお願いします。

答え1

サードパーティに依存しない「簡単な」Windowsベースのソリューションを見つけました。それは、Windows Server OSでRRAS NATを有効にすることです。

netsh ルーティング ip nat ポートマッピング "イーサネット" udp 0.0.0.0 5444 192.168.10.10 5555 を追加します

ここで、「Ethernet」は、ルーティングとリモート アシスタンスで NAT が有効になっている「パブリック インターフェイス」である NIC の名前です。

適切に構成されている場合、次のコマンドを実行すると、次のような出力が生成されます。

>netsh routing ip nat show interface

NAT Ethernet Configuration
---------------------------
Mode              : Private Interface


NAT Static Port Mapping Configuration
-------------------------------------
Protocol          : UDP
Public address    : 0.0.0.0
Public port       : 5444
Private address   : 192.168.10.10
Private port      : 5555

harrymc の sudpproxy の提案も良い回答でしたが、私のアプリケーションでは、ネイティブ Windows アプローチの追加オーバーヘッドは、サードパーティ ツールへの依存よりも欠点としては小さくなります。

関連情報