在 CentOS 7 中,默认使用 firewalld 作为防火墙管理工具。如果您需要切换回传统的 iptables,可以按照以下步骤操作:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo yum install iptables-services -y
sudo systemctl start iptables
sudo systemctl enable iptables
sudo systemctl start ip6tables
sudo systemctl enable ip6tables
sudo systemctl status iptables
默认情况下,iptables 会加载 /etc/sysconfig/iptables
中的规则。您可以使用以下命令编辑规则:
sudo vi /etc/sysconfig/iptables
或者使用交互式命令配置:
sudo iptables -L # 查看当前规则
sudo iptables -F # 清空当前规则(谨慎操作)
配置完规则后,需要保存:
sudo service iptables save
sudo systemctl restart iptables
从 firewalld 切换到 iptables 后,之前配置的 firewalld 规则不会自动转换,需要手动重新配置 iptables 规则。
如果需要切换回 firewalld,可以执行:
sudo systemctl stop iptables
sudo systemctl disable iptables
sudo systemctl start firewalld
sudo systemctl enable firewalld
在 CentOS 7 中,iptables 服务实际上是调用了 iptables 命令并加载保存的规则,底层仍然是使用 netfilter 框架。
对于新安装的系统,建议优先考虑使用 firewalld,因为它提供了更高级的功能和动态管理能力。