如何将规则添加到 nftables.conf

如何将规则添加到 nftables.conf

在我的终端中,我写道:

sudo nft add table inet f2b-table

systemctl reload nftables.service

然后 :

sudo nft list ruleset

终端结果(确定):

table inet f2b-table { }

但是当我打开 nftables.conf 时,为什么表 inet f2b 没有出现

为什么它在终端中显示表格而不是在 nftables.conf 中(这是两个不同的文件吗?)

应该如何更新 nftables.conf?

答案1

您已经更新了内核中的表(不是文件)。如果您更新文件,那么它将在文件中。如果您随后告诉 nft 重新读取该文件,那么它将被复制到内核。

所有 Unix 配置文件都只是文件。在某些时候,它们被读取并加载到内核或它们正在配置的程序中。nftables.conf将在系统启动时加载,并且很可能在您重新启动时加载nft,或者告诉它重新加载其配置。

可能有一种方法可以让内核转储可以复制到文件的数据。但是,这也将包括更改之前已经存在的数据。

答案2

当我查看 nftables wiki 时,我发现只有这个页面处理从文件加载表: https://wiki.nftables.org/wiki-nftables/index.php/Scr​​ipting

该页面描述了该nft -f filename命令如何从文件加载表配置,但没有匹配的命令将配置保存到文件。

简要提及“nft list”命令的输出是该文件可接受的语法之一。这意味着nft list ruleset > filename将创建一个可由“nft -f”读取的文件

为什么命令没有systemctl reload nftables.service这样做?显然,包维护者创建的 systemctl 配置不执行保存到文件操作。也许它只执行从文件读取操作。我没有更详细的信息,因为我没有具有 NFT 数据包过滤功能的计算机,而且您没有提到您正在使用哪种 Linux/Unix。

相关内容