Linux下网络监控工具总结

对任何规模的业务来说, 网络监控工具都是一个重要的功能.

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

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

1 包层面的嗅探器

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

编号工具描述
1   dhcpdump   一个命令行式的DHCP流量嗅探工具, 捕捉DHCP的请求/回复流量, 并以用户友好的方式显示解码的DHCP协议消息. 这是一款排查DHCP相关故障的实用工具.  
2   dsniff   一个基于命令行的嗅探、伪造和劫持的工具合集,被设计用于网络审查和渗透测试. 它可以嗅探多种信息, 比如密码、NSF流量(LCTT 译注:此处疑为 NFS 流量)、email消息、网络地址等  
3   httpry   一个HTTP报文嗅探器, 用于捕获、解码HTTP请求和回复报文, 并以用户友好的方式显示这些信息. (LCTT 译注:延伸阅读.)  
4   IPTraf   基于命令行的网络统计数据查看器. 它实时显示包层面、连接层面、接口层面、协议层面的报文/字节数. 抓包过程由协议过滤器控制, 且操作过程全部是菜单驱动的. (LCTT 译注:延伸阅读.)  
5   mysql-sniffer   一个用于抓取、解码MySQL请求相关的数据包的工具。它以可读的方式显示最频繁或全部的请求  
6   ngrep   在网络报文中执行grep。它能实时抓取报文,并用正则表达式或十六进制表达式的方式匹配(过滤)报文。它是一个可以对异常流量进行检测、存储或者对实时流中特定模式报文进行抓取的实用工具  
7   p0f   一个被动的基于包嗅探的指纹采集工具,可以可靠地识别操作系统、NAT或者代理设置、网络链路类型以及许多其它与活动的TCP连接相关的属性  
8   pktstat   一个命令行式的工具, 通过实时分析报文, 显示连接带宽使用情况以及相关的协议(例如,HTTP GET/POST、FTP、X11)等描述信息  
9   Snort   一个入侵检测和预防工具,通过规则驱动的协议分析和内容匹配,来检测/预防活跃流量中各种各样的后门、僵尸网络、网络钓鱼、间谍软件攻击  
10   tcpdump   一个命令行的嗅探工具, 可以基于过滤表达式抓取网络中的报文, 分析报文, 并且在包层面输出报文内容以便于包层面的分析. 他在许多网络相关的错误排查、网络程序debug、或安全监测方面应用广泛  
11   tshark   一个与Wireshark窗口程序一起使用的命令行式的嗅探工具. 它能捕捉、解码网络上的实时报文, 并能以用户友好的方式显示其内容.  
2 流/进程/接口层面的监控

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

编号工具描述
1   bmon   一个基于命令行的带宽监测工具, 可以显示各种接口相关的信息, 不但包括接收/发送的总量/平均值统计数据, 而且拥有历史带宽使用视图  
2   iftop   一个带宽使用监测工具,可以实时显示某个网络连接的带宽使用情况。它对所有带宽使用情况排序并通过ncurses的接口来进行可视化。他可以方便的监控哪个连接消耗了最多的带宽. (LCTT 译注:延伸阅读)  
3   nethogs   一个基于ncurses显示的进程监控工具,提供进程相关的实时的上行/下行带宽使用信息。它对检测占用大量带宽的进程很有用. (LCTT 译注:延伸阅读.)  
4   netstat   一个显示许多TCP/UDP的网络堆栈的统计信息的工具。诸如打开的TCP/UDP连接书、网络接口发送/接收、路由表、协议/套接字的统计信息和属性. 当您诊断与网络堆栈相关的性能、资源使用时它很有用  
5   speedometer   一个可视化某个接口发送/接收的带宽使用的历史趋势,并且基于ncurses的条状图进行显示的终端工具  
6   sysdig   一个可以通过统一的界面对各个Linux子系统进行系统级综合性调试的工具。它的网络监控模块可以监控在线或离线、许多进程/主机相关的网络统计数据,例如带宽、连接/请求数等. (LCTT 译注:延伸阅读.)  
7   tcptrack   一个TCP连接监控工具,可以显示活动的TCP连接,包括源/目的IP地址/端口、TCP状态、带宽使用等.  
8   vnStat   一个存储并显示每个接口的历史接收/发送带宽视图(例如,当前、每日、每月)的流量监控器。作为一个后台守护进程,它收集并存储统计数据,包括接口带宽使用率和传输字节总数. (LCTT 译注:延伸阅读.)  
9   nload   nload默认分为上下两块, 上半部分是 : Incoming也就是进入网卡的流量, 下半部分是 : Outgoing,也就是从这块网卡出去的流量, 每部分都有当前流量(Curr), 平均流量(Avg), 最小流量(Min), 最大流量(Max)  
3 主动网络监控器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14855.html