推荐 Linux 下3款网络监控软件

Last Modified: 2024/04/17

概述

Linux 下如何监控网络流量?本文推荐3款好用的网络监控软件,同时介绍如何安装和使用它们。他们的侧重点不同,可以根据需要选择合适的工具,同时也起到一个很好的互补作用。

1. nethogs

第一款本人比较喜欢就是 nethogs,它可以显示每个进程的网络使用情况。Debian/Ubuntu 安装方法如下:

sudo apt-get install nethogs

CentOS 安装方法如下:

sudo yum install nethogs

注:如果是 root 用户,则没必要加 sudo。

使用方法就更简单了,直接在终端输入 sudo nethogs。假设我们在一个终端中使用 curl 来下载软件,然后在另外一个终端中用 nethogs 来观察具体效果:

从上图可以看到,通过 nethogs 可以很容易揪出 curl 当前占用的带宽最大,且进程 id 为 24694。

总结一下:这款监控软件最大的特点是可以将流量使用情况和进程关联起来,这样就可以很方便地定位到是哪个进程占用了网络带宽。

然而有时候我们也需要具体查看更具体的网络流量信息,比如具体和哪个 ip 通信。这便是我接下来要介绍的另外一款监控软件 iftop。

插播:知道进程的 pid 之后,可以使用 sudo ss -apt|grep <pid> 进一步查看进程的网络连接信息。当然这仅仅是看进程建立了哪些网络连接,要查看具体的每个连接的流量使用情况,则需要借助 iftop。

2. iftop

iftop 是一个网络监控工具,可以显示每个连接的详细信息。Debian/Ubuntu 安装方法如下:

sudo apt-get install iftop

CentOS 安装方法如下:

sudo yum install iftop

iftop 的使用同样简单,在终端中输入 sudo iftop 即可。

这张图的信息量有点多,让我们来标注分解一下。

注意上图的第一行,可以看出本地 192.168.5.25 流出到 101.32.190.86 在 2s/10s/40s 内的平均流量分别为 768b、154b 和 154b。从 101.32.190.86 流入到本地的平均流量 2s/10s/40s 内分别为 808b、162b 和 162b。

TX 表示发送,RX 表示接收,TOTAL 表示发送和接收总和。

  • cum 为累计值:上图中,累计发送 2.48kb,累计接收 2.65kb,发送接收总和 5.14kb。
  • peak 为峰值:上图中,发送峰值为 976b,接收峰值为 0.99kb,发送接收峰值总和为 1.95kb。
  • rates 分别为 2s/10s/40s 内的平均流量:在上图中以 rates 的第一行为例,表示 2s/10s/40s 内的平均流量分别为 768b、154b 和 195b。

有时候我们不可能一直盯着实时流量,所以我们还需要一款可以在后台默默帮我们监视和统计流量的工具,他就是我们接下来要讲的 vnstat。

3. vnstat

vnstat 是一款网络流量监视工具,他有自己的数据库,可以在后台默默统计和记录流量使用情况,随后我们可以按小时、按天、按月和按年查看统计数据。

Debian/Ubuntu 安装方法如下:

sudo apt-get install vnstat

CentOS 安装方法如下:

sudo yum install vnstat

比如我们要按天统计流量使用情况,可以使用使用命令 vnstat -d 来实现,效果如下:

如果愿意我们也可以按月统计流量情况,只需要使用 vnstat -m 即可,效果如下:

vnstat 除了支持各种维度的流量统计,也支持实时流量统计,使用下面的命令:

vnstat -l

更多使用方法可以参考 https://humdi.net/vnstat/,也可以下载这个 pdf 文档

有问题吗?点此反馈!

温馨提示:反馈需要登录