Windows 10-NAT-端口转发和IP伪装


13

我正在寻找一种在Windows 10中获取iptables功能的方法。启用了IP路由,我需要将tcp数据转发到另一台主机(端口8080),然后在伪装IP时转发他的响应。在linux中,我可以使用以下命令执行此操作(其中$ 1 = <内部IP>,$ 2 = 80,$ 3 = 8080,$ 4 = tcp)

iptables -t nat -A PREROUTING -p $4 --match multiport --dports $2 -j DNAT --to-destination $1:$3 
iptables -A FORWARD -p $4 --match multiport --dports $2 -d $1 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE

有没有办法在Windows 10中实现类似功能?


答案可能太短了,我不知道这对于Windows 10是否仍然有效。有关端口转发的信息,请查看此答案。在Windows中伪装称为Internet连接共享(ICS),请查看此答案
rda

您好,感谢您的输入。我尝试使用netsh,但它似乎不起作用(也许是因为我需要listenaddress为通配符*)。对于ICS,我不确定如何工作(是否需要第二个适配器?如果桥接它们,我将无法使用ICS)
Orestis P.

也许您可以在PC上使用netcat。它将在一个端口上侦听并发送到另一个端口。IP将是您机器中间的IP。
TJJ

2
@OrestisP。netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080如果有时间,我会尝试将您的iptables转换为netsh。用您选择的地址替换127.0.0.1
Zalmy

Answers:


16

Windows netsh可以设置代理,以允许管理员通过ipv4代理ipv6通信。Netsh还可以选择将ipv4的代理配置为ipv4。

对于您的设置,使用netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080替换为127.0.0.1您要代理的地址。

这是该命令的一些细目。

netsh interface portproxy选择处理隧道的接口。 add v4tov4创建从ipv4到ipv4的隧道。 listenport=80您要客户端连接的端口。 connectaddress=127.0.0.1是客户端将被代理的远程地址。 connectport=8080是远程端口。

listenaddress=如果只希望代理在一个接口上可用,则也可以使用。

有关更多信息https://technet.microsoft.com/zh-cn/library/cc731068(v=ws.10).aspx


1
请注意,不幸的是,这仅适用于TCP,因此,如果您要转发一些UDP流量,则很不走运。
user276648 '16

1
我可以使用Windows 10在运行VPN的计算机上将ssh端口(服务器端口22)进行端口转发。我的家庭网络中的一台机器(没有VPN连接)可以使用侦听端口连接到VPN内的另一台机器。
Frank M

1

至少出于测试目的,我能够使用以下实用工具转发TCP和UDP

https://sourceforge.net/projects/pjs-passport/

它适用于XP,但也适用于Win10。


Windows 10告诉我:Cannot start service from the command line or a debugger. A Windows Service must first be installed (using installutil.exe) and then started with the ServerExplorer, Windows Services Administrative tool or the NET START command.
Peter Turner

1
@PeterTurner:检查readme文件。我看到PassPort.exe -Install要安装该服务。
user276648 '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.