IPTABLE 重复值的含义

IPTABLE 重复值的含义

我是 IPTABLES 新手,当我执行以下命令时

/sbin/iptables --list -n | grep 16381

我可以看到如下所示的多个条目:

ACCEPT     tcp  --  a.b.c.d         0.0.0.0/0           tcp dpt:16381
ACCEPT     tcp  --  a.b.c.d         0.0.0.0/0           tcp dpt:16381
ACCEPT     tcp  --  a.b.c.e         0.0.0.0/0           tcp dpt:16381
ACCEPT     tcp  --  a.b.c.b         0.0.0.0/0           tcp dpt:16381
ACCEPT     tcp  --  a.b.c.f         0.0.0.0/0           tcp dpt:16381
ACCEPT     tcp  --  a.b.c.f         0.0.0.0/0           tcp dpt:16381
ACCEPT     tcp  --  a.b.c.c         0.0.0.0/0           tcp dpt:16381
ACCEPT     tcp  --  a.b.c.g         0.0.0.0/0           tcp dpt:16381
DROP       tcp  --  0.0.0.0/0       0.0.0.0/0           tcp dpt:16381

有人能解释一下重复条目的原因吗?

我对此完全陌生,因此非常希望得到详细的解释。

答案1

您可能正在运行一个脚本(或类似脚本),该脚本会添加规则,但不要删除旧规则。请注意,多次添加同一条规则会导致iptables在执行脚本时多次添加它们,即使规则已经存在。

如果您使用脚本,请确保在再次添加新规则之前清除所有规则。在顶部放置类似以下内容:

iptables -F
iptables -X
iptables -Z

请注意,这些命令仅清除默认表,即filter。如果您对多个表有规则,则需要对该表执行相同的命令。例如:

iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

还要注意,有几个表:filter、nat、mangle、raw 和 security,但这并不意味着您必须使用所有表,只需使用您需要的表即可。

然而,最好的方法是使用iptables-saveiptables-restore命令,除了规则本身之外,它们还保存规则的状态。

您可以将规则保存为:

iptables-save > /root/my-rules.iptables

您甚至可以手动向保存的文件添加规则,尽管iptables建议使用本机命令,然后转储整个链。

然后使用以下命令恢复它们:

iptables-restore < /root/my-rules.iptables

相关内容