服务器有两个IP地址A和B(默认网关是B)我想转发端口443到IP C:443,所以我可以连接A:443 —-到— C:443
如果我使用(A:443 NAT到C:443),它不起作用
-A PREROUTING -d A/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination C:443 -A POSTROUTING -d C/32 -p tcp -m tcp --dport 443 -j SNAT --to-source A:443
如果我使用(B:443 NAT到C:443),我可以连接B:443,但这不是我想要的
-A PREROUTING -d B/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination C:443 -A POSTROUTING -d C/32 -p tcp -m tcp --dport 443 -j SNAT --to-source B:443
即使我使用也不行(A:443 NAT到B:443 B:443到C:443)
-A PREROUTING -d A/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination B:443 -A POSTROUTING -d B/32 -p tcp -m tcp --dport 443 -j SNAT --to-source A:443 -A PREROUTING -d B/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination C:443 -A POSTROUTING -d C/32 -p tcp -m tcp --dport 443 -j SNAT --to-source B:443
所以我该怎么做,谢谢
如果我理解你是正确的(如果你想将端口443从A转发到C),你应该像这样configuration你的iptables:
*nat -A PREROUTING -d A/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination C:443 -A POSTROUTING -p tcp -m tcp --dport 443 -j MASQUERADE
你也应该检查你的iptablesconfiguration规则-A FORWARD -j REJECT --reject-with icmp-host-prohibited它禁止转发。 你应该在sysctl启用net.ipv4.ip_forward 。