Windows上的数据包重定向

9

由于软件限制,我们目前在所有机器上都运行Windows操作系统。

然而,在此基础上,我们需要将某些进入特定IP和端口的数据包重定向到不同的端口(相同IP)。我们有一个正在侦听“代理端口”的软件。

在Linux上使用IPTables可以通过执行类似以下命令来实现:

iptables -t nat -I PREROUTING -p udp -d <DSTIP> --dport <DSTPORT> -m u32 --u32 '0>>22&0x3C@8=0xFFFFFFFF && 0>>22&0x3C@12=0x54536F75 && 0>>22&0x3C@16=0x72636520 && 0>>22&0x3C@20=0x456E6769 && 0>>22&0x3C@24=0x6E652051 && 0>>22&0x3C@28=0x75657279' -j REDIRECT --to-port <REDIRECT PORT>

这在Linux上很实用,可以将某些数据包重定向到我们的代理软件,但是是否可能在Windows上做类似的事情而不必在我们的Windows机器前面获得专用机器呢?
我正在考虑使用pcap.net编写一些内容,但我猜这将不得不直接从NIC读取,而不是从Windows读取?

那是哪个版本的Windows? - hovanessyan
3
你看过这个网址吗:https://dev59.com/jmgu5IYBdhLWcg3wK0Gr#11535395? - David Wohlferd
只是出于好奇,你为什么需要这个?我想你可能需要编写一个Windows过滤驱动程序或设置一个Linux(虚拟)机器,恐怕没有其他办法。 - Thomas
2个回答

7

根据MSDN的介绍:

Netsh 是一个命令行脚本实用程序,它允许您在本地或远程情况下显示或修改当前正在运行的计算机的网络配置。

您可以使用以下命令将来自任何端口的连接重定向到另一个本地(或远程)端口:

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport

另外,正如在这篇 SO 帖子中所述,netsh 是 Windows 上 iptabes 的良好替代品。


这几乎是我们所需要的,除了它需要仅将包含某些有效载荷的特定流量转发到新端口,而不是全部流量。 - user1372896

1

命令

netsh interface portproxy ...

进行端口代理但不进行数据包转发。主要区别在于

我们曾经使用这种技术进行端口转发,但在发现这些问题后,我们不得不在网络防火墙上使用额外的规则来避免使用netsh。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接