我想“实时”监控端口和使用这些端口的进程。有没有什么工具可以处理这个问题?我设想使用类似 top 的工具,但其中有一列列出了进程正在使用的所有端口……或者一个端口、协议和打开或正在监听该端口的进程的列表。
这是针对基于 Linux 的操作系统。
答案1
本来想问一下哪个操作系统,结果发现你编辑了添加这个。那你真走运。在 BASH shell 中尝试一下这个快速而简单的单行代码(以 root 身份):
while true ; do output=$(netstat -anptu) ; clear ; echo "$output" ; sleep 2 ; done
编辑:更简洁,有序的输出:
while true ; do output=$( (netstat -anpt | awk '{ print $1" "$4" "$7" "$6 }' | tail -n +3 ; netstat -anpu | awk '{ print $1" "$4" "$6 }' | tail -n +3 ) | egrep '[0-9]\/' | sort | uniq) ; clear ; date ; echo "$output" ; sleep 2 ; done
答案2
您没有指定操作系统。但如果是 Linux(我猜很有可能,因为您提到了top
),那么存在一个名为的工具iftop
,它可以按 IP 地址显示当前带宽使用情况。这不是您要求的,但根据您的需要,可能足够接近。
答案3
为什么没有人建议这个-c
选项netstat
。
添加-c
到您现有的netstat
命令,它将实时显示输出。
答案4
查看-i
和-p
选项lsof工具:
watch lsof -a -itcp -p <PID>