上一期,我们分别讲解了:nethogs、nload、slurm、 iftop、collectl、Netstat、Netload、 Nagios等Linux网络工具。详情:点击回顾。 下面继续为大家分享: 如果要在你的系统上监控网络,那么使用命令行工具是非常实用的,并且对于 Linux 用户来说,有着许许多多现成的工具可以使用,如: nethogs, ntopng,nload, iftop, iptraf, bmon, slurm等。 鉴于世上有着许多的 Linux 专家和开发者,显然还存在其他的网络监控工具,但在这篇教程中,我不打算将它们所有包括在内。 上面列出的工具都有着自己的独特之处,但归根结底,它们都做着监控网络流量的工作,只是通过各种不同的方法。例如 nethogs 可以被用来展示每个进程的带宽使用情况,以防你想知道究竟是哪个应用在消耗了你的整个网络资源; iftop 可以被用来展示每个套接字连接的带宽使用情况,而像 nload 这类的工具可以帮助你得到有关整个带宽的信息。
EtherApe EtherApe 是一个针对 Unix 的图形化网络监控工具,它仿照了 etherman 软件。它支持链路层、IP 和 TCP 等模式,并支持以太网, FDDI, 令牌环, ISDN, PPP, SLIP 及 WLAN 设备等接口,以及一些封装格式。主机和连接随着流量和协议而改变其尺寸和颜色。它可以过滤要展示的流量,并可从一个文件或运行的网络中读取数据包。 在 CentOS、Fedora、RHEL 等 Linux 发行版本中安装 etherape 是一件容易的事,因为在它们的官方软件仓库中就可以找到 etherape。我们可以像下面展示的命令那样使用 yum 包管理器来安装它: yum install etherape 我们也可以使用下面的命令在 Ubuntu、Debian 及它们的衍生发行版本中使用 apt 包管理器来安装 EtherApe : sudo apt-get install etherape 在 EtherApe 安装到你的系统之后,我们需要像下面那样以 root 权限来运行etherape: sudo etherape 然后, etherape 的 图形用户界面 便会被执行。接着,在菜单上面的 捕捉 选项下,我们可以选择 模式(IP,链路层,TCP) 和 接口。一切设定完毕后,我们需要点击 开始 按钮。接着我们便会看到类似下面截图的东西:
tcpflow tcpflow 是一个命令行工具,它可以捕捉 TCP 连接(流)的部分传输数据,并以一种方便协议分析或除错的方式来存储数据。它重构了实际的数据流并将每个流存储在不同的文件中,以备日后的分析。它能识别 TCP 序列号并可以正确地重构数据流,不管是在重发还是乱序发送状态下。 通过 apt 包管理器在 Ubuntu 、Debian 系统中安装 tcpflow 是很容易的,因为默认情况下在官方软件仓库中可以找到它。 $ sudo apt-get install tcpflow 我们可以使用下面的命令通过 yum 包管理器在 Fedora 、CentOS 、RHEL 及它们的衍生发行版本中安装 tcpflow: # yum install tcpflow 假如你运行 64 位的 PC: 假如你运行 32 位的 PC: 我们可以使用 tcpflow 来捕捉全部或部分 tcp 流量,并以一种简单的方式把它们写到一个可读的文件中。下面的命令就可以完成这个事情,但我们需要在一个空目录中运行下面的命令,因为它将创建诸如 x.x.x.x.y-a.a.a.a.z 格式的文件,运行之后,只需按 Ctrl-C 便可停止这个命令。 $ sudo tcpflow -i eth0 port 8000 注意:请将上面的 eth0 替换为你想捕捉的网卡接口名称。
IPTraf IPTraf 是一个针对 Linux 平台的基于控制台的网络统计应用。它生成一系列的图形,如 TCP 连接的包/字节计数、接口信息和活动指示器、 TCP/UDP 流量故障以及局域网内设备的包/字节计数。 在默认的软件仓库中可以找到 IPTraf,所以我们可以使用下面的命令通过 apt 包管理器轻松地安装 IPTraf: $ sudo apt-get install iptraf 我们可以使用下面的命令通过 yum 包管理器轻松地安装 IPTraf: # yum install iptraf 我们需要以管理员权限来运行 IPTraf,并带有一个有效的网络接口名。这里,我们的网络接口名为 wlan2,所以我们使用 wlan2 来作为参数: $ sudo iptraf wlan2
开始通常的网络接口统计,键入: # iptraf -g 查看接口 eth0 的详细统计信息,使用: # iptraf -d eth0 查看接口 eth0 的 TCP 和 UDP 监控信息,使用: # iptraf -z eth0 查看接口 eth0 的包的大小和数目,使用: # iptraf -z eth0 注意:请将上面的 eth0 替换为你的接口名称。你可以通过运行ip link show命令来检查你的接口。
Speedometer Speedometer 是一个小巧且简单的工具,它只用来绘出一幅包含有通过某个给定端口的上行、下行流量的好看的图。 在默认的软件仓库中可以找到 Speedometer ,所以我们可以使用下面的命令通过 yum 包管理器轻松地安装 Speedometer: # yum install speedometer 我们可以使用下面的命令通过 apt 包管理器轻松地安装 Speedometer: $ sudo apt-get install speedometer Speedometer 可以简单地通过在 shell 或虚拟终端中执行下面的命令来运行: $ speedometer -r wlan2 -t wlan2
注:请将上面的 wlan2 替换为你想要使用的网络接口名称。
Netwatch Netwatch 是 netdiag 工具集里的一部分,它也显示当前主机和其他远程主机的连接情况,以及在每个连接中数据传输的速率。 我们可以使用 yum 在 fedora 中安装 Netwatch,因为它在 fedora 的默认软件仓库中。但若你运行着 CentOS 或 RHEL , 我们需要安装 rpmforge 软件仓库。 # yum install netwatch Netwatch 是 netdiag 的一部分,可以在默认的软件仓库中找到,所以我们可以轻松地使用下面的命令来利用 apt 包管理器安装 netdiag: $ sudo apt-get install netdiag 为了运行 netwatch, 我们需要在虚拟终端或 shell 中执行下面的命令: $ sudo netwatch -e wlan2 -nt
注意: 请将上面的 wlan2 替换为你想使用的网络接口名称,假如你想通过扫描了解你的网络接口名称,可以在一个虚拟终端或 shell 中运行 ip link show 命令。
Trafshow Trafshow 同 netwatch 和 pktstat 一样,可以报告当前活动的连接里使用的协议和每个连接中数据传输的速率。它可以使用 pcap 类型的过滤器来筛选出特定的连接。 我们可以使用 yum 在 fedora 中安装 trafshow ,因为它在 fedora 的默认软件仓库中。但若你正运行着 CentOS 或 RHEL , 我们需要安装 rpmforge 软件仓库。 # yum install trafshow Trafshow 在默认仓库中可以找到,所以我们可以轻松地使用下面的命令来利用 apt 包管理器安装它: $ sudo apt-get install trafshow 为了使用 trafshow 来执行监控任务,我们需要在虚拟终端或 shell 中执行下面的命令: $ sudo trafshow -i wlan2
为了专门监控 tcp 连接,如下面一样添加上 tcp 参数: $ sudo trafshow -i wlan2 tcp
注意: 请将上面的 wlan2 替换为你想使用的网络接口名称,假如你想通过扫描了解你的网络接口名称,可以在一个虚拟终端或 shell 中运行 ip link show 命令。
Vnstat 与大多数的其他工具相比,Vnstat 有一点不同。实际上它运行着一个后台服务或守护进程,并时刻记录着传输数据的大小。另外,它可以被用来生成一个网络使用历史记录的报告。 我们需要开启 EPEL 软件仓库,然后运行 yum 包管理器来安装 vnstat。 # yum install vnstat Vnstat 在默认软件仓库中可以找到,所以我们可以使用下面的命令运行 apt 包管理器来安装它: $ sudo apt-get install vnstat 不带有任何选项运行 vnstat 将简单地展示出从该守护进程运行后数据传输的总量。 $ vnstat
完成了上面的步骤后,按 Ctrl-C 来停止,这将会得到如下类型的输出:
tcptrack tcptrack 可以展示 TCP 连接的状态,它在一个给定的网络端口上进行监听。tcptrack 监控它们的状态并展示出排序且不断更新的列表,包括来源/目标地址、带宽使用情况等信息,这与 top 命令的输出非常类似 。 鉴于 tcptrack 在软件仓库中,我们可以轻松地在 Debian、Ubuntu 系统中从软件仓库使用 apt 包管理器来安装 tcptrack。为此,我们需要在 shell 或虚拟终端中执行下面的命令: $ sudo apt-get install tcptrack 我们可以通过 yum 在 fedora 中安装它,因为它在 fedora 的默认软件仓库中。但若你运行着 CentOS 或 RHEL 系统,我们需要安装 rpmforge 软件仓库。为此,我们需要运行下面的命令: # rpm -Uvh rpmforge-release*rpm # yum install tcptrack 注:这里我们下载了 rpmforge-release 的当前最新版本,即 0.5.3-1,你总是可以从 rpmforge 软件仓库中下载其最新版本,并请在上面的命令中替换为你下载的版本。 tcptrack 需要以 root 权限或超级用户身份来运行。执行 tcptrack 时,我们需要带上要监视的网络接口 TCP 连接状况的接口名称。这里我们的接口名称为 wlan2,所以如下面这样使用: sudo tcptrack -i wlan2
假如你想监控特定的端口,则使用: # tcptrack -i wlan2 port 80
请替换上面的 80 为你想要监控的端口号。注意: 请将上面的 wlan2 替换为你想使用的网络接口名称,假如你想通过扫描了解你的网络接口名称,可以在一个虚拟终端或 shell 中运行 ip link show 命令。
结论: 在这篇文章中,我们介绍了一些在 Linux 下的网络负载监控工具,这对于系统管理员甚至是新手来说,都是很有帮助的。在这篇文章中介绍的每一个工具都具有其特点,不同的选项等,但最终它们都可以帮助你来监控你的网络流量。
广州创龙,你身边的主板定制专家!
每周一堂课,动动手指头
|