这18个命令查看Linux服务器上的网络带宽
这篇文章提到了一些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将非常方便。
$ nload
安装Nload-Fedora和Ubuntu在默认存储库中安装了它。CentOS用户需要从Epel资料库获取nload。
# fedora or centos
$ yum install nload -y
# ubuntu/debian
$ sudo apt-get install nload
2. iftop
Iftop可以测量流经各个套接字连接的数据,并且其工作方式与Nload不同。Iftop使用pcap库捕获捕获到网络适配器中和从网络适配器中移出的数据包,然后对大小和计数求和以找到正在使用的总带宽。尽管iftop报告了各个连接使用的带宽,但是它无法报告特定套接字连接中涉及的进程名称/标识。但是,基于pcap库,iftop能够过滤流量,并按照过滤器的指定报告选定主机连接上的带宽使用情况。
$ sudo iftop -n
n选项可防止iftop将IP地址解析为主机名,这会导致其自身的其他网络流量。
安装iftop-Ubuntu / Debian / Fedora用户从默认存储库中获取它。CentOS用户从Epel获得它。
# fedora or centos
yum install iftop -y
# ubuntu or debian
$ sudo apt-get install iftop
3. iptraf
Iptraf是一款交互式的彩色IP Lan监视器。它显示了各个连接以及主机之间流动的数据量。
$ sudo iptraf
安装iptraf
# Centos (base repo)
$ yum install iptraf
# fedora or centos (with epel)
$ yum install iptraf-ng -y
# ubuntu or debian
$ sudo apt-get install iptraf iptraf-ng
4. nethogs
Nethogs是一个小型的“ net top”工具,它显示单个进程使用的带宽,并对列表进行排序,从而将最密集的进程放在顶部。如果突然出现带宽峰值,请快速打开nethogs并找到负责的过程。Nethogs报告PID,用户和程序路径。
$ sudo nethogs
安装Nethogs-Ubuntu,Debian,Fedora用户从默认存储库中获取。CentOS用户需要Epel
# ubuntu or debian (default repos)
$ sudo apt-get install nethogs
# fedora or centos (from epel)
$ sudo yum install nethogs -y
5. bmon
Bmon(带宽监视器)是类似于nload的工具,可显示系统上所有网络接口上的流量负载。输出还包括一个图形和一个包含数据包级别详细信息的部分。安装Bmon-Ubuntu,Debian和Fedora用户可以从默认存储库安装。CentOS用户需要设置repoforge,因为它在Epel中不可用。
# ubuntu or debian
$ sudo apt-get install bmon
# fedora or centos (from repoforge)
$ sudo yum install bmon
Bmon支持许多选项,并且能够生成html格式的报告。查看手册页以获取更多信息
6. slurm
Slurm是另一个“网络负载监视器”,它显示设备统计信息以及ascii图。它支持3种不同样式的图形,每种样式均可使用c,s和l键激活。slurm功能简单,不会显示有关网络负载的任何更多详细信息。
$ slurm -s -i eth0
安装slurm
# debian or ubuntu
$ sudo apt-get install slurm
# fedora or centos
$ sudo yum install slurm -y
7. tcptrack
Tcptrack与iftop相似,它使用pcap库捕获数据包并计算各种统计信息,例如每个连接中使用的带宽。它还支持可用于监视特定连接的标准pcap过滤器。安装tcptrack-Ubuntu,Debian和Fedora在默认存储库中安装了它。CentOS用户需要从RepoForge获取它,因为它在Epel中都不可用。
# ubuntu, debian
$ sudo apt-get install tcptrack
# fedora, centos (from repoforge repository)
$ sudo yum install tcptrack
8. Vnstat
Vnstat与大多数其他工具有点不同。它实际上运行一个后台服务/守护程序,并一直记录着数据传输的大小。接下来,它可以用于生成网络使用历史记录的报告。
$ service vnstat status
* vnStat daemon is running
不带任何选项运行vnstat只会显示自守护程序运行之日起发生的数据传输总量。
要实时监视带宽使用情况,请使用“ -l”选项(实时模式)。然后,它将以非常精确的方式显示传入和传出数据使用的总带宽,而无需任何有关主机连接或进程的内部细节。
Vnstat更像是一种获取历史报告的工具,该报告显示每天或过去一个月使用了多少带宽。严格来说,它不是实时监视网络的工具。
Vnstat支持许多选项,有关详细信息,请参见手册页。
安装vnstat
# ubuntu or debian
$ sudo apt-get install vnstat
# fedora or centos (from epel)
$ sudo yum install vnstat
9. bwm-ng
Bwm-ng(下一代带宽监视器)是另一种非常简单的实时网络负载监视器,它报告有关数据在系统中所有可用网络接口中进出传输速度的摘要。
$ bwm-ng
如果控制台大小足够大,bwm-ng也可以使用curses2输出模式为流量绘制条形图。
$ bwm-ng -o curses2
安装Bwm-NG-在CentOS上,可以从Epel安装bwm-ng。
# ubuntu or debian
$ sudo apt-get install bwm-ng
# fedora or centos (from epel)
$ sudo apt-get install bwm-ng
10. cbm – Color Bandwidth Meter
一个微型的简单带宽监视器,它通过网络接口显示流量。没有其他选项,仅显示交通统计信息并实时更新。
$ sudo apt-get install cbm
11. speedometer
另一个小而简单的工具,它只是通过给定的界面绘制出入流量的漂亮图形。
安装speedometer
# ubuntu or debian users
$ sudo apt-get install speedometer
12. Pktstat
Pktstat实时显示所有活动的连接,以及通过它们传输数据的速度。它还显示连接的类型,即tcp或udp以及有关http请求的详细信息(如果涉及)。
$ sudo pktstat -i eth0 -nt
$ sudo apt-get install pktstat
13. Netwatch
Netwatch是netdiag工具集合的一部分,它也显示本地主机和其他远程主机之间的连接以及每个连接上数据传输的速度。
$ sudo netwatch -e eth0 -nt
$ sudo apt-get install netdiag
14. Trafshow
与netwatch和pktstat一样,trafshow报告当前活动的连接,它们的协议以及每个连接上的数据传输速度。它可以使用pcap类型过滤器过滤掉连接。
仅监视TCP连接
$ sudo trafshow -i eth0 tcp
$ sudo apt-get install netdiag
15. Netload
netload命令仅显示有关当前流量负载以及自程序启动以来传输的字节总数的小报告。没有更多功能。它属于netdiag一部分。
$ netload eth0
$ sudo apt-get install netdiag
16. ifstat
ifstat以批处理方式报告网络带宽。输出的格式易于使用其他程序或实用程序进行记录和解析。
安装ifstat-Ubuntu,Debian和Fedora用户将其保存在默认存储库中。CentOS用户需要从Repoforge中获得它,因为它不在Epel中。
# ubuntu, debian
$ sudo apt-get install ifstat
# fedora, centos (Repoforge)
$ sudo yum install ifstat
17. dstat
Dstat是一种多功能工具(用python编写),可以监视不同的系统统计数据并以批处理样式模式报告它们,或将数据记录到csv或类似文件中。
安装dstat
$ sudo apt-get install dstat
18. collectl
Collectl以类似于dstat的样式报告系统统计信息,并且像dstat一样,它收集有关各种不同系统资源(例如cpu,内存,网络等)的统计信息。
安装Collectl
# Ubuntu/Debian users
$ sudo apt-get install collectl
#Fedora
$ sudo yum install collectl