nftables 的可靠备份方式是文本快照加持久化机制:用 nft list ruleset 生成可执行的文本配置文件,配合系统级服务(如 debian 的 nftables-persistent 或 rhel 的 systemd nftables 服务)实现重启持久化,恢复时直接 nft -f 加载快照即可。

用 nft list ruleset 生成可执行的文本快照
这是最核心的备份动作。它输出的是完整、自包含、可重载的规则集,不是日志也不是摘要:运行命令保存当前全部规则:
- sudo nft list ruleset > /etc/nftables.conf(覆盖主配置)
- 或更稳妥地存为带时间戳的快照:sudo nft list ruleset > /root/nft-backup-$(date +%Y%m%d-%H%M).conf
这个文件可以直接用 nft -f 加载恢复,无需解析或转换。
启用系统级持久化,避免重启丢规则
nftables 默认不自动保存规则到磁盘,重启即清空。必须显式启用持久化:- Debian/Ubuntu:安装 nftables-persistent 包,规则默认存于 /etc/nftables.conf,服务名是 nftables
- RHEL/CentOS/Fedora:启用 systemd 服务 sudo systemctl enable --now nftables,并确保 /etc/nftables.conf 已存在且格式正确
- 验证是否生效:sudo systemctl is-enabled nftables 应返回 enabled,sudo systemctl status nftables 显示 active (exited)
恢复时只需一条命令,无需重启服务
只要备份文件格式正确(即由nft list ruleset 生成),恢复就是原子操作:
- sudo nft flush ruleset(先清空当前内存规则,可选但推荐)
- sudo nft -f /path/to/backup.conf(立即加载,毫秒级生效)
注意:不要用 iptables-restore 或其他工具处理 nftables 备份文件——它们语法不兼容。
进阶建议:版本管理 + 自动校验
生产环境建议把 /etc/nftables.conf 纳入 Git 版本控制,并加简单校验逻辑:
- 每次修改后运行 sudo nft -c -f /etc/nftables.conf(-c 表示仅检查语法,不加载)
- 写个脚本对比当前规则与配置文件:diff
- 关键变更前自动创建快照,例如:sudo cp /etc/nftables.conf /etc/nftables.conf.pre-$(date +%s)











