<返回更多

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

2022-09-02  网易号  互联共商
加入收藏


 

一、如何查看centos的网络带宽出口

检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到linux的一个命令。

如何查看CentOS的网络带宽出口多大?可以用下面的命令来查看。

# ethtool eth0

前面是命令,后面跟的是设备名,如果对外连接的网络设备是eth1,那就需要改成:ethtool eth0

[root@localhost ~]# ethtool eth0

Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes

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

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

一些命令可以显示单个进程所使用的带宽。这样一来,用户很容易发现过度使用网络带宽的某个进程。

这些工具使用不同的机制来制作流量报告。nload等一些工具可以读取"proc.NET/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载。

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

 

  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/ target=_blank class=infotextkey>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,它们提供了一批功能特性,不仅仅可以监控服务器,还能监控整个基础设施

大带宽服务器BGP IP:

140.210.20.1

140.210.20.2

140.210.20.3

140.210.20.4

140.210.20.5

140.210.20.6

140.210.20.7

140.210.20.8

140.210.20.9

140.210.20.10

140.210.20.11

140.210.20.12

140.210.20.13

140.210.20.14

140.210.20.15

140.210.20.16

140.210.20.17

140.210.20.18

140.210.20.19

140.210.20.20

140.210.20.21

140.210.20.22

140.210.20.23

140.210.20.24

140.210.20.25

140.210.20.26

140.210.20.27

140.210.20.28

140.210.20.29

140.210.20.30

140.210.20.31

140.210.20.32

140.210.20.33

140.210.20.34

140.210.20.35

140.210.20.36

140.210.20.37

140.210.20.38

140.210.20.39

140.210.20.40

140.210.20.41

140.210.20.42

140.210.20.43

140.210.20.44

140.210.20.45

140.210.20.46

140.210.20.47

140.210.20.48

140.210.20.49

140.210.20.50

140.210.20.51

140.210.20.52

140.210.20.53

140.210.20.54

140.210.20.55

140.210.20.56

140.210.20.57

140.210.20.58

140.210.20.59

140.210.20.60

140.210.20.61

140.210.20.62

140.210.20.63

140.210.20.64

140.210.20.65

140.210.20.66

140.210.20.67

140.210.20.68

140.210.20.69

140.210.20.70

140.210.20.71

140.210.20.72

140.210.20.73

140.210.20.74

140.210.20.75

140.210.20.76

140.210.20.77

140.210.20.78

140.210.20.79

140.210.20.80

140.210.20.81

140.210.20.82

140.210.20.83

140.210.20.84

140.210.20.85

140.210.20.86

140.210.20.87

140.210.20.88

140.210.20.89

140.210.20.90

140.210.20.91

140.210.20.92

140.210.20.93

140.210.20.94

140.210.20.95

140.210.20.96

140.210.20.97

140.210.20.98

140.210.20.99

140.210.20.100

140.210.20.101

140.210.20.102

140.210.20.103

140.210.20.104

140.210.20.105

140.210.20.106

140.210.20.107

140.210.20.108

140.210.20.109

140.210.20.110

140.210.20.111

140.210.20.112

140.210.20.113

140.210.20.114

140.210.20.115

140.210.20.116

140.210.20.117

140.210.20.118

140.210.20.119

140.210.20.120

140.210.20.121

140.210.20.122

140.210.20.123

140.210.20.124

140.210.20.125

140.210.20.126

140.210.20.127

140.210.20.128

140.210.20.129

140.210.20.130

140.210.20.131

140.210.20.132

140.210.20.133

140.210.20.134

140.210.20.135

140.210.20.136

140.210.20.137

140.210.20.138

140.210.20.139

140.210.20.140

140.210.20.141

140.210.20.142

140.210.20.143

140.210.20.144

140.210.20.145

140.210.20.146

140.210.20.147

140.210.20.148

140.210.20.149

140.210.20.150

140.210.20.151

140.210.20.152

140.210.20.153

140.210.20.154

140.210.20.155

140.210.20.156

140.210.20.157

140.210.20.158

140.210.20.159

140.210.20.160

140.210.20.161

140.210.20.162

140.210.20.163

140.210.20.164

140.210.20.165

140.210.20.166

140.210.20.167

140.210.20.168

140.210.20.169

140.210.20.170

140.210.20.171

140.210.20.172

140.210.20.173

140.210.20.174

140.210.20.175

140.210.20.176

140.210.20.177

140.210.20.178

140.210.20.179

140.210.20.180

140.210.20.181

140.210.20.182

140.210.20.183

140.210.20.184

140.210.20.185

140.210.20.186

140.210.20.187

140.210.20.188

140.210.20.189

140.210.20.190

140.210.20.191

140.210.20.192

140.210.20.193

140.210.20.194

140.210.20.195

140.210.20.196

140.210.20.197

140.210.20.198

140.210.20.199

140.210.20.200

140.210.20.201

140.210.20.202

140.210.20.203

140.210.20.204

140.210.20.205

140.210.20.206

140.210.20.207

140.210.20.208

140.210.20.209

140.210.20.210

140.210.20.211

140.210.20.212

140.210.20.213

140.210.20.214

140.210.20.215

140.210.20.216

140.210.20.217

140.210.20.218

140.210.20.219

140.210.20.220

140.210.20.221

140.210.20.222

140.210.20.223

140.210.20.224

140.210.20.225

140.210.20.226

140.210.20.227

140.210.20.228

140.210.20.229

140.210.20.230

140.210.20.231

140.210.20.232

140.210.20.233

140.210.20.234

140.210.20.235

140.210.20.236

140.210.20.237

140.210.20.238

140.210.20.239

140.210.20.240

140.210.20.241

140.210.20.242

140.210.20.243

140.210.20.244

140.210.20.245

140.210.20.246

140.210.20.247

140.210.20.248

140.210.20.249

140.210.20.250

140.210.20.251

140.210.20.252

140.210.20.253

140.210.20.254

140.210.20.255

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>