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

nftables输出规则添加语法求助:计数8.8.8.8数据包失败

解决nftables统计发往8.8.8.8数据包的问题

我太懂这种被nftables模糊文档折腾的无奈了——明明是个简单的统计需求,照着示例敲却报错,还找不到原因。咱们一步步梳理,搞定这个问题:

先排查你可能踩的坑

常见的错误原因包括:

  • 没提前创建对应的表和链就直接加规则
  • 用了错误的网络族(比如inet而非针对IPv4的ip)
  • hook位置选错了(比如用了input而不是output,毕竟你要统计发出去的包)
  • 用了过时的语法(比如旧版本里的ip dst,现在主流是ip daddr)

正确的操作步骤

1. 创建统计用的表和链

nftables的规则必须依附在表和链里,先建基础结构:

# 创建IPv4过滤表
nft add table ip filter

# 创建output钩子的自定义链,优先级设为0(不影响其他规则)
nft add chain ip filter stats_chain { type filter hook output priority 0; policy accept; }

这里的hook output是关键,因为我们要统计本机发往8.8.8.8的出站数据包。

2. 添加统计规则

现在可以加带counter的规则了:

nft add rule ip filter stats_chain ip daddr 8.8.8.8 counter

counter模块会自动统计匹配到的数据包数量和字节数。

3. 验证规则生效

执行以下命令查看规则和统计数据:

nft list table ip filter

然后你可以ping一下8.8.8.8:

ping -c 5 8.8.8.8

再重新执行nft list table ip filter,就能看到counter的数值已经增加了。

额外提示

如果需要让规则重启后依然生效,可以把当前规则集导出到配置文件:

nft list ruleset > /etc/nftables.conf

然后启用并设置nftables服务开机自启(不同发行版命令略有差异,比如Debian/Ubuntu用systemctl enable --now nftables)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:41:44