Простая переадресация портов для потока UDP в Windows

Простая переадресация портов для потока UDP в Windows

Я пытаюсь использовать ncat (из дистрибутива nmap для Windows) для простой пересылки потока UDP.

Пример: видеопоток можно получить на порту 5444. Я хочу переслать этот поток на другую машину (например, 192.168.10.10) на порту 5555.

Я нашел, где это можно легко сделать для TCP-соединений (т.е.

netsh interface portproxy add v4tov4 listenport=5444 listenaddress=192.168.10.9 connectport=80 connectaddress=192.168.10.10

), но я не вижу, как это сделать для UDP.

Socat — очевидное решение в Linux, но мне приходится использовать Windows.

Я попробовал это:

ncat -l -u 5444 | ncat -u 192.168.10.10 5555

Но производительность настолько ужасна, что ее невозможно использовать. Думаю, я лаю не на то дерево с ncat.

Это ДОЛЖНО быть легко, но я новичок в iptables и т. п. (где, как я подозреваю, и кроется ответ). Буду признателен за любые указания.

решение1

Я нашел «легкое» решение на базе Windows без сторонних зависимостей. Оно заключается в включении RRAS NAT на ОС Windows Server. Затем,

netsh routing ip nat add portmapping "Ethernet" udp 0.0.0.0 5444 192.168.10.10 5555

где «Ethernet» — это имя сетевой карты, которая является «публичным интерфейсом» с включенным NAT в маршрутизации и удаленной помощи.

При правильной настройке следующая команда приведет к следующему выводу:

>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 являются меньшим недостатком, чем зависимость от стороннего инструмента.

Связанный контент