Linux系统的通信分析工具中,有的程序功能强大,特性也不少,如ntop 和vnstat等就得到了广泛使用。不过,有时,你只是需要一个能够给你快速分析通信量的工具,它可以提供进出网络主机的通信量基本信息。 Darkstat,是一个数据包嗅探器,它以一个后台过程的形式运行,并能完成上述任务。它收集关于网络利用情况的统计数据,并通过HTTP协议显示出 来。
笔者在CentOS 5和 Fedora 7系统上测试了最新的版本(darkstat-3.0.707.tar.bz2)。你可以用tar-xvjf darkstat-3.0.707.tar.bz2解开新的内核源程序,然后安装之。要调用darkstat,请键入:
以下是引用片段: darkstat –i eth0 |
这个程序会在选中的接口开始检查数据,并以后台形式运行,并将结果返回到外壳。这些行看起来是如下的样子:
以下是引用片段: darkstat 3.0.707 (built with libpcap 2.4) darkstat (19646): starting up darkstat (19646): daemonizing to run in the background! darkstat (19647): I am the main process darkstat (19647): DNS child has PID 19648 darkstat (19646): parent waiting darkstat (19647): caplen is 54 darkstat (19648): set uid/gid to 99/99 darkstat (19647): capturing in promiscuous mode darkstat (19647): listening on 0.0.0.0:667 darkstat (19647): loaded 129 protos darkstat (19647): loaded 4594 tcp and 4549 udp servs, from total 9158 darkstat (19647): chrooted into: /var/empty darkstat (19647): set uid/gid to 99/99 darkstat (19647): local_ip update(eth0) = 192.168.0.5 darkstat (19647): entering main loop darkstat (19646): parent done reading, calling waitpid darkstat (19646): waitpid ret 0, status is 3 |
以下是引用片段: kill -9 19647 |
或
以下是引用片段: killall darkstat |
但用户必须用一个浏览器(http:server:667)来显示由darkstat所收集的数据,其实用darkstat自身内置的Web服务器就可以实现。第十行指明了667是浏览器应当连接的端口。用户可以用-p选项将它改为另外一个端口。
-l开关用“网络/掩码”的语法形式定义了一个本地网络,这个网络的所有通信(进入的或离开的)都以图形化的形式显示。-f选项允许用户过滤数据包:
以下是引用片段: darkstat –i eth0 –l 192.168.0.0/255.255.255.0 –f "port 22" |
在这个例子中,我们正在过滤运行在22号端口上的SSH协议的网络数据包,因此用户可以定义哪些机器正在使用这个协议。其过滤器语法基于tcpdump,用户可以参考其文档以了解更多的信息。
图1
图2
Linux系统的通信分析工具中,有的程序功能强大,特性也不少,如ntop 和vnstat等就得到了广泛使用。不过,有时,你只是需要一个能够给你快速分析通信量的工具,它可以提供进出网络主机的通信量基本信息……
图3
Darkstat很简单,因此不要期望它有什么特异功能。图1中的页面显示了四个图表和一些基本的信息。将鼠标放到柱形图的某个柱上就会以字节 数显示这个时点进入和输入的数据。图2显示了网络上每台主机的IP地址和MAC地址,以及进入、转出的数据包数量。在IP地址上单击,就会显示关于特定主 机的更多信息,如哪些端口是开放的,正使用哪些协议。用户可以按照降序对进入、转出和总共的流量进行排序。
不过,darkstat显示在浏览器中的信息并不能自动加载,因此为了刷新内容,你必须重新加载页面。不过, dartstat数据能够以简单易懂的形式显示局域网中的基本通信信息,对一般的网络监视、管理已足矣。