
Estoy intentando usar ncat (de la distribución nmap para Windows) para simplemente reenviar una transmisión UDP.
Ejemplo: se puede recibir una transmisión de video en el puerto 5444. Quiero reenviar esa transmisión a otra máquina (por ejemplo, 192.168.10.10) en el puerto 5555.
Encontré dónde se puede hacer esto fácilmente para conexiones TCP (es decir,
interfaz netsh portproxy agregar v4tov4 listeningport=5444 listeningaddress=192.168.10.9 connectport=80 connectaddress=192.168.10.10
), pero no veo cómo hacerlo para UDP.
Socat es la solución obvia en Linux, pero debo usar Windows.
Probé esto:
ncat -l -u 5444 | ncat -u 192.168.10.10 5555
Pero el rendimiento es tan abismal que resulta inutilizable. Creo que estoy ladrando al árbol equivocado con ncat.
Esto TIENE que ser fácil, pero soy un novato en lo que respecta a iptables y similares (donde sospecho que está la respuesta). Se agradece cualquier sugerencia.
Respuesta1
Encontré una solución "fácil" basada en Windows sin dependencias de terceros. Es para habilitar RRAS NAT en un sistema operativo Windows Server. Entonces,
netsh enrutamiento ip nat agregar asignación de puertos "Ethernet" udp 0.0.0.0 5444 192.168.10.10 5555
donde "Ethernet" es el nombre de la NIC que es la "interfaz pública" con NAT habilitada en Enrutamiento y Asistencia remota.
Cuando se configura correctamente, el siguiente comando genera el siguiente resultado:
>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
La sugerencia de harrymc de sudpproxy también fue una buena respuesta, pero para mi aplicación, la sobrecarga adicional del enfoque nativo de Windows es un inconveniente menor que la dependencia de una herramienta de terceros.