繁体   English   中英

无法在Google Cloud VM实例(CentOS 7)上保存iptables规则

[英]Can't save iptables rule on Google Cloud VM instance (CentOS 7)

我在端口8080上的Google VM实例中运行CentOS7上的Tomcat8。我设置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 要应用防火墙,您需要先运行以下命令,检查防火墙D上的可用区域和活动区域:

firewall-cmd --list-all-zones
firewall-cmd --get-active-zones

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

firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

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

firewall-cmd --reload

您可以查看man firewall-cmd以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM