Skip to content

简要说明

nftables 是新式的数据包过滤框架,从 Linux 内核 3.13 版本开始可用,旨在替代现用的 iptables 框架。

目前最新的红帽、Ubuntu等主流系统均已用 nftables替代了iptables

本文档适用于从零开始的小白

为什么要采用新框架?

iptables有几个难以解决的问题,涉及可扩展性、性能、代码维护等。

主要区别是什么?

  1. iptables中,默认情况下有几个表(filter、nat)和链(FORWARD、INPUT.....).在 nftables中,没有默认的表/链。
  2. iptables中,每个规则只有一个目标(-j ACCEPT、-j LOG ..) 在 nftables中,您可以在一个规则中执行多个操作。
  3. nftables包括内置的数据集功能。在 iptables中,需要使用单独的工具ipset
  4. iptables 框架中,每个系列都有工具:iptablesip6tablesarptablesebtables。现在,nftables 允许您在一个 CLI 工具中管理所有族。
  5. nftables 有一个新的“简化的双栈 IPv4/IPv6 管理,通过新的 inet 系列,允许您注册同时看到 IPv4 和 IPv6 流量的基础链”。
  6. 这个新框架具有一个新的 linux 内核子系统,称为 nf_tables。新的引擎机制受到类BPF系统的启发,具有一组基本表达式,可以将它们组合起来构建复杂的过滤规则。