我有 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 正在向客户端 2 (192.168.0.2) 发送 UDP 数据包到端口 1202。现在我想将数据包转发到客户端 3 (172.16.0.1) 到端口 1202。如果可能,这也应该在相反的方向上工作。
以下使用netsh的命令应该可以完成这项工作。
netsh interface portproxy add v4tov4 listenaddress=192.168.0.2 listenport=1202 connectaddress=172.16.0.1 connectport=1202
但是,这仅适用于TCP 流量,不适用于 UDP。
我还在这个网站上找到了一个名为Simple UDP proxy/pipe的程序,但是我无法让它转发任何流量。
我建议使用 socat ......这个程序也存在于 windows链接。阅读该工具需要一些时间,但它确实非常强大。
这里解释一下如何使用 socat 转发 udp 流量。
还有另一种方式:你可以把你的windows服务器变成一个网络路由器。这篇文章解释了如何。您需要在客户端 1 和 3 上安装正确的路由 - 所以这个选项更复杂。