
我正在嘗試使用 ncat (來自 Windows 的 nmap 發行版)來簡單地轉送 UDP 流。
範例:可以在連接埠 5444 上接收視訊串流。
我發現對於 TCP 連接可以輕鬆完成此操作(即
netsh 介面 portproxy 新增 v4tov4 監聽連接埠=5444 監聽位址=192.168.10.9 連接埠=80 連接位址=192.168.10.10
),但我不知道如何為 UDP 做到這一點。
Socat 是 Linux 中顯而易見的解決方案,但我必須使用 Windows。
我試過這個:
ncat -l -u 5444 | ncat -l -u 5444 ncat-u 192.168.10.10 5555
但性能太差,無法使用。我想我用 ncat 找錯樹了。
這很容易,但當涉及到 iptables 等時我是一個新手(我懷疑答案就在其中)。任何指示表示讚賞。
答案1
我找到了一個「簡單」的基於 Windows 的解決方案,沒有第三方依賴項。用於在 Windows Server 作業系統上啟用 RRAS NAT。然後,
netsh 路由 ip nat 新增連接埠對映「乙太網路」udp 0.0.0.0 5444 192.168.10.10 5555
其中「乙太網路」是 NIC 的名稱,該 NIC 是在「路由和遠端協助」中啟用了 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 方法的額外開銷比對第三方工具的依賴更不是缺點。