如何查看每个连接使用的带宽?

如何查看每个连接使用的带宽?

我有一台 Linux VPS 服务器,我想查看当前的网络连接以及每个连接的上传/下载速率。是否有简单的命令可以实现此目的?

答案1

尽管您必须安装网络监控系统才能获取每个进程的带宽信息,但有许多可用的工具。

按设置难易程度排序:

一个简单的包,不需要很多设置伊夫托普。这将向您显示每个进程的带宽。iftop 截图如果您想要一个简单的实时解决方案,这可能就是您想要的。

  • 仅获取每个接口的带宽,bwm-ng是一个显示每个接口的实时使用情况的小包。
  • netstat将列出您打开的连接,并且应该已经存在于大多数系统中
  • ntop是一个非常有用的系统监控工具,如果您安装内核模块来支持网络监控,它还可以监控每个进程的 TCP 连接。
  • 加克蒂纳吉奥斯ntop神经节还有几个重量级系统,可以根据一台服务器到整个企业网络的设置,对每个主机/系统/服务/协议/等进行网络监控。请参阅mediawiki 服务器监控了解实际ganglia行动中的例子。

答案2

有一个简单的包叫做网猪显示各个进程使用的带宽并对列表进行排序,将最密集的进程放在顶部。

这是一个常见的软件包;安装应该很容易:

# Ubuntu or Debian
$ sudo apt install nethogs

# Fedora or CentOS
$ sudo yum install nethogs -y

在此处输入图片描述

答案3

使用本机以 5 秒为间隔实时使用连续轮询netstat

# netstat  --interfaces=eth0 -c 5
Kernel Interface table

Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0 **601670041**      0      0      0 290653338      0      0      0 BMRU
eth0       1500   0 **601796657**      0      0      0 290721761      0      0      0 BMRU

使用时awk您可以只观察您感兴趣的特定字段,下面的示例中您只需观察 2 个 RX 和 TX 列即可显示已接收或无错误传输的数据包数量(RX-OK/TX-OK)

# netstat --interfaces=eth0 -c 5 |awk '{ print $4 "\t" $8 }'
RX-OK   TX-OK
605142559       292429624
605142595       292429661

相关内容