Centos 7保存iptables设置

问题:服务器重启后,iptables重置为默认设置。

我试图设置这样的规则:

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

之后我做:

service iptables save

并写回像这样的东西

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

之后我就跑了(这样做了一次):

chkconfig iptables on (我已经读过,这必须完成,以便重新启动后恢复设置)

之后,我重新启动并运行这个命令:

systemctl list-unit-files | grep iptables

我看到iptables.service已启用,但是,规则(打开端口3000)不再工作。

我如何坚持这些设置?

CentOS 7现在正在使用FirewallD !

例:

 firewall-cmd --zone=public --add-port=3000/tcp --permanent 

重新加载规则:

 firewall-cmd --reload 

通过以下命令禁用firewalld:

 systemctl disable firewalld 

然后通过以下命令安装iptables-service:

 yum install iptables-services 

然后启用iptables作为服务:

 systemctl enable iptables 

现在您可以通过以下命令保存您的iptable规则:

 service iptables save 

在CentOS 7 Minimal中,您可能需要安装iptables-services包(感谢@RichieACC的build议 ):

 sudo yum install -y iptables-services 

然后使用systemd启用服务:

 sudo systemctl enable iptables.service 

运行initscript来保存你的防火墙规则:

 sudo /usr/libexec/iptables/iptables.init save 

你可以直接修改/ etc / sysconfig / iptables文件。 重新加载iptables服务来重新加载该文件中的规则。 然而,正如你已经知道的,firewalld是Centos的新的默认防火墙系统,这是学习如何使用它的好机会,你不觉得吗?