有时候我可以在Gnome System Monitor中看到networking的大量使用。 我不知道下载/上传数据的过程。 有什么工具可以告诉我:
我的系统是Ubuntu 10.10。
我试过lsof但输出看起来不友善。 也许有一些技巧使用它? 还是有更好的select?
netstat --inet -ap会告诉你什么进程正在使用互联网和每个进程使用的主机/端口。 如果您需要IP地址而不是主机名,请使用-n 。 ( --inet只显示互联网套接字, -a显示监听和连接套接字, -p显示进程名称/ ID信息)。 你可能会想用sudo来运行它,这样它可以为你提供关于所有进程的信息。
nethogs会告诉你每个进程使用了多less带宽,但是它并不告诉你每个进程连接的是什么主机。
ntop有点沉重,但总体上给你一个networkingstream量的概述。
(netstat是默认安装的,nethogs和ntop在Ubuntu的仓库中是可用的)
据我所知,没有一个公用事业公司把1,2和3放在一起。
Nethogs可以处理你的前两个请求。 Iftop可以处理第三个。 您可能需要在iftop中按p才能显示端口号。
NetHogs是一个小型的“networking顶级”工具。 不像每个协议或每个子网中断stream量,像大多数工具一样,它按stream程分组带宽。 NetHogs不依赖于一个特殊的内核模块来加载。 如果突然出现很多networkingstream量,可以启动NetHogs,并立即查看哪个PID导致了这种情况。 这样可以很容易地识别疯狂的程序,突然占用你的带宽。
iftop用于networking使用,top(1)用于CPU使用率。 它监听指定接口上的networkingstream量,并显示一对主机对当前带宽使用情况的表格。
为了使用lsof -i 。
您还可以使用netstat -punta作为根运行来查询每个进程的活动连接,以显示进程名或不显示PID。 要获得dynamic的实时视图,您可以轻松地使用watch – > watch -n1 netstat -punta (iftop也一样)。
至于替代品,你可以使用ntop + iftop 。
iftop相当于top的进程,显示所有内容,可以按p切换显示端口。
看看netstat -p ,但是我不知道你会发现输出比lsof更友好。 它也不会满足你的第二个要求。