Windows에서 UDP 스트림을 위한 간단한 포트 전달

Windows에서 UDP 스트림을 위한 간단한 포트 전달

나는 단순히 UDP 스트림을 전달하기 위해 ncat(Windows용 nmap 배포판 구성)을 사용하려고 합니다.

예: 비디오 스트림은 포트 5444에서 수신될 수 있습니다. 해당 스트림을 포트 5555의 다른 시스템(예: 192.168.10.10)으로 전달하고 싶습니다.

TCP 연결에서 이 작업을 쉽게 수행할 수 있는 곳을 찾았습니다(예:

netsh 인터페이스 포트 프록시 추가 v4tov4 청취 포트=5444 청취 주소=192.168.10.9 연결 포트=80 연결 주소=192.168.10.10

), 하지만 UDP에 대해서는 어떻게 해야 할지 모르겠습니다.

Socat은 Linux에서 확실한 솔루션이지만 Windows를 사용해야 합니다.

나는 이것을 시도했다:

ncat -l -u 5444 | ncat -u 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

여기서 "이더넷"은 라우팅 및 원격 지원에서 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 접근 방식의 추가 오버헤드는 타사 도구에 대한 종속성보다 단점이 적습니다.

관련 정보