问题:服务器重启后,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的新的默认防火墙系统,这是学习如何使用它的好机会,你不觉得吗?