【精选翻译】本文介绍了一些Linux命令行工具,可以用来监控网络使用情况。这些工具监控通过网络接口传输的数据并测量当前传输数据的速度。入站和出站流量分别显示。有几个命令可以显示各个进程使用的带宽。这使用户很容易发现过度使用网络带宽的进程。这些工具使用不同的机制来生成流量报告。nload等一些工具可以读取“proc/net/dev”文件以获取流量统计信息;一些工具使用pcap库捕获所有数据包,然后计算总数据量以估计流量负载。以下是按功能细分的命令名称。监控总体带宽使用情况——nload、bmon、slurm、bwm-ng、cbm、speedometer和netload监控总体带宽使用情况(批输出)——vnstat、ifstat、dstat和collectl每个套接字连接的带宽使用情况——iftop、iptraf、tcptrack、pktstat、netwatch和trafshow每个进程的带宽使用情况-nethogs1。nloadnload是一个命令行工具,允许用户分别监控入站和出站流量。它还可以绘制图形来显示入站和出站流量,并且可以调整视图比例。它使用简单,不支持很多选项。因此,如果您只需要快速查看总带宽使用情况,而不需要每个进程的详细信息,则nload非常方便。$nloadinstallnload:Fedora和Ubuntu的默认软件仓库中都有nload。CentOS用户需要从Epel存储库获取nload。#fedora或centos$yuminstallnload-y#ubuntu/debian$sudoapt-getinstallnload2。iftopiftop测量通过每个套接字连接传输的数据;它的工作方式与nload不同。iftop使用pcap库捕获进出网络适配器的数据包,然后汇总数据包大小和计数以计算出总带宽使用量。虽然iftop报告每个连接使用的带宽,但它不能报告参与套接字连接的进程名称/编号(ID)。但是,因为它基于pcap库,iftop能够过滤流量并报告过滤器指定的选定主机连接的带宽使用情况。$sudoiftop-nn选项阻止iftop将IP地址解析为主机名,这本身会导致额外的网络流量。安装iftop:Ubuntu/Debian/Fedora用户可以从默认存储库中获取它。CentOS用户可以从Epel获得。#fedora或centosyuminstalllift-y#ubuntu或debian$sudoapt-getinstalllifttop3.iptrafiptraf是一个交互式、多彩的IPLAN监控工具。它可以显示每个连接和主机之间传输的数据量。下面是截图。$sudoiptrafInstalliptraf:#Centos(basicrepositories)$yuminstalliptraf#fedoraorcentos(withepel)$yuminstalliptraf-ng-y#ubuntuordebian$sudoapt-getinstalliptrafiptraf-ng4.nethogsnethogs是一个小型的“nettop”工具,您可以显示每个进程使用的带宽,并对列表进行排序,使消耗带宽最多的进程位于顶部。在带宽使用突然激增的情况下,用户快速打开nethogs以查找导致带宽使用激增的进程。nethogs可以报告程序的进程ID(PID)、用户和路径。$sudonethogsinstallnethogs:Ubuntu、Debian和Fedora用户可以从默认存储库中获取它。CentOS用户需要Epel。#ubuntu或debian(默认存储库)$sudoapt-getinstallnethogs#fedora或centos(来自epel)$sudoyuinstallnethogs-y5。bmonbmon(BandwidthMonitor)是一个类似于nload的工具,可以显示系统负载上所有网络接口的流量。输出还包括带有数据包级详细信息的图表和配置文件。安装bmon:Ubuntu、Debian和Fedora用户可以从默认存储库安装它。CentOS用户需要安装repoforge,因为epel中没有bmon。#ubuntu或debian$sudoapt-getinstallbmon#fedora或centos(来自repoforge)$sudoyuminstallbmonbmon支持许多选项,并且能够以HTML格式生成报告。有关详细信息,请参阅参考手册页。6.slurmslurm是另一个网络负载监视器,可以显示设备统计信息和显示ASCII图形。它支持三种不同类型的图形,每种图形都可以使用c、s和l键激活。slurm很简单,无法显示有关网络负载的任何进一步详细信息。$slurm-s-ieth0安装slurm#debian或ubuntu$sudoapt-getinstallslurm#fedora或centos$sudoyuminstallslurm-y7。tcptracktcptrack类似于iftop,使用pcap库抓包,计算各种统计数据,比如每个连接带宽的使用情况。它还支持可用于监视特定连接的标准pcap过滤器。安装tcptrack:Ubuntu、Debian和Fedora在默认存储库中都有它。CentOS用户需要从RepoForge获取它,因为Epel没有。#ubuntu,debian$sudoapt-getinstalltcptrack#fedora,centos(来自repoforge软件库)$sudoyuminstaltcptrack8。vnstatvnstat与大多数其他工具有点不同。它实际上运行一个后台服务/守护进程,始终跟踪传输数据的大小。此外,它还可用于创建显示历史网络使用情况的报告。$servicevnstatstatus*vnStatdaemonisrunning不带任何选项运行vnstat只会显示自守护程序运行以来传输的数据总量。$vnstatDatabaseupdated:MonMar1715:26:592014eth0since06/12/13rx:135.14GiBtx:35.76GiBtotal:170.90GiBmonthlyrx|tx|total|avg.rate-----------------------+------------+------------+------------Feb'148.19GiB|2.08GiB|10.27GiB|35.60kbit/sMar'144.98GiB|1.52GiB|6.50GiB|37.93kbit/s------------------------+-----------+------------+------------估计9.28GiB|2.83GiB|12.11GiB|dailyrx|tx|total|avg.rate--------------------+------------+-----------+------------昨天236.11MiB|98.61MiB|334.72MiB|31.74kbit/今天128.55MiB|41.00MiB|169.56MiB|24.97kbit/s-----------------------+------------+-----------------+------------estimated199MiB|63MiB|262MiB|要实时监控带宽使用情况,请使用“-l”选项(实时模式)。然后它会显示入站和出站数据使用的带宽总量,但非常精确,没有关于主机连接或进程的任何内部细节。$vnstat-l-ieth0Monitoringeth0...(pressCTRL-Ctostop)rx:12kbit/s10p/stx:12kbit/s11p/svnstat更像是一个制作历史报告的工具,显示每天或过去一个月使用了多少带宽。它不是严格意义上的实时网络监控工具。vnstat支持许多选项,有关支持哪些选项的详细信息,请参阅参考手册页。安装vnstat#ubuntu或debian$sudoapt-getinstallvnstat#fedora或centos(fromepel)$sudoyuminstallvnstat9.bwm-ngbwm-ng(NextGenerationBandwidthMonitor)是另一个非常简单的实时网络负载监控工具,报告摘要信息,它显示系统上所有可用网络接口的不同数据传输速度。$bwm-ngbwm-ngv0.6(probingevery0.500s),按'h'寻求帮助输入:/proc/net/devtype:rate/ifaceRxTxTot======================================================================eth0:0.53KB/s1.31KB/s1.84KBlo:0.00KB/s0.00KB/s0.00KB----------------------------------------------------------------------------------------------------总计:0.53KB/s1.31KB/s1.84KB/s如果控制台足够大,bwm-ng还可以使用curses2输出模式绘制流量条形图。$bwm-ng-ocurses2安装bwm-ng:在CentOS上,bwm-ng可以从Epel安装。#ubuntu或debian$sudoapt-getinstallbwm-ng#fedora或centos(来自epel)$sudoapt-getinstallbwm-ng10。cbm:ColorBandwidthMeter这是一个小巧简单的带宽监控工具,可以显示通过各种网络接口的流量大小。没有其他选项,只是实时显示和更新流量统计信息。$sudoapt-getinstallcbm11.speedometer这是另一个小而简单的工具,它只绘制漂亮的图表,显示通过接口的入站和出站流量。$speedometer-reth0-teth0安装速度计#ubuntu或debian用户$sudoapt-getinstallspeedometer12。pktstatpktstat可以实时显示所有活动连接并显示正在通过这些活动连接传输的数据以及传输速度。它还可以显示连接类型,例如TCP或UDP连接;如果涉及HTTP连接,它还会显示有关HTTP请求的详细信息。$sudopktstat-ieth0-nt$sudoapt-getinstallpktstat13。netwatchnetwatch是netdiag实用程序库的一部分,它还可以显示本地主机和其他远程主机之间的连接,并显示每个连接上正在传输的数据以及传输速度。$sudonetwatch-eeth0-nt$sudoapt-getinstallnetdiag14.trafshow与netwatch和pktstat一样,trafshow也可以报告当前的活动连接、它们使用的协议以及每个连接上的数据传输速度。它可以使用pcap类型过滤器过滤连接。仅监控TCP连接$sudotrafshow-ieth0tcp$sudoapt-getinstallnetdiag15。netloadnetload命令仅显示有关当前流量负载的简短报告,并显示自程序启动以来传输的总字节数。没有更多的功能特性。它是netdiag的一部分。$netloadeth0$sudoapt-getinstallnetdiag16。ifstatifstat可以批量显示网络带宽。输出采用便于其他程序或实用程序记录和分析的格式。$ifstat-t-ieth00.5Timeeth0HH:MM:SSKB/sinKB/sout09:59:21 2.622.8009:59:22 2.101.7809:59:22 2.671.8409:59:23 2.061.9809:59:23 1.731.79安装ifstat:Ubuntu、Debian和Fedora用户在默认存储库中有它。CentOS用户需要从Repoforge获取它,因为Epel没有。#ubuntu,debian$sudoapt-getinstallifstat#fedora,centos(Repoforge)$sudoyuminstallifstat17。dstatdstat是一个多功能的工具(用python语言编写),它可以监控系统的不同统计信息并使用批处理模式来报告,或者将相关数据记录到CSV或类似的文件中。此示例说明如何使用dstat报告网络带宽。安装dstat$dstat-nt-net/total-----system----recvsend|time00|23-0310:27:131738B1810B|23-0310:27:142937B2610B|23-0310:27:152319B2232B|23-0310:27:162738B2508B|23-0310:27:1718。collectlcollectl以类似于dstat的格式报告系统统计信息;和dstat一样,它也会收集系统不同资源(如处理器、内存、网络等)的统计信息。此处给出的一个简单示例显示了如何使用collectl来报告网络使用情况/带宽。$collectl-sn-oT-i0.5waitingfor0.5secondsample...#<------------网络-------->#TimeKBInPktInKBOutPktOut10:32:014058436610:32:01275833210:32:0232894410:32:02542969610:32:03548328安装collectl#Ubuntu/Debian用户$sudoapt-getinstallcollectl#Fedora$sudoyuminstallcollectl结论以上方便的命令可以快速查看Linux服务器上的网络带宽使用情况。但是,这些命令要求用户通过SSH登录到远程服务器。或者,也可以使用基于Web的监控工具来完成相同的任务。ntop和darkstat是Linux系统的两个基于Web的基本网络监控工具。此外,还有企业级的监控工具,比如nagios,它提供了很多功能特性,不仅可以监控服务器,还可以监控整个基础设施。原文链接:http://www.binarytides.com/linux-commands-monitor-network/
