运维工程师必备的18个网络带宽监控常用命令

简介:

本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。

一些命令可以显示单个进程所使用的带宽。这样一来,用户很容易发现过度使用网络带宽的某个进程。

这些工具使用不同的机制来制作流量报告。nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载。

下面是按功能划分的命令名称。

监控总体带宽使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload

监控总体带宽使用(批量式输出)――vnstat、ifstat、dstat和collectl

每个套接字连接的带宽使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow

每个进程的带宽使用――nethogs

1. nload

nload是一个命令行工具,让用户可以分开来监控入站流量和出站流量。它还可以绘制图表以显示入站流量和出站流量,视图比例可以调整。用起来很简单,不支持许多选项。

所以,如果你只需要快速查看总带宽使用情况,无需每个进程的详细情况,那么nload用起来很方便。


  
  
  1. $ nload 

安装nload:Fedora和Ubuntu在默认软件库里面就有nload。CentOS用户则需要从Epel软件库获得nload。


  
  
  1. # fedora或centos 
  2.  
  3. $ yum install nload -y 
  4.  
  5. # ubuntu/debian 
  6.  
  7. $ sudo apt-get install nload  

2. iftop

iftop可测量通过每一个套接字连接传输的数据;它采用的工作方式有别于nload。iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况。

虽然iftop报告每个连接所使用的带宽,但它无法报告参与某个套按字连接的进程名称/编号(ID)。不过由于基于pcap库,iftop能够过滤流量,并报告由过滤器指定的所选定主机连接的带宽使用情况。


  
  
  1. $ sudo iftop -n 

n选项可以防止iftop将IP地址解析成主机名,解析本身就会带来额外的网络流量。

安装iftop:Ubuntu/Debian/Fedora用户可以从默认软件库获得它。CentOS用户可以从Epel获得它。


  
  
  1. # fedora或centos 
  2.  
  3. yum install iftop -y 
  4.  
  5. # ubuntu或 debian 
  6.  
  7. $ sudo apt-get install iftop  

3. iptraf

iptraf是一款交互式、色彩鲜艳的IP局域网监控工具。它可以显示每个连接以及主机之间传输的数据量。下面是屏幕截图。


  
  
  1. $ sudo iptraf 

安装iptraf:


  
  
  1. # Centos(基本软件库) 
  2.  
  3. $ yum install iptraf 
  4.  
  5. # fedora或centos(带epel) 
  6.  
  7. $ yum install iptraf-ng -y 
  8.  
  9. # ubuntu或debian 
  10.  
  11. $ sudo apt-get install iptraf iptraf-ng  

4. nethogs

nethogs是一款小巧的"net top"工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面。万一出现带宽使用突然激增的情况,用户迅速打开nethogs,就可以找到导致带宽使用激增的进程。nethogs可以报告程序的进程编号(PID)、用户和路径。


  
  
  1. $ sudo nethogs 

安装nethogs:Ubuntu、Debian和Fedora用户可以从默认软件库获得。CentOS用户则需要Epel。


  
  
  1. # ubuntu或debian(默认软件库) 
  2.  
  3. $ sudo apt-get install nethogs 
  4.  
  5. # fedora或centos(来自epel) 
  6.  
  7. $ sudo yum install nethogs -y  

5. bmon

bmon(带宽监控器)是一款类似nload的工具,它可以显示系统上所有网络接口的流量负载。输出结果还含有图表和剖面,附有数据包层面的详细信息。

安装bmon:Ubuntu、Debian和Fedora用户可以从默认软件库来安装。CentOS用户则需要安装repoforge,因为Epel里面没有bmon。


  
  
  1. # ubuntu或debian 
  2.  
  3. $ sudo apt-get install bmon 
  4.  
  5. # fedora或centos(来自repoforge) 
  6.  
  7. $ sudo yum install bmon  

bmon支持许多选项,能够制作HTML格式的报告。欲知更多信息,请参阅参考手册页。

6. slurm

slurm是另一款网络负载监控器,可以显示设备的统计信息,还能显示ASCII图形。它支持三种不同类型的图形,使用c键、s键和l键即可激活每种图形。slurm功能简单,无法显示关于网络负载的任何更进一步的详细信息。


  
  
  1. $ slurm -s -i eth0 

安装slurm


  
  
  1. # debian或ubuntu 
  2.  
  3. $ sudo apt-get install slurm 
  4.  
  5. # fedora或centos 
  6.  
  7. $ sudo yum install slurm -y  

7. tcptrack

tcptrack类似iftop,使用pcap库来捕获数据包,并计算各种统计信息,比如每个连接所使用的带宽。它还支持标准的pcap过滤器,这些过滤器可用来监控特定的连接。

安装tcptrack:Ubuntu、Debian和Fedora在默认软件库里面就有它。CentOS用户则需要从RepoForge获得它,因为Epel里面没有它。


  
  
  1. # ubuntu, debian 
  2.  
  3. $ sudo apt-get install tcptrack 
  4.  
  5. # fedora, centos(来自repoforge软件库) 
  6.  
  7. $ sudo yum install tcptrack  

8. vnstat

vnstat与另外大多数工具有点不一样。它实际上运行后台服务/守护进程,始终不停地记录所传输数据的大小。之外,它可以用来制作显示网络使用历史情况的报告。


  
  
  1. $ service vnstat status 
  2.  
  3. * vnStat daemon is running  

运行没有任何选项的vnstat,只会显示自守护进程运行以来所传输的数据总量。


  
  
  1. $ vnstat 
  2.  
  3. Database updated: Mon Mar 17 15:26:59 2014 
  4.  
  5. eth0 since 06/12/13 
  6.  
  7. rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB 
  8.  
  9. monthly 
  10.  
  11. rx | tx | total | avg. rate 
  12.  
  13. ------------------------+-------------+-------------+------------- 
  14.  
  15. Feb '14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s 
  16.  
  17. Mar '14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s 
  18.  
  19. ------------------------+-------------+-------------+------------- 
  20.  
  21. estimated 9.28 GiB | 2.83 GiB | 12.11 GiB | 
  22.  
  23. daily 
  24.  
  25. rx | tx | total | avg. rate 
  26.  
  27. ------------------------+-------------+-------------+------------- 
  28.  
  29. yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s 
  30.  
  31. today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s 
  32.  
  33. ------------------------+-------------+-------------+------------- 
  34.  
  35. estimated 199 MiB | 63 MiB | 262 MiB |  

想实时监控带宽使用情况,请使用"-l"选项(实时模式)。然后,它会显示入站数据和出站数据所使用的总带宽量,但非常精确地显示,没有关于主机连接或进程的任何内部详细信息。


  
  
  1. $ vnstat -l -i eth0 
  2.  
  3. Monitoring eth0... (press CTRL-C to stop) 
  4.  
  5. rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s  

vnstat更像是一款制作历史报告的工具,显示每天或过去一个月使用了多少带宽。它并不是严格意义上的实时监控网络的工具。

vnstat支持许多选项,支持哪些选项方面的详细信息请参阅参考手册页。

安装vnstat


  
  
  1. # ubuntu或debian 
  2.  
  3. $ sudo apt-get install vnstat 
  4.  
  5. # fedora或 centos(来自epel) 
  6.  
  7. $ sudo yum install vnstat  

9. bwm-ng

bwm-ng(下一代带宽监控器)是另一款非常简单的实时网络负载监控工具,可以报告摘要信息,显示进出系统上所有可用网络接口的不同数据的传输速度。


  
  
  1. $ bwm-ng 
  2.  
  3. bwm-ng v0.6 (probing every 0.500s), press 'h' for help 
  4.  
  5. input: /proc/net/dev type: rate 
  6.  
  7. / iface Rx Tx T 
  8.  
  9. ot================================================================= 
  10.  
  11. == eth0: 0.53 KB/s 1.31 KB/s 1.84 
  12.  
  13. KB lo: 0.00 KB/s 0.00 KB/s 0.00 
  14.  
  15. KB------------------------------------------------------------------------------------------------------------- 
  16.  
  17. total: 0.53 KB/s 1.31 KB/s 1.84 
  18.  
  19. KB/s  

如果控制台足够大,bwm-ng还能使用curses2输出模式,为流量绘制条形图。


  
  
  1. $ bwm-ng -o curses2 

安装bwm-ng:在CentOS上,可以从Epel来安装bwm-ng。


  
  
  1. # ubuntu或debian 
  2.  
  3. $ sudo apt-get install bwm-ng 
  4.  
  5. # fedora或centos(来自epel) 
  6.  
  7. $ sudo apt-get install bwm-ng 

10. cbm:Color Bandwidth Meter

这是一款小巧简单的带宽监控工具,可以显示通过诸网络接口的流量大小。没有进一步的选项,仅仅实时显示和更新流量的统计信息。


  
  
  1. $ sudo apt-get install cbm 

11. speedometer

这是另一款小巧而简单的工具,仅仅绘制外观漂亮的图形,显示通过某个接口传输的入站流量和出站流量。


  
  
  1. $ speedometer -r eth0 -t eth0 

安装speedometer


  
  
  1. # ubuntu或debian用户 
  2.  
  3. $ sudo apt-get install speedometer  

12. pktstat

pktstat可以实时显示所有活动连接,并显示哪些数据通过这些活动连接传输的速度。它还可以显示连接类型,比如TCP连接或UDP连接;如果涉及HTTP连接,还会显示关于HTTP请求的详细信息。


  
  
  1. $ sudo pktstat -i eth0 -nt 
  2.  
  3. $ sudo apt-get install pktstat  

13. netwatch

netwatch是netdiag工具库的一部分,它也可以显示本地主机与其他远程主机之间的连接,并显示哪些数据在每个连接上所传输的速度。


  
  
  1. $ sudo netwatch -e eth0 -nt 
  2.  
  3. $ sudo apt-get install netdiag  

14. trafshow

与netwatch和pktstat一样,trafshow也可以报告当前活动连接、它们使用的协议以及每条连接上的数据传输速度。它能使用pcap类型过滤器,对连接进行过滤。

只监控TCP连接


  
  
  1. $ sudo trafshow -i eth0 tcp 
  2.  
  3. $ sudo apt-get install netdiag  

15. netload

netload命令只显示关于当前流量负载的一份简短报告,并显示自程序启动以来所传输的总字节量。没有更多的功能特性。它是netdiag的一部分。


  
  
  1. $ netload eth0 
  2.  
  3. $ sudo apt-get install netdiag  

16. ifstat

ifstat能够以批处理式模式显示网络带宽。输出采用的一种格式便于用户使用其他程序或实用工具来记入日志和分析。


  
  
  1. $ ifstat -t -i eth0 0.5 
  2.  
  3. Time eth0 
  4.  
  5. HH:MM:SS KB/s in KB/s out 
  6.  
  7. 09:59:21   2.62 2.80 
  8.  
  9. 09:59:22   2.10 1.78 
  10.  
  11. 09:59:22   2.67 1.84 
  12.  
  13. 09:59:23   2.06 1.98 
  14.  
  15. 09:59:23   1.73 1.79  

安装ifstat:Ubuntu、Debian和Fedora用户在默认软件库里面就有它。CentOS用户则需要从Repoforge获得它,因为Epel里面没有它。


  
  
  1. # ubuntu, debian 
  2.  
  3. $ sudo apt-get install ifstat 
  4.  
  5. # fedora, centos(Repoforge) 
  6.  
  7. $ sudo yum install ifstat  

17. dstat

dstat是一款用途广泛的工具(用python语言编写),它可以监控系统的不同统计信息,并使用批处理模式来报告,或者将相关数据记入到CSV或类似的文件。这个例子显示了如何使用dstat来报告网络带宽。

安装dstat


  
  
  1. $ dstat -nt 
  2.  
  3. -net/total- ----system---- 
  4.  
  5. recv send| time 
  6.  
  7. 0 0 |23-03 10:27:13 
  8.  
  9. 1738B 1810B|23-03 10:27:14 
  10.  
  11. 2937B 2610B|23-03 10:27:15 
  12.  
  13. 2319B 2232B|23-03 10:27:16 
  14.  
  15. 2738B 2508B|23-03 10:27:17  

18. collectl

collectl以一种类似dstat的格式报告系统的统计信息;与dstat一样,它也收集关于系统不同资源(如处理器、内存和网络等)的统计信息。这里给出的一个简单例子显示了如何使用collectl来报告网络使用/带宽。


  
  
  1. $ collectl -sn -oT -i0.5 
  2.  
  3. waiting for 0.5 second sample... 
  4.  
  5. # <----------Network----------> 
  6.  
  7. #Time KBIn PktIn KBOut PktOut 
  8.  
  9. 10:32:01 40 58 43 66 
  10.  
  11. 10:32:01 27 58 3 32 
  12.  
  13. 10:32:02 3 28 9 44 
  14.  
  15. 10:32:02 5 42 96 96 
  16.  
  17. 10:32:03 5 48 3 28  

安装collectl


  
  
  1. # Ubuntu/Debian用户 
  2.  
  3. $ sudo apt-get install collectl 
  4.  
  5. #Fedora 
  6.  
  7. $ sudo yum install collectl  

结束语

上述几个使用方便的命令可以迅速检查Linux服务器上的网络带宽使用情况。不过,这些命令需要用户通过SSH登录到远程服务器。另外,基于Web的监控工具也可以用来实现同样的任务。

ntop和darkstat是面向Linux系统的其中两个基本的基于Web的网络监控工具。除此之外还有企业级监控工具,比如nagios,它们提供了一批功能特性,不仅仅可以监控服务器,还能监控整个基础设施。





作者:sara
来源:51CTO
目录
相关文章
|
5天前
|
云安全 运维 安全
AK泄漏28小时:运维工程师的极限自救
随着比特币等加密货币的价格持续上涨,挖矿活动成为了黑客们眼中的一块肥肉。尤其是在2024年至2025年间,比特币价格突破历史高位,吸引了大量投资者和投机者的目光。与此同时,这也引发了新一轮的黑客攻击浪潮,目标直指那些拥有强大计算资源的企业和个人用户。
|
2月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
53 11
|
2月前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
|
2月前
|
网络协议 安全 测试技术
Nping工具详解:网络工程师的瑞士军刀
### Nping工具详解:网络工程师的瑞士军刀 Nping是Nmap项目的一部分,支持TCP、UDP、ICMP和ARP等多种协议,用于生成和分析网络数据包。它提供灵活的命令行界面,适用于网络探测、安全测试和故障排除。本文介绍Nping的基础与高级用法,包括发送不同类型的网络请求、自定义TCP标志位、路由跟踪等,并通过实战案例展示其应用。掌握Nping有助于更好地理解和管理网络环境。 (239字符)
109 9
|
2月前
|
运维
阿里云服务器批量执行命令(系统运维管理oos)
阿里云【系统运维管理oos】批量执行详情
64 5
|
2月前
|
弹性计算 运维 安全
为了提升运维工程师及开发者
为了提升运维工程师及开发者
|
3月前
|
人工智能 运维 自然语言处理
今晚围观—>安全运维工程师现场直播用通义灵码发现和修复代码漏洞
12 月 18 日晚 19:30 分,阿里云中小企业直播间「AI 编码助手一年养成记:从“打酱油”到企业开发“真正助手”」见。
|
3月前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
371 3
|
3月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
214 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
4月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
356 3