由于软件限制,我们目前在所有机器上运行Windows。
然而,在此范围内,我们需要将进入IP和端口的某些数据包重定向到不同的端口(相同的IP)。我们有软件监听"代理端口"。
这可以通过类似于以下内容的方式在Linux上使用IPTables实现:
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$rating = $_POST['rating'];
}
?>
<?php
$choice = "You chose: ";
echo isset($rating) ? $choice.$rating : 'Make a selection';
?>
<form method = "post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<input type="radio" name="rating" value="1">
<input type="radio" name="rating" value="2">
<input type="radio" name="rating" value="3">
<input type="radio" name="rating" value="4">
<input type="radio" name="rating" value="5">
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
这在linux上工作得很好,并且会将某些数据包重定向到我们的代理软件,但是它是否可以在Windows上执行此类操作而无需在我们的Windows机器前面安装专用机器?
我当时正在考虑用pcap.net写一些内容,但我猜这必须直接从网卡而不是Windows中读取?
答案 0 :(得分:3)
来自MSDN:
Netsh 是一个命令行脚本实用程序,允许您使用 本地或远程,显示或修改a的网络配置 当前正在运行的计算机。
您可以使用以下命令将来自任何端口的连接重定向到另一个本地(或远程)端口:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
此外,正如this SO post中所述, netsh 是Windows上 iptabes 的良好替代品。
答案 1 :(得分:0)
命令
netsh interface portproxy ...
进行端口代理但不进行数据包转发。主要区别是
我们一直在使用这种技术进行端口转发,但在这些发现之后我们不得不在网络防火墙上使用额外的规则来避免使用netsh。