[英]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.