You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在nftables中添加规则时如何指定子网掩码?含语法报错问题

在nftables中正确指定子网掩码添加规则的方法

嘿,我之前在Debian Buster上用nftables v0.9.0的时候也踩过这个坑!你遇到的syntax error, unexpected /错误,本质是没有明确指定要匹配的是源IP子网还是目的IP子网——nftables的规则语法要求必须明确标注地址类型,不像iptables有时候能省略部分参数。

正确的命令写法

1. 拦截来自指定子网的输入流量

如果你想丢弃0.0.0.0/24这个子网发来的数据包,正确的命令应该是这样:

nft add rule ip filter input ip saddr 0.0.0.0/24 drop

这里的ip saddr就是“IP源地址”的意思,告诉nftables要匹配这个子网的源IP。

2. 拦截发往指定子网的输入流量

要是你需要针对发往0.0.0.0/24子网的输入数据包做处理(比如端口转发场景),就换成ip daddr(IP目的地址):

nft add rule ip filter input ip daddr 0.0.0.0/24 drop

额外的实用技巧

如果要管理多个子网,一个个写规则太麻烦,推荐用nftables集合来简化:

  1. 先创建一个支持区间的IPv4地址集合:
nft add set ip filter bad_subnets { type ipv4_addr; flags interval; }
  1. 把需要拦截的子网都添加到集合里:
nft add element ip filter bad_subnets { 0.0.0.0/24, 192.168.1.0/24 }
  1. 最后用集合来匹配规则,一次搞定所有子网:
nft add rule ip filter input ip saddr @bad_subnets drop

这样后续要添加或移除子网,只需要操作集合就行,不用修改主规则,维护起来方便多了。

内容的提问来源于stack exchange,提问作者Mithokai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:49:35