在过去的生活中,我开发了一个基本上能够跟踪这些信息的工具:
src_ip、dst_ip、src_port、dst_port、bytes_sent、bytes_received、packets_sent、packets_received、packets_retransmitted、bytes_retransmitted
对于机器上的每个事件 TCP 连接。当时(大约 2008 年)这依赖于内核补丁来扩展内核跟踪的计数器。我想我几年前就听说它被集成到内核中了。但它永远存在,我忘记了细节。
生活让我转了一圈,我发现自己想再次编写这样的工具,但我不记得如何访问这些计数器/配置 linux,所以它会跟踪这些信息。
可能有一些方法可以为此使用 netstat -- 但我还无法在该界面中公开计数器信息。
任何让内核跟踪此信息的方法——并合理有效地导出数字就足够了。我希望不必运行 IPTables 即可。
最佳答案
您可以通过/proc/net/tcp
获取一些每个套接字的信息。其他全局信息可以通过/proc/net/snmp
重试。但是,我认为内核不会在每个套接字的基础上跟踪 bytes_sent、bytes_received、packets_sent、packets_received、packets_retransmitted、bytes_retransmitted。
关于linux - 如何以编程方式提取每个 TCP 连接的 TCP/IP 计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986351/