在 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"
有人可以告诉我如何将其设置为在重启时启动吗?
答案1
根据 RHEL7/Centos7,默认安装中没有可用的 iptables 服务。相反,他们希望您使用firewalld
默认启用的服务。(man firewall-cmd
有关如何操作firewalld的更多信息,请参阅)
如果您想使用 iptables,您需要安装iptables-services
并启用它们systemctl enable iptables
。您需要关闭防火墙systemctl disable firewalld
。
如果没有特别的理由使用 iptables 或 chkconfig,我建议你不要使用它们。相反,我会花点时间学习防火墙和 systemctl 的工作原理。
答案2
使用 iptables 命令创建的规则存储在内存中。如果在保存 iptables 规则集之前重新启动系统,则所有规则都会丢失。为了让 netfilter 规则在系统重新启动后继续存在,需要先保存它们。
要保存规则,请以 root 身份输入以下命令:
iptables-save
或者
service iptables save
此后重新启动 iptables 服务。
service iptables restart
您可以根据您的 Linux 风格修改服务命令来启动或停止服务。
答案3
这对我有用:
安装iptables服务(从CentOS 7开始默认防火墙是firewalld,所以我们要自己安装iptables服务)
yum-y 安装 iptables 服务;
禁用firewalld服务(CentOS 7中的默认服务)
systemctl 禁用防火墙;
屏蔽防火墙服务(防止 SysOp 意外启动该服务)
systemctl 掩码防火墙;
启动 iptables
服务iptables重启;
将 iptables 规则保存到磁盘,以便在重启后应用这些规则
服务 iptables 保存;