|
|
51CTO旗下网站
|
|
移动端

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

本文介绍了一些能够用来监控网络运用状况的Linux指令行东西。这些东西能够监控经过网络接口传输的数据,并丈量现在哪些数据所传输的速度。入站流量和出站流量分开来显现。

作者:布加迪编译来历:y0ymnw1on.com|2014-04-11 10:10
188bet uedbet 威廉希尔 明升 bwin 明升88 bodog bwin 明升m88.com 18luck 188bet unibet unibet Ladbrokes Ladbrokes casino m88明升 明升 明升 m88.com 188bet m88 明陞 uedbet赫塔菲官网 365bet官网 m88 help

【51CTO精选译文】本文介绍了一些能够用来监控网络运用状况的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. ------------------------+-------------+-------------+------------- 
  9. Feb '14      8.19 GiB  |    2.08 GiB  |   10.27 GiB |   35.60 kbit/s 
  10. Mar '14      4.98 GiB  |    1.52 GiB  |    6.50 GiB |   37.93 kbit/s 
  11. ------------------------+-------------+-------------+------------- 
  12. estimated       9.28 GiB |    2.83 GiB  |   12.11 GiB | 
  13. daily 
  14. rx      |     tx      |    total    |   avg. rate 
  15. ------------------------+-------------+-------------+------------- 
  16. yesterday     236.11 MiB |   98.61 MiB |  334.72 MiB |   31.74 kbit/s 
  17. today    128.55 MiB |   41.00 MiB |  169.56 MiB |   24.97 kbit/s 
  18. ------------------------+-------------+-------------+------------- 
  19. 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,它们供给了一批功用特性,不只是能够监控服务器,还能监控整个根底设施。

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

【修改引荐】

  1. 4个强壮的Linux服务器监控东西
  2. 监控 Linux 功能的 18 个指令行东西
  3. 五款好玩又好用的Linux网络测验和监控东西
  4. 10个有用的 Linux 网络和监控指令
【责任修改:黄丹 TEL:(010)68476606】

点赞 0
我们都在看
猜你喜爱

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

223人订阅学习

Java EE速成攻略

Java EE速成攻略

把握Java中心
共30章 | 51CTO王波

85人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | 51CTO叶教师

479人订阅学习

读 书 +更多

干流ARM嵌入式体系规划技能与实例精解

本书要点介绍了干流ARM运用体系的开发与实践。全书根据现在较为通用、盛行的ARM处理器,介绍了其原理、硬件结构、硬件电路规划与开发和软件...

订阅51CTO邮刊

点击这儿检查样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客