nftables 通过 “表 - 链 - 规则” 三层结构实现网络流量管控,核心概念如下:
表按功能分类,常见类型及作用:
- filter:过滤网络流量,包含 input(入站)、output(出站)、forward(转发)等链;
- nat:实现网络地址转换(NAT),包含 prerouting(路由前)、postrouting(路由后)等链;
- route:用于流量重路由,替代 iptables 中 mangle 链的 output 钩子功能。
链定义流量处理的时机与场景,核心类型:
- input:处理进入本机的数据包;
- output:处理本机发出的数据包;
- forward:处理转发至其他目的地的数据包;
- prerouting:数据包刚进入,尚未确定路由时触发;
- postrouting:数据包即将离开本机时触发(常用于 SNAT)。
每条规则由 “匹配条件” 和 “动作” 组成:
- 匹配条件:指定数据包特征(如接口、端口、协议等);
- 动作:定义匹配后处理方式,常见动作包括
accept(允许)、drop(丢弃,无回应)、reject(拒绝,发回应)、dnat(目的地址转换)、snat(源地址转换)。
sudo nft add table inet firewall
sudo nft add chain inet firewall input { type filter hook input priority 0; policy drop; }
sudo nft add chain inet firewall output { type filter hook output priority 0; policy accept; }
sudo nft add chain inet firewall forward { type filter hook forward priority 0; policy drop; }
sudo nft add rule inet firewall input iifname "lo" accept
sudo nft add rule inet firewall input ct state established,related accept
sudo nft add rule inet firewall input tcp dport 22 accept
sudo nft add rule inet firewall input tcp dport 80 accept
sudo nft add rule inet firewall input tcp dport 443 accept
sudo nft add rule inet firewall input ip protocol icmp icmp type echo-request accept
sudo nft add rule inet firewall input ip6 nexthdr icmpv6 icmpv6 type echo-request accept
- 查看规则:
sudo nft list ruleset
- 保存规则到文件:
sudo nft list ruleset > /etc/nftables.conf
- 加载规则:
sudo nft -f /etc/nftables.conf
- 备份与恢复:备份用
nft list ruleset > 备份文件,恢复用nft -f 备份文件
- 删规则:
sudo nft delete rule inet firewall input tcp dport 22 accept
- 删链(需先清空):
sudo nft flush chain inet firewall input && sudo nft delete chain inet firewall input
相比传统 iptables,nftables 的核心优势体现在:
- 性能更优:减少内核与用户空间交互,大量规则场景下处理效率更高。
- 语法简化:更贴近自然语言的规则定义,降低配置错误率(如统一用 “tcp dport” 替代 iptables 的 “--dport”)。
- 扩展性更强:支持更复杂的匹配条件和动作,适配现代网络拓扑(如虚拟化、容器环境)。
- 集成度高:可与 tc(流量控制)等子系统无缝集成,实现 “防火墙 + 流量管理” 一体化。
- 安全防护升级:更灵活的日志监控、网络隔离策略,适配服务器、企业内网等场景的安全需求。
- 学习曲线:需熟悉 “表 - 链 - 规则” 新逻辑,建议通过实操案例逐步掌握语法。
- 兼容性检查:确认 Linux 发行版支持 nftables(主流发行版如 Ubuntu 20.04+、CentOS 8 + 已默认支持)。
- 安全原则:迁移后遵循 “最小权限”,仅开放必要端口,默认策略优先设为 “drop”。
nftables 以简洁语法、高效性能和强大扩展能力,成为 Linux 防火墙的未来主流。无论是服务器防护、企业内网隔离还是虚拟化环境网络管理,掌握其配置逻辑都能显著提升网络安全管控效率。对于系统管理员而言,从 iptables 迁移至 nftables 不仅是技术升级,更是适应现代网络架构的必然选择。