为什么 ip_conntrack_count 和 conntrack -L 显示的数字不同

为什么 ip_conntrack_count 和 conntrack -L 显示的数字不同

我今天在我们的路由器上注意到了以下情况:

user@router:~$ cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count 
28141

然而:

user@router:~$ sudo conntrack -L > /dev/null 
conntrack v1.2.1 (conntrack-tools): 4652 flow entries have been shown.

user@router:~$ sudo conntrack -L expect > /dev/null 
conntrack v1.2.1 (conntrack-tools): 1 expectations have been shown.

我的理解是,它ip_conntrack_count显示了 conntrack 表的条目数。我遗漏了什么?

答案1

答案是,conntrack默认情况下仅列出 IPv4 连接。如果我这样做

user@router:~$ sudo conntrack -L -f ipv6 > /dev/null 
conntrack v1.2.1 (conntrack-tools): 23864 flow entries have been shown.

user@router:~$ sudo conntrack -L  > /dev/null 
conntrack v1.2.1 (conntrack-tools): 6713 flow entries have been shown.

那么两个结果的总和等于 中的数字/proc/sys/net/ipv4/netfilter/ip_conntrack_count

这个 proc 条目的路径名实际上非常具有误导性,因为计数针对的是 IPv4 和 IPv6。

相关内容