我需要获取一个更新了 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 / 等等中。
它监控网络流量,根据每个连接、协议、主机等创建漂亮的图形和图表,并通过您的网络浏览器显示所有内容(具有内置的网络服务器)。
它很不错,但是相当重。