![iptable nat规则适用于ubuntu16.04但不适用于redhat7.6](https://linux22.com/image/171241/iptable%20nat%E8%A7%84%E5%88%99%E9%80%82%E7%94%A8%E4%BA%8Eubuntu16.04%E4%BD%86%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8Eredhat7.6.png)
我需要在 rhel7 虚拟机上使用 iptable nat 规则将数据包路由到某个 IP 地址。
为了进行开发,我在 ubuntu 16.04 虚拟机上使用 ip 地址测试了规则192.168.150.4:
sysctl net.ipv4.ip_forward=1
规则:
iptables -t nat -A PREROUTING -p tcp --dport 9000 -j DNAT --to-destination 192.168.150.35:6443
iptables -t nat -A POSTROUTING -j MASQUERADE
我从远程虚拟机测试它成功运行:
telnet 192.168.150.4 9000
curl https://192.168.150.4:9000 -kv
同样,在 rhel7 虚拟机上使用相同的生产规则(显然具有不同的 ip 集),但规则似乎不起作用
在所有安全组规则均已到位的情况下使用 OpenStack。
请帮忙。提前致谢。
答案1
如果 JB 的建议不是原因,您可能需要先重定向端口:
iptables -t nat -A PREROUTING -p tcp --dport 9000 -j REDIRECT --to-port 6443
iptables -t nat -A PREROUTING -p tcp --dport 6443 -j DNAT --to-destination 192.168.150.35
希望这可以帮助!