Windows上的数据包重定向

use*_*896 7 routing network-programming iptables windows-firewall pcap.net

由于软件限制,我们目前在所有机器上运行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>
Run Code Online (Sandbox Code Playgroud)

这在linux上工作得很好,并且会将某些数据包重定向到我们的代理软件,但是它是否可以在Windows上执行此类操作而无需在我们的Windows机器前面获得专用机器?

我在考虑用pcap.net写一些东西,但我猜这将不得不直接从NIC读取而不是Windows?

小智 6

MSDN

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

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

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
Run Code Online (Sandbox Code Playgroud)

此外,正如这篇 SO post 中所述netsh是Windows 上iptabes的良好替代品。