在我的终端里,我写道:
sudo nft add table inet f2b-table
systemctl reload nftables.service
然后:
sudo nft list ruleset
结果在终点站(ok):
table inet f2b-table { }
但是当我打开nftables.conf时,为什么表内f2b没有出现
为什么它在终端而不是nftables.conf中显示表(这是两个不同的文件吗?)
应该做些什么来更新nftables.conf?
发布于 2022-07-04 18:52:13
您已经更新了内核中的表(不是文件)。如果您更新该文件,那么它将在文件中。如果然后告诉nft重新读取文件,那么它将被复制到内核中。
所有Unix配置文件,只是文件。在某个时候,它们被读取并加载到正在配置的内核或程序中。nftables.conf将在系统启动时加载,很可能是在重新启动nft时加载,或者告诉它重新加载其配置。
可能有一种方法可以让内核转储可以复制到文件中的数据。但是,这也将包括更改之前已经存在的数据。
发布于 2022-07-04 19:12:44
当我查看nftables时,我发现只有这个页面处理从文件:https://wiki.nftables.org/wiki-nftables/index.php/Scripting加载表的问题。
该页描述了nft -f filename命令如何从文件加载表配置,但没有匹配的命令将配置保存到文件中。
这里简短地提到,"nft list“命令的输出是文件的可接受的语法之一。这意味着nft list ruleset > filename将创建一个可由"nft -f“读取的文件。
为什么systemctl reload nftables.service命令不这样做?显然,由包维护人员创建的systemctl配置没有执行保存到文件的操作。也许它只执行从文件读取的操作。我没有更详细的信息,因为我没有一台带有NFT数据包过滤的计算机,而且您也没有提到您正在使用哪个Linux/Unix。
https://unix.stackexchange.com/questions/708591
复制相似问题