netstat 捕获网络快照的速度有多快?

How quickly does netstat capture network snapshot?

我有一台机器每秒(或更少)有大量连接和断开连接。 我需要在某一时刻捕获网络快照。但我看到 netstat 需要一些时间才能 return 结果到那时很多套接字将重新连接。

netstat 实际上是如何工作的?它能多快获取网络快照?

netstat 从 /proc/net/tcp|udp|raw 文件中收集信息,您可以快速捕获这些文件并 parse/re-format 稍后

strace 清楚地显示相同

$ strace -e open -f netstat -an 2>&1 |grep -v ENOENT |grep '^open("/proc'
open("/proc/net/tcp", O_RDONLY)         = 3
open("/proc/net/tcp6", O_RDONLY)        = 3
open("/proc/net/udp", O_RDONLY)         = 3
open("/proc/net/raw", O_RDONLY)         = 3
open("/proc/net/raw6", O_RDONLY)        = 3
open("/proc/net/unix", O_RDONLY)        = 3