分享有用的 Linux 命令行网络监控工具

Posted Linux公社

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享有用的 Linux 命令行网络监控工具相关的知识,希望对你有一定的参考价值。

点击上方 “Linux公社”可以订阅哦!

对任何规模的业务来说,网络监控工具都是一个重要的功能。网络监控的目标可能千差万别。比如,监控活动的目标可以是保证长期的网络服务、安全保护、对性能进行排查、网络使用统计等。由于它的目标不同,网络监控器使用很多不同的方式来完成任务。比如对包层面的嗅探,对数据流层面的统计数据,向网络中注入探测的流量,分析服务器日志等。

尽管有许多专用的网络监控系统可以365天24小时监控,但您依旧可以在特定的情况下使用命令行式的网络监控器,某些命令行式的网络监控器在某方面很有用。如果您是系统管理员,那您就应该有亲身使用一些知名的命令行式网络监控器的经历。这里有一份Linux上流行且实用的网络监控器列表。

包层面的嗅探器

在这个类别下,监控工具在链路上捕捉独立的包,分析它们的内容,展示解码后的内容或者包层面的统计数据。这些工具在最底层对网络进行监控、管理,同样的也能进行最细粒度的监控,其代价是影响网络I/O和分析的过程。

  1. dhcpdump:一个命令行式的DHCP流量嗅探工具,捕捉DHCP的请求/回复流量,并以用户友好的方式显示解码的DHCP协议消息。这是一款排查DHCP相关故障的实用工具。

  2. httpry:一个HTTP报文嗅探器,用于捕获、解码HTTP请求和回复报文,并以用户友好的方式显示这些信息。(LCTT 译注:延伸阅读http://www.linuxidc.com/Linux/2014-11/108865.htm

  3. IPTraf:基于命令行的网络统计数据查看器。它实时显示包层面、连接层面、接口层面、协议层面的报文/字节数。抓包过程由协议过滤器控制,且操作过程全部是菜单驱动的。(LCTT 译注:延伸阅读http://www.linuxidc.com/Linux/2015-05/117346.htm

    分享有用的 Linux 命令行网络监控工具

  4. mysql-sniffer:一个用于抓取、解码MySQL请求相关的数据包的工具。它以可读的方式显示最频繁或全部的请求。

  5. ngrep:在网络报文中执行grep。它能实时抓取报文,并用正则表达式或十六进制表达式的方式匹配(过滤)报文。它是一个可以对异常流量进行检测、存储或者对实时流中特定模式报文进行抓取的实用工具。

  6. p0f:一个被动的基于包嗅探的指纹采集工具,可以可靠地识别操作系统、NAT或者代理设置、网络链路类型以及许多其它与活动的TCP连接相关的属性。

  7. pktstat:一个命令行式的工具,通过实时分析报文,显示连接带宽使用情况以及相关的协议(例如,HTTP GET/POST、FTP、X11)等描述信息。

    分享有用的 Linux 命令行网络监控工具

  8. Snort:一个入侵检测和预防工具,通过规则驱动的协议分析和内容匹配,来检测/预防活跃流量中各种各样的后门、僵尸网络、网络钓鱼、间谍软件攻击。

    Snort 中文手册 http://www.linuxidc.com/Linux/2013-11/92265.htm

    Snort + Base 入侵检测配置 http://www.linuxidc.com/Linux/2013-02/79805.htm

    Ubuntu 12.04下安装Snort详解 http://www.linuxidc.com/Linux/2013-01/78554.htm

    Snort企业部署实战 http://www.linuxidc.com/Linux/2012-08/68946.htm

    Snort+base搭建IDS入侵检测系统 http://www.linuxidc.com/Linux/2012-08/67865.htm

    Linux平台Snort入侵检测系统实战指南 http://www.linuxidc.com/Linux/2012-08/67048.htm

  9. tcpdump:一个命令行的嗅探工具,可以基于过滤表达式抓取网络中的报文,分析报文,并且在包层面输出报文内容以便于包层面的分析。他在许多网络相关的错误排查、网络程序debug、或安全监测方面应用广泛。

    Linux系统入门学习:如何使用tcpdump来捕获TCP SYN,ACK和FIN包 http://www.linuxidc.com/Linux/2014-10/107722.htm

    Linux运维工程师利器:Nmap和tcpdump http://www.linuxidc.com/Linux/2014-02/96993.htm

  10. tshark:一个与Wireshark窗口程序一起使用的命令行式的嗅探工具。它能捕捉、解码网络上的实时报文,并能以用户友好的方式显示其内容。

流/进程/接口层面的监控

在这个分类中,网络监控器通过把流量按照流、相关进程或接口分类,收集每个流、每个进程、每个接口的统计数据。其信息的来源可以是libpcap抓包库或者sysfs内核虚拟文件系统。这些工具的监控成本很低,但是缺乏包层面的检视能力。

  1. bmon:一个基于命令行的带宽监测工具,可以显示各种接口相关的信息,不但包括接收/发送的总量/平均值统计数据,而且拥有历史带宽使用视图。

    分享有用的 Linux 命令行网络监控工具

  2. iftop:一个带宽使用监测工具,可以实时显示某个网络连接的带宽使用情况。它对所有带宽使用情况排序并通过ncurses的接口来进行可视化。他可以方便的监控哪个连接消耗了最多的带宽。(LCTT 译注:延伸阅读http://www.linuxidc.com/Linux/2013-08/89102.htm

    CentOS-网卡实时监测工具-iftop http://www.linuxidc.com/Linux/2013-05/84590.htm

    Linux下监控网卡流量的软件iftop http://www.linuxidc.com/Linux/2011-05/36348.htm

    CentOS流量查看工具iftop介绍 http://www.linuxidc.com/Linux/2008-06/13492.htm

  3. nethogs:一个基于ncurses显示的进程监控工具,提供进程相关的实时的上行/下行带宽使用信息。它对检测占用大量带宽的进程很有用。(LCTT 译注:延伸阅读http://www.linuxidc.com/Linux/2014-04/99602.htm

  4. netstat:一个显示许多TCP/UDP的网络堆栈的统计信息的工具。诸如打开的TCP/UDP连接书、网络接口发送/接收、路由表、协议/套接字的统计信息和属性。当您诊断与网络堆栈相关的性能、资源使用时它很有用。

  5. speedometer:一个可视化某个接口发送/接收的带宽使用的历史趋势,并且基于ncurses的条状图进行显示的终端工具。

  6. sysdig:一个可以通过统一的界面对各个Linux子系统进行系统级综合性调试的工具。它的网络监控模块可以监控在线或离线、许多进程/主机相关的网络统计数据,例如带宽、连接/请求数等。(LCTT 译注:延伸阅读http://www.linuxidc.com/Linux/2014-12/110033.htm

  7. vnStat:一个存储并显示每个接口的历史接收/发送带宽视图(例如,当前、每日、每月)的流量监控器。作为一个后台守护进程,它收集并存储统计数据,包括接口带宽使用率和传输字节总数。(LCTT 译注:延伸阅读http://www.linuxidc.com/Linux/2015-04/116122.htm

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-05/117669p2.htm

点击下方 “阅读原文”查看更多
↓↓↓


以上是关于分享有用的 Linux 命令行网络监控工具的主要内容,如果未能解决你的问题,请参考以下文章

Speedtest网络测速工具(支持命令行测试)

干货分享 | 在 Linux 命令行中使用 tcpdump 抓包

监控 Linux 性能的 18 个命令行工具[转]

Linux 性能监控之命令行工具

Linux系统性能监控和调试

18个监控网络带宽的Linux命令行工具