良许Linux教程网 干货合集 Linux下高效的网络监控命令

Linux下高效的网络监控命令

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。监控和保持系统启动并运行是很不容易的一件事,本篇文章重点为大家讲解一下Linux下常用的网络监控命令。

Linux下高效的网络监控命令

1. nload

技术分享

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

所以,如果你只需要快速查看总带宽使用情况,无需每个进程的详细情况,那么nload用起来很方便。结果是bit/s

  1. $ nload

安装nload:Fedora和Ubuntu在默认软件库里面就有nload。CentOS用户则需要从Epel软件库获得nload。

2. iftop

iftop可测量通过每一个套接字连接传输的数据;它采用的工作方式有别于nload。iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况。

虽然iftop报告每个连接所使用的带宽,但它无法报告参与某个套按字连接的进程名称/编号(ID)。不过由于基于pcap库,iftop能够过滤流量,并报告由过滤器指定的所选定主机连接的带宽使用情况。

  1. $ sudo iftop -n

n选项可以防止iftop将IP地址解析成主机名,解析本身就会带来额外的网络流量。

技术分享

安装iftop:Ubuntu/Debian/Fedora用户可以从默认软件库获得它。CentOS用户可以从Epel获得它。

3. iptraf

iptraf是一款交互式、色彩鲜艳的IP局域网监控工具。它可以显示每个连接以及主机之间传输的数据量。下面是屏幕截图。

技术分享
  1. $ sudo iptraf

4. nethogs

nethogs是一款小巧的”net top”工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面。万一出现带宽使用突然激增的情况,用户迅速打开nethogs,就可以找到导致带宽使用激增的进程。nethogs可以报告程序的进程编号(PID)、用户和路径。

  1. $ sudo nethogs
技术分享

安装nethogs:Ubuntu、Debian和Fedora用户可以从默认软件库获得。CentOS用户则需要Epel。

5. bmon

bmon(带宽监控器)是一款类似nload的工具,它可以显示系统上所有网络接口的流量负载。输出结果还含有图表和剖面,附有数据包层面的详细信息。

技术分享

安装bmon:Ubuntu、Debian和Fedora用户可以从默认软件库来安装。CentOS用户则需要安装repoforge,因为Epel里面没有bmon。

bmon支持许多选项,能够制作HTML格式的报告。欲知更多信息,请参阅参考手册页。

6. slurm

slurm是另一款网络负载监控器,可以显示设备的统计信息,还能显示ASCII图形。它支持三种不同类型的图形,使用c键、s键和l键即可激活每种图形。slurm功能简单,无法显示关于网络负载的任何更进一步的详细信息。

  1. $ slurm -s -i eth0
技术分享

7. tcptrack

tcptrack类似iftop,使用pcap库来捕获数据包,并计算各种统计信息,比如每个连接所使用的带宽。它还支持标准的pcap过滤器,这些过滤器可用来监控特定的连接。

技术分享

安装tcptrack:Ubuntu、Debian和Fedora在默认软件库里面就有它。CentOS用户则需要从RepoForge获得它,因为Epel里面没有它。

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 eno1
  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支持许多选项,支持哪些选项方面的详细信息请参阅参考手册页。

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

10. cbm:Color Bandwidth Meter

技术分享

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

11. speedometer

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

  1. $ speedometer -r eth0 -t eth0

12. pktstat

技术分享

pktstat可以实时显示所有活动连接,并显示哪些数据通过这些活动连接传输的速度。它还可以显示连接类型,比如TCP连接或UDP连接;如果涉及HTTP连接,还会显示关于HTTP请求的详细信息。

  1. $ sudo pktstat -i eth0 -nt

13. netwatch

技术分享

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

  1. $ sudo netwatch -e eth0 -nt

14. trafshow

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

只监控TCP连接

技术分享
  1. $ sudo trafshow -i eth0 tcp

15. netload

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

技术分享
  1. $ netload eth0

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里面没有它。

17. dstat

dstat是一款用途广泛的工具(用python语言编写),它可以监控系统的不同统计信息,并使用批处理模式来报告,或者将相关数据记入到CSV或类似的文件。这个例子显示了如何使用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. #
  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

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部