首页 / 新闻资讯 / 技术教程

用 nftables 替代 iptables:新写法速查

2026-07-18分类:技术教程管理员

## 结构对照

nftables 的组织结构是表、链、规则三层:表按协议族建立,链挂在内核的收发钩子上,规则写在链内。与 iptables 最大的观感差异是原子加载:整套配置写在一个文件里,一条命令整体替换生效,不存在规则逐条加载到一半的中间状态。

nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0\; policy drop\; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input iifname "lo" accept
nft add rule inet filter input tcp dport 22 accept

## 语法差异要点

族的概念合并了 v4 与 v6:inet 族一张表同时管两种协议,双栈服务器不必再写两套。匹配语法更紧凑,端口、地址、状态直接跟在关键字后,多端口与地址范围天然支持集合写法。集合是它相对老工具的实质进步,上百条黑名单 IP 收进一个集合,内核里一次查找完成,性能与可读性双赢。

nft add set inet filter blocklist { type ipv4_addr\; flags timeout\; }
nft add element inet filter blocklist { 198.51.100.23 timeout 1d }
nft add rule inet filter input ip saddr @blocklist drop

## 迁移注意事项

迁移前用转换工具把存量 iptables 规则转成 nft 语法,再逐条人工核对,转换器不保证语义完全等价。新旧两套避免同时加载,内核的兼容层有时会带来看不懂的优先级冲突。改动防火墙前留好自赎通道:先放行管理会话所在端口,再动默认策略,最后限时验证。

## 收尾建议

配置文件落盘在 /etc/sysconfig/nftables.conf 或 /etc/nftables.conf,启用开机加载服务。顺云云服务器自建防火墙之外还有平台侧防火墙规则,两层职责分清:平台层管边界准入,系统层管进程细粒度,两边规则都留档。

语法上还有几个高频差异值得记:日志动作直接作为规则目标写在链里,不再依赖单独的日志模块;计数器内建,规则加 counter 关键词即可统计命中,排查时不用额外工具;集合支持超时与动态更新,黑名单场景从脚本轮询变成内核原生机制,响应速度与资源占用都占优。

验证工具链也配套更新:nft list ruleset 查看运行中的完整规则,nft monitor 实时观察规则与集合变化,调优期观察误拦截非常直观。迁移期的对照可以在测试机用转译工具比对,语义一致的规则成对验证,不一致的逐条人工裁决,宁可慢不可错。

技术教程