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

关于nftables中创建IP/MAC地址对集合的语法咨询

关于nftables中创建IP/MAC地址对集合的语法咨询

嗨,我来帮你搞定这个nftables集合的语法问题~

你之前尝试的写法之所以报错,是因为nftables的集合不支持那种键值对形式的元素定义,而且复合类型的声明方式也不对。正确的做法是把IPv4地址和MAC地址定义成复合类型,用.来连接两种类型,元素也直接用.拼接对应的地址值就行。

给你一个可以正常运行的完整示例:

table ip filter {
    set authorized {
        type ipv4_addr . ether_addr
        flags constant
        elements = {
            192.168.1.10 . aa:bb:cc:dd:ee:ff,
            192.168.1.11 . 11:22:33:44:55:66,
            192.168.1.12 . 00:11:22:33:44:55
        }
    }
}

这里要注意两个关键点:

  • 复合类型的声明必须用.分隔,比如ipv4_addr . ether_addr,而不是你之前写的空格分隔;
  • 集合元素不需要写ipaddr:或者etheraddr:这种键名,直接把IP和MAC用.拼接成一个复合值即可。

如果之后要在规则里匹配这个集合里的IP/MAC对,比如允许来自这些地址对的流量,可以这么写:

chain input {
    type filter hook input priority 0; policy accept;
    ip saddr . ether saddr @authorized accept
}

这样就能精准匹配到集合里的IP和MAC对应的设备啦~

备注:内容来源于stack exchange,提问作者John Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:44:32