iptables 如何保持插入和列表的一致性

iptables 如何保持插入和列表的一致性

我有一个Golang项目,需要自动执行修改网络的操作iptables command,同时需要检查是否已经填充成功。

我通过命令列出了规则iptables -S,但存在一些不一致之处。

举些例子:

iptables -t nat -A PREROUTING -d $INET_IP -p tcp --dport 80 -j DNAT --to-destination $INNET_IP

相应list结果如下

# iptables -t nat -S PREROUTING
-A PREROUTING -d $INET_IP/32 -p tcp --dport 80 -j DNAT --to-destination $INNET_IP

关键的区别在于额外的/32,是否有一些参数iptables可以简化 iptables -S 的结果以消除这种差异?我非常感谢任何帮助。

答案1

在内部,它需要网络地址并以地址/网络掩码的形式存储它们。/32 是单个主机的网络掩码;您只提供了一个没有掩码的 IP,这是允许的并被视为单个主机,因此它在将规则添加到内核之前添加了单个主机掩码 /32。此行为已记录在案。

在列表操作期间,您只看到其内部表示形式以及网络掩码,因为它存储在内核中。

这不是关键区别无论如何,你应该忽略它。这不是 iptables 独有的功能;其他系统的一些防火墙在这方面看起来也一样。

相关内容