问题:服务器重启后 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)不再起作用。
如何保留这些设置?
通过以下命令禁用防火墙:
然后通过以下命令安装 iptables-service:
然后启用 iptables 作为服务:
现在您可以通过以下命令保存您的 iptable 规则:
CentOS 7 现在正在使用FirewallD!使用
--permanent
标志来保存设置。例子:
然后重新加载规则:
在 CentOS 7 Minimal 上,您可能需要安装该
iptables-services
软件包(感谢@RichieACC的建议):然后使用以下命令启用服务
systemd
:并运行 initscript 以保存您的防火墙规则:
将保存当前配置而无需安装任何其他库或服务。
可以直接修改
/etc/sysconfig/iptables
文件。重新加载iptables
服务以从该文件重新加载规则。然而,正如你已经被告知的,
firewalld
Centos 是新的默认防火墙系统,这是学习如何使用它的好机会,你不觉得吗?也许这样的脚本对任何人都有帮助?
请注意,您将丢失当前配置的任何内容,因为它会删除 firewalld 并刷新 INPUT 表中的所有当前规则:
我猜你想要同样的,以防你的系统可能被 IPv6 流量访问(现在或以后的任何时间):