将 Windows Server 上传入的 UDP 数据包转发到不同接口上的客户端

将 Windows Server 上传入的 UDP 数据包转发到不同接口上的客户端

我有 2 个网络和 3 个客户端的以下设置:

  • 网络 A:192.168.0.0/16

  • 网络 B:172.16.0.0/12

  • 客户端 1 连接到网络 A(192.168.0.1)

  • 客户端 2(Windows Server)连接到网络 A(192.168.0.2)和网络 B(172.16.0.2)

  • 客户端 3 连接到网络 B(172.16.0.1)

在我的设置中,客户端 2 充当两个网络之间的桥梁。我无法修改现有网络结构,无法在客户端 1 或 3 上安装任何软件,也无法以任何方式修改系统。

客户端 1 正在将 UDP 数据包发送到客户端 2(192.168.0.2)的端口 1202。现在,我想将数据包转发到客户端 3(172.16.0.1)的端口 1202。如果可能的话,这也应该在相反方向上起作用。

以下命令使用网络管理员应该可以完成这项工作。

netsh interface portproxy add v4tov4 listenaddress=192.168.0.2 listenport=1202 connectaddress=172.16.0.1 connectport=1202

然而,这只适用于TCP 流量不适用于 UDP。

我还发现了一个名为简单的 UDP 代理/管道发现于本网站,但是我无法让它转发任何流量。

答案1

我建议使用 socat...这个程序也适用于 Windows关联。需要花一点时间来了解该工具,但它确实很强大。

这里解释了如何使用 socat 转发 udp 流量。

还有另一种方法:您可以将 Windows 服务器变成网络路由器。本文解释如何操作。您需要在客户端 1 和 3 上安装正确的路由 - 因此此选项更为复杂。

相关内容