在 RHEL 培训文档中,作者说道:
...运行以下命令禁用当前系统上的防火墙:iptables-F
他明确地使用了“禁用”一词,这对我来说意味着重新启用它会很简单。在阅读 iptables 的手册页时,我看到了这一点:
刷新选定的链(如果没有给出,则刷新表中的所有链)。这相当于删除所有规则一一列出。
我可以澄清预期行为吗?
答案1
这些iptables
规则存储在 Red Hat 系统上的两个位置:
在运行内核的内存中,防火墙代码在网络 I/O 上检查它们。用 刷新规则
iptables -F
只会删除此规则集。它们在启动时从中
/etc/sysconfig/iptables
加载。您可以使用service iptables reload
或强制重新加载而不重新启动...restart
。
所以答案是否定的,刷新规则iptables -F
并不是永久的。
当您进入setup
并修改防火墙规则时,它会将它们保存在/etc/sysconfig/iptables
.您不应该直接编辑该文件,但如果您知道iptables
命令行格式,您可以很容易地找出该文件的格式。
答案2
另外,作为参考,以下是如何刷新所有当前 iptables 规则:
#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT