单一界面上的 Conntrack - 这可能吗?

Conntrack on single interface - is it possible?

我想使用 conntrack 来跟踪具有单个网络接口的终端主机上的每个连接字节、数据包等,而不是通过具有多个接口的路由器的连接。这意味着我将只跟踪在主机上终止的连接。

我已经在多个 linux 发行版上设置了 conntrack,并且对 conntrack -L 的回答总是相同的:“已显示 0 个流条目”。

有没有什么方法可以在 Linux 终端主机上使用 conntrack 或其他东西以这种方式跟踪每个连接的统计信息?

Conntrack 将是最好的方式,因为它为每个连接存储元组。此外,在 /lib/modules/xxx/kernel/net/netfilter/yyy.ko/lib/modules/kernel/xxx/net/ipv4/netfilter/yyyy.ko 中加载必要的 conntrack 模块,虽然您希望连接作为端点,但如果安装了必要的 conntrack 模块,Conntrack 工具将起作用。

另一种方法是编写一个内核模块并在 PRE-ROUTING 挂钩它,因为你想作为终点捕获并解析 skbs 以满足你的要求。