我有一个带有IP 10.10.10.5的Debian服务器和一个IP 10.10.7的Windows计算机。我的计划是让Debian服务器使用以下iptables规则将所有RDP流量转发到Windows计算机:
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 10.10.10.7:3389
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT但出于某种原因,它不起作用。我已将IPv4转发设置为"1“。
当我从局域网直接连接到Windows计算机时,它建立了RDP连接,但不通过服务器工作。10.10.5的Nmap返回3389的“筛选”,而10.10.7的nmap返回“打开”。有什么问题吗?
发布于 2015-04-08 11:53:34
由于所有机器似乎都在同一个子网上,Windows计算机将尝试直接向客户端响应,而不通过NAT框(第二层)。
您还应该回复数据包,并添加:
iptables -t nat -A POSTROUTING -s 10.10.10.7 -p tcp --sport 3389 -j SNAT --to 10.10.10.5发布于 2015-04-08 12:37:43
除了SNAT之外,化妆舞会也应该做,而且会让它变得更容易一些。伪装是SNAT,只是没有指定IP地址,而是指定了接口;这意味着,如果添加更多的端口转发,就不需要添加POSTROUTING规则。
iptables -t nat -A POSTROUTING -o $out_interface -j MASQUERADE理论上,除了内核需要跟踪SNAT而不是伪装之外,不应该有任何实际或性能上的差异。
https://serverfault.com/questions/681210
复制相似问题