我正在做一个项目,需要将一些广播数据包 DNAT 到远程机器的 IP 地址。到目前为止,我了解到 IP 表只能 DNAT 单播数据包,而不能 DNAT 广播数据包。我正在寻找一种可以在 Ubuntu 或 Centos 上监听这些广播数据包,然后将其转换为单播数据包的软件,以便将它们发送到不同网络上的远程机器。我知道 Windows 上有几个选项,如“多端口转发器”和“AUTAPF”,但我正在寻找适用于 Linux 的类似实用程序。
答案1
作为 AUTAPF 的替代方案,索卡特可以使用。
$ sudo socat UDP4-RECVFROM:139,broadcast,fork UDP4-SENDTO:10.1.1.255:139
其中 10.1.1.255 - 广播转发目标
基于 [使用 socat 进行 UDP 端口转发(作者:Matt Ryall)] 和 [使用 Socat 进行 IP 多播]
只是妖魔化它。
或者端口转发
udp配置文件
user nobody
group nobody
udp /* UDP packets */
{
/*
* All packets on port 10000 are forwarded to 127.0.0.1:11000.
*/
10000 { => 127.0.0.1:11000 }
}
答案2
如果您的目标是在目的地再次接收广播的数据包,那么您可以使用 L2 VPN。它不进行 DNAT,而是将原始数据包通过隧道传输到隧道所指向的位置,然后在最终目的地与隧道划定界限。