Linux服务器上监控网络带宽的18个经常使用命令

这些工具使用不一样的机制来制做流量报告。nload等一些工具能够读取"proc/net/dev"文件,以得到流量统计信息;而一些工具使用pcap库来捕获全部数据包,而后计算总数据量,从而估计流量负载。
python

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

  • 监控整体带宽使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netloadios

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

  • 每一个套接字链接的带宽使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshowcentos

  • 每一个进程的带宽使用――nethogs服务器

1. nload网络

wKioL1NHVHaTuJsxAACnounWlRE088.jpg

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

因此,若是你只须要快速查看总带宽使用状况,无需每一个进程的详细状况,那么nload用起来很方便。tcp

 
    
  1. $ nload ide

安装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地址解析成主机名,解析自己就会带来额外的网络流量。


wKioL1NHVL7jY7HHAAEgRTrhrLQ996.jpg

安装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局域网监控工具。它能够显示每一个链接以及主机之间传输的数据量。下面是屏幕截图。

wKioL1NHVOOQnZFBAAFTsbjcf4s270.jpg

 
    
  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

wKiom1NHVS2xISHlAACzFEY_TXk705.jpg

安装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的工具,它能够显示系统上全部网络接口的流量负载。输出结果还含有图表和剖面,附有数据包层面的详细信息。

wKiom1NHVY3jnEy6AADs1KELymM553.jpg

安装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

wKiom1NHVa3gzLatAADeZkAp-MI754.jpg

安装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过滤器,这些过滤器可用来监控特定的链接。

wKiom1NHVdejRZBLAAGcN1fyUAo420.jpg

安装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

wKioL1NHVhWSx_qNAACKglAqjWM437.jpg

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

 
    
  1. $ sudo apt-get install cbm

11. speedometer

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

 
    
  1. $ speedometer -r eth0 -t eth0

wKiom1NHVlqREiKDAACob-3PQms100.png

安装speedometer

 
    
  1. # ubuntu或debian用户

  2. $ sudo apt-get install speedometer

12. pktstat

wKioL1NHVlnh_O30AAE_o8zmrUs132.jpg

pktstat能够实时显示全部活动链接,并显示哪些数据经过这些活动链接传输的速度。它还能够显示链接类型,好比TCP链接或UDP链接;若是涉及HTTP链接,还会显示关于HTTP请求的详细信息。

 
    
  1. $ sudo pktstat -i eth0 -nt

  2. $ sudo apt-get install pktstat

13. netwatch

wKiom1NHVqSicEj3AACpP4eyJto989.jpg

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

 
    
  1. $ sudo netwatch -e eth0 -nt

  2. $ sudo apt-get install netdiag

14. trafshow

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

只监控TCP链接

wKioL1NHVsnR03qJAAE5I5OyRbU350.jpg

 
    
  1. $ sudo trafshow -i eth0 tcp

  2. $ sudo apt-get install netdiag

15. netload

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

wKiom1NHVz7R5O7KAACCq2bGaH8466.jpg

 
    
  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,它们提供了一批功能特性,不只仅能够监控服务器,还能监控整个基础设施。

原文连接:http://www.binarytides.com/linux-commands-monitor-network/

源自:51cto译文

相关文章
相关标签/搜索