服务器有两个 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
所以我该怎么做才能让它工作,谢谢
答案1
如果我理解正确的话(如果您想将端口 443 从 A 转发到 C),您应该像这样配置您的 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
另外,您还应该检查 iptables 配置,看是否-A FORWARD -j REJECT --reject-with icmp-host-prohibited
有完全禁用转发的规则。并且您应该已net.ipv4.ip_forward
在 中启用sysctl
。