计算每个 TCP 连接的交换字节数

计算每个 TCP 连接的交换字节数

我需要获取一个更新了 Linux 机器上每个已建立 TCP 连接的交换字节(Rx 和/或 Tx)的表(至少是一个连接列表(端口范围),因此实际上不是全部

我的梦想是扩展“netstat”,将这些计数器作为附加列。但是在哪里可以找到这些信息?也许内核中有这些信息?/proc?*nix 工具?我应该坚持使用 libpcap 吗?

提示:我不能要做的就是为每个连接启动一个 tcpdump。我会避免运行这个某物以 root 身份(当然,也可以讨论 sudo)

感谢您的所有意见...

答案1

我推荐使用 IPTABLES 计数器,你可以使用以下命令显示 iptables 中每个规则的数据包计数器

iptables -nL -v

这里的选项 -v 显示数据包和字节数。

唯一的问题是你需要为每个连接条目制定一个匹配规则(-j ACCEPT)。

例如下面的规则计算从我的 Linux 机器生成的所有 TCP 数据包。

iptables -A OUTPUT -p tcp -j ACCEPT

现在我只需要运行

iptables -nL -v

查看使用的字节数和数据包数。

答案2

如果您想要一些花哨的图形,您可以看看ntop- 它在大多数发行版的 apt / yum / 等等中。

它监控网络流量,根据每个连接、协议、主机等创建漂亮的图形和图表,并通过您的网络浏览器显示所有内容(具有内置的网络服务器)。

它很不错,但是相当重。

相关内容