本文介绍了一些可以用来监控网络使用情况的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. $ yum install nload -y
  3. # ubuntu/debian
  4. $ 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. yum install iftop -y
  3. # ubuntu或 debian
  4. $ sudo apt-get install iftop

3. iptraf

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

  1. $ sudo iptraf

安装iptraf:

  1. # Centos(基本软件库)
  2. $ yum install iptraf
  3. # fedora或centos(带epel)
  4. $ yum install iptraf-ng -y
  5. # ubuntu或debian
  6. $ 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. $ sudo apt-get install nethogs
  3. # fedora或centos(来自epel)
  4. $ sudo yum install nethogs -y

5. bmon

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

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

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

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

6. slurm

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

  1. $ slurm -s -i eth0

安装slurm

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

7. tcptrack

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

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

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

8. vnstat

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

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

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

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

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

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

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

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

安装vnstat

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

9. bwm-ng

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

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

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

  1. $ bwm-ng -o curses2

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

  1. # ubuntu或debian
  2. $ sudo apt-get install bwm-ng
  3. # fedora或centos(来自epel)
  4. $ 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. $ sudo apt-get install speedometer

12. pktstat

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

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

13. netwatch

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

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

14. trafshow

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

只监控TCP连接

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

15. netload

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

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

16. ifstat

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

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

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

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

17. dstat

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

安装dstat

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

18. collectl

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

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

安装collectl

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

结束语

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

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

Linux服务器上监控网络带宽的18个常用命令相关推荐

  1. 【无标题】Linux服务器上监控网络带宽的18个常用命令

    Linux服务器上监控网络带宽的18个常用命令 linux网络流量网络监控工具安装时,但是部分系统yum安装提示是没有这个包, 我们安装EPEL第三方软件源.EPEL(Extra Packages f ...

  2. Linux服务器上监控网络带宽的18个常用命令和工具

    Linux服务器上监控网络带宽的18个常用命令和工具 一.如何查看CentOS的网络带宽出口 检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到Linux的一个命令. 如何查看Ce ...

  3. Linux服务器上监控网络带宽与监控性能命令大全

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

  4. Linux服务器上监控网络带宽工具大全

    点击上方"阿拉奇学Java",选择"置顶或者星标" 每天早晨07点28分, 与你相约! 原文:http://t.cn/8s9OFR2 推荐阅读 | [漫画]80 ...

  5. 用Python脚本实现对Linux服务器的监控

    一.前言 二.概述 三.Python 版本说明 四./proc 文件系统 五.对CPU监测 六.对系统负载监测 七.对内存信息的获取 八.对网络接口的监测 九.监控apache服务器进程的Python ...

  6. 前端人员如何在linux服务器上搭建npm私有库

    为什么要搭建npm私有库? 为了方便下载时,公共包走npmjs,私有包走内部服务器. npm包下载的速度较慢,搭建npm私有库之后,会先操作私有库中是否有缓存,有缓存直接走缓存,而不用重新再去请求一遍 ...

  7. Django项目在Linux服务器上部署和躺过的坑

    引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...

  8. RabbitMQ在Linux服务器上安装并远程控制

    安装 我的服务器操作系统版本是Centos7. 1.准备安装包 因为RabbitMQ是基于erlang开发的,所以还需要准备它的环境,所以还需要准备另外两个安装包. 安装包自取:https://ori ...

  9. linux nmon 进程io,linux服务器性能监控-nmon(二)

    读过我之前文章的同学会发现,如果在做服务器性能监控的过程中要一个命令一个命令的敲,那显然非常的麻烦,而且不实际.监控命令只更适用于某些场景下的分析和定位,无法直接形成一些图形化的界面以便我们更直观的分 ...

最新文章

  1. AIX 环境下遇到Device Busy问题
  2. 使用指针星号转移c语言,C中的指针:何时使用号和星号?
  3. zw版【转发·台湾nvp系列Delphi例程】HALCON DivImage2
  4. Facebook内布拉斯加州数据中心将扩建100万平方英尺
  5. matlab振荡环节相频特性,自动控制理论—典型环节的频率特性
  6. 数据可视化上集:使用Gliffy,ProcessOn迅速绘制论文中的流程图,系统结构图
  7. 计算机无法播放flash,电脑中已安装Flash网页视频还是提示未安装Flash播放器怎么办...
  8. 5年500台达芬奇手术,和睦家实现技术升级
  9. a超链接锚点的设置和应用 三国演义
  10. TypeError: set expected at most 1 arguments, got 4
  11. php pecl命令,linux 运行pecl命令报错解决办法
  12. Android 10.0 SystemUI状态栏屏蔽掉通知栏不显示通知
  13. JavaScript(JS) date.getDay()
  14. Java Swing五子棋
  15. 基于SPI接口的OLED数据显示
  16. 网络营销好学吗?自学和培训该怎么选?
  17. 【交互题+二分】Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities
  18. Android Studio 第三次作业
  19. Python 验证Mac地址
  20. Java设置与读取Cookie属性 央邦0首付,低押金先就业后付款

热门文章

  1. 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译
  2. centos使用yum快速安装java的方法
  3. 【Spring】基于注解的IOC案例
  4. Redis常见面试问题汇总及解析
  5. SpringCloud配置文件 application.yml和 bootstrap.yml区别,执行顺序
  6. tryexceptelse可以嵌套
  7. LeetCode简单题之数组拆分 I
  8. TensorRT宏碁自建云(BYOC, BuildYourOwnCloud)上集成
  9. 2021年大数据ELK(七):安装Elasticsearch-head插件
  10. python random 随机生成一个数