推荐 Linux 下3款网络监控软件
概述
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 文档。
温馨提示:反馈需要登录