原子性的替换规则

你可以使用 -f 选项原子性的更新你的规则集:

% nft -f file

file 文件包含了你的规则集。

你可以把你的规则集保存到文件中,例如:

% nft list table filter > filter-table

然后你可以使用 -f 选项恢复它:

% nft -f filter-table

如果你在 filter-table 文件的最开始添加 flush table filter,你就可以像 iptables-restore 那样原子性的替换规则集。注意内核会在一个事务中处理文件中所有的规则命令,因此清空规则和添加新规则会在一块进行。

一些人喜欢为规则集维护一个 shell 脚本。请注意,在 shell 脚本文件中你无法原子性的更新规则集。因此最好的方法是使用 nftables 原生的脚本并使用 nft -f 恢复它。