在 Red Hat 7 中,我试图强制 IP 表服务在重启后自动启动。目前,每次重新启动后,我都需要运行以下命令:
sudo systemctl start iptables
我试过设置
sudo chkconfig iptables on
但它没有运行。
在我的文件/etc/sysconfig/iptables-config
中,我设置了
IPTABLES_SAVE_ON_STOP="yes"
IPTABLES_SAVE_ON_RESTART="yes"
有人可以让我知道如何将其设置为在重新启动时启动吗?
根据 RHEL7/Centos7,默认安装中没有可用的 iptables 服务。相反,他们希望您使用
firewalld
默认打开的。(man firewall-cmd
有关如何操作 firewalld 的更多信息,请参阅 )如果你想使用 iptables,你需要安装
iptables-services
并启用它们systemctl enable iptables
。您将需要使用 关闭防火墙systemctl disable firewalld
。如果没有使用 iptables 或 chkconfig 的真正具体原因,我建议您不要使用它们。相反,我会投资于学习 firewalld 和 systemctl 的工作原理。
使用 iptables 命令创建的规则存储在内存中。如果在保存 iptables 规则集之前重新启动系统,则所有规则都将丢失。要使 netfilter 规则在系统重新启动后仍然存在,需要先保存它们。
要保存规则,请以 root 身份输入以下命令:
或者
在此之后重新启动 iptables 服务。
您可以根据自己的 Linux 风格修改服务命令以启动或停止服务。
这对我有用:
安装iptables服务(由于CentOS 7默认防火墙是firewalld,所以我们必须自己安装iptables服务)
yum -y 安装 iptables 服务;
禁用 firewalld 服务(这是 CentOS 7 中的默认设置)
systemctl 禁用防火墙;
屏蔽 firewalld 服务(防止 SysOp 意外启动服务)
systemctl 掩码防火墙;
启动 iptables
服务 iptables 重启;
将 iptables 规则保存到磁盘,以便在重新启动后应用这些规则
服务 iptables 保存;