在我们的设置中,我们有一个带有两个NIC的linux服务器,一个连接到我们的LAN/internet,另一个连接到也在为RDP服务的windows机器上。当然,我们想通过RDP连接到win机器上并登陆。
我在两个-> ping工厂之间建立了固定的I。此外,我还有以下iptables设置:
iptables -t nat -A PREROUTING -p tcp -d <external IP of linux machine> --dport 3389 -j DNAT --to-destination <IP of win machine>
iptables -t nat -A POSTROUTING -p tcp -s <IP of win machine> --dport 3389 -j SNAT --to-source <external IP of linux machine>我也试过
iptables -t nat -A POSTROUTING -p tcp -s <IP of win machine> --sport 3389 -j SNAT --to-source <external IP of linux machine>没有RDP连接的可能。我做得对吗?我是否应该尝试不在SNAT规则上指定任何端口?
/edit:在没有指定端口的情况下尝试了SNAT,但也无法连接。
/edit:尝试了伪装,而不是SNAT,但仍然没有成功。
sudo iptables -t nat -A POSTROUTING -o <outgoing interface on linux machine> -j MASQUERADE/edit:尝试通过
sudo iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT但还是没有联系。
/edit:怀疑网络经理是问题的根源。我手动定义了linux机器的内部接口。它仍然出现在网络管理器中,问题仍然没有得到解决。
发布于 2016-11-08 14:20:31
sudo iptables -t nat -A PREROUTING -i <outgoing interface on linux machine> -p tcp --dport 3389 -j DNAT --to-destination <IP of win machine>
sudo iptables -t nat -A POSTROUTING -o <outgoing interface on linux machine> -j SNAT --to-source <external IP of linux machine>
sudo iptables -A FORWARD -i <outgoing interface on linux machine> -p tcp --dport 3389 -j ACCEPT
sudo iptables -A FORWARD -s <IP of win machine> -j ACCEPTcat /proc/sys/net/ipv4/ip_forward应该返回1
请注意,iptables -A只需将规则附加到链中即可。这意味着,如果已经有一个规则拒绝您的数据包,它将首先执行,您的新规则将永远不会匹配。如果您不确定,可以使用iptables -I而不是iptables -A测试上述规则。您的规则将被插入链中,成为执行的第一个规则。
https://serverfault.com/questions/813572
复制相似问题