Google compute engine Can';在Google云VM实例(CentOS 7)上保存iptables规则

Google compute engine Can';在Google云VM实例(CentOS 7)上保存iptables规则,google-compute-engine,iptables,google-cloud-platform,centos7,Google Compute Engine,Iptables,Google Cloud Platform,Centos7,我在CentOS7上运行Tomcat8,在8080端口的Google VM实例中运行。 我将iptables规则设置为将所有外部连接映射到端口80到8080 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 之后,我将规则保存为 service iptables save Tomcat工作正常,可通过端口80从外部访问。 规则保存在/etc/sysconfig/iptables中 ... -A

我在CentOS7上运行Tomcat8,在8080端口的Google VM实例中运行。 我将iptables规则设置为将所有外部连接映射到端口80到8080

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
之后,我将规则保存为

service iptables save
Tomcat工作正常,可通过端口80从外部访问。 规则保存在
/etc/sysconfig/iptables

...
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
...
但在服务器重新启动后,该规则不会应用。 它仍然在文件
/etc/sysconfig/iptables
中,但在运行时不起作用

iptables-save
似乎iptables规则是从其他地方恢复的


如何正确保留规则以在重新启动后保留它?

为了解决IPtables的问题,您可以执行以下操作:

yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables
然而,Centos7现在正在使用。为了应用防火墙,您需要首先通过运行以下命令检查哪些可用区域以及哪些区域在FirewallD上处于活动状态:

firewall-cmd --list-all-zones
firewall-cmd --get-active-zones
例如,如果公共区域处于活动状态,则可以运行以下命令以启用端口转发(在您的情况下为端口80到8080):

完成后,可以通过运行以下命令重新加载规则以确保一切正常:

firewall-cmd --reload

您可以查看
man firewall cmd
了解更多信息。

@4ilin如果我的回答对解决您的问题有用,如果您能接受答案,我将不胜感激,以便在其他人遇到同样的问题时能够提供帮助。谢谢
firewall-cmd --reload