想知道你的Linux系统上网络流量有多大吗?想知道是哪一块网卡承载着网络流量吗?想知道哪一个进程产生了网络流量吗?iptraf可以帮你做到。在最新的Linux release上,比如CentOS 7.0,采用了衍生版本iptraf-ng 。
通常我们会先看看总体状况,“iptraf -g” 显示每一个网卡上的流量:
找到感兴趣的网卡之后,再看看那个网卡的总体状况,“iptraf -d eth0” 显示指定网卡上的流量统计,总体流量、流入量、流出量、以及按协议分类的流量统计:
以上我们看到大部分流量来自TCP协议,需要进一步找出这些流量通过哪一个TCP port,“iptraf -s eth0” 统计各port的流量::
很明显是TCP port 22,即SSH端口。如果我们还想进一步看看是哪些远程主机在跟我们的SSH端口通信,“iptraf -i eth0” 可以帮忙:
“iptraf -i eth0” 的输出分为两个窗口,上面是TCP socket pairs,下面是UDP。这里我们看到,连接我们SSH端口的远程IP是16.29.48.9。如果你愿意,根据这个socket pair的信息,还可以利用 lsof 工具找出进程号。
顺便介绍一个类似的工具:iftop ,它与 “iptraf -i” 有点像,显示每一对主机之间的动态流速,如果加上 “-P” 选项,就与 “iptraf -i” 一样可以显示每一对socket pair的动态流速,而且它还统计UDP端口,不像iptraf那样把UDP流量放在单独的窗口中显示。