Linux:如何持续监视哪个进程使用哪个端口(如 Windows 上的 procmon)?

Linux:如何持续监视哪个进程使用哪个端口(如 Windows 上的 procmon)?

假设您有一台服务器,其中有一堆进程(有些进程在随机时间启动)正在监听端口,我想了解发生了什么。我可以使用以下方法记录所有流量:

sudo tcpdump -w capture.pcap -i any

这确实很有帮助,我看到了一些有效载荷,我想了解哪个进程负责发送。所以我做了以下事情:

netstat -nputwc > netlog

... 这远非完美,因为它每秒只执行一次 netstat(可能会错过一些套接字的打开/关闭)。因此,对于某些网络数据包,我看到一个进程启动,发送了一些内容,然后关闭。所以我有 PID,但我不知道它背后是哪个程序。我知道我可以使用 strace 来获取我需要的信息,但这需要我提前知道 PID,而我不知道:

strace -yfp <pid> -e trace=open,close,read,write,connect,accept

我需要与 strace 等效的东西,但它会记录系统中所有进程的所有进程/套接字信息。在 Windows 中,我曾经使用 procmon (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx) 来实现此目的。Linux 是否有等效工具?

相关内容