iftop    ntopng    iperf

一、先来看看iftop

Iftop是一个免费的网卡实时流量监控工具,类似于linux下的top命令,iftop可以监控指定网卡的实时流量、端口连接信息,反向解析ip,还可以精确的显示本机网络流量情况及网络内各主机与本机互相通信的流量状况。

Iftop的安装

iftop官网:http://www.ex-parrot.com/pdw/iftop/

有源码编译安装和rpm包安装,两种方法都很简单。如果用源码编译安装,下载下来直接./configure 就可以了,rpm包安装则更简单就不用说了。

Iftop 使用参数:

-指定需要监测的网卡

-n 将输出的主机信息都通过IP显示,不进行DNS反向解析

-B 将输出以byte为单位显示网卡流量,默认是bit

-p 以混杂模式运行iftop,此时iftop可以用作网络嗅探器

-N 只显示连接端口号,不显示端口对应的服务名称

-P 显示主机以及端口信息

-F 显示特定网段的网卡进出流量

-m 设置iftop输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示

在最下面三行,TX表示发送数据,RX表示接收数据,TOTAL表示发送和接收的全部流量。其中,cumm表示从运行iftop到目前的发送、接收和总数据流量。Peak表示发送、接收以及总的流量峰值;rates表示过去2s10s40s内的平均流量值。

二、网络管理系统Ntopng

安装Ntopng

下载地址:http://www.nmon.net/centos/

这里有提供rpm格式的安装包,直接使用yum安装即可。

Yum install pfring n2disk nProbe ntopng ntopng-data nbox -y

创建配置文件

vim /etc/ntopng/ntopng.conf

-G=/var/tmp/ntopng.gid

--local-networks "192.168.31.0/24"

--interface eth0

--user nobody

--http-port 3000

相关参数含义如下:

-G 指定存储Ntopng进程号的文件路径

--local-network 指定要监控的本地子网段

--interface eth0 指定要监听eth0网卡上的流量

--user指定运行Ntopng服务所使用的帐户

--http-port指定NtopngWeb服务端口号,默认端口为3000.

启动Ntopng服务之前需要启动redis服务,因为Ntopng服务依赖redis服务的键值存储。

Service redis start

Service Ntopng start

Ntopng 常用参数:

-d 将Ntopng进程放到后台执行,默认Ntop在前台运行。

-u 指定启动Ntopng执行的用户,默认是nobody用户。

-i  指定Ntopng监听的网卡设备,指定多块网卡时,用逗号隔开。

-M 如果通过-i 参数指定了多块网卡,那么输出的网卡流量信息默认是合并的,如果要将多块网卡信息分开统计,就需要添加此参数。

-L 将Ntopng的输出信息写入系统日志文件中,对应于Centos,就是/var/log/message文件

-w 设置NtopngWeb界面使用的端口,默认是3000

-r 设定NtopngWeb界面自动刷新频率,默认是每3s刷新一次。

服务启动起来以后,就可以通过web界面访问了。

默认帐号密码:admin

三、网络性能评估工具iperf

Iperf是一个基于TCP/IPUDP/IP的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。网络管理员可以根据这些信息了解并判断网络性能问题,从而定位网络瓶颈。

Iperf的主要功能:

TCP方面

测试网络带宽

支持多线程,在客户端与服务器支持多重连接

报告MSS/MTU值的大小

支持TCP窗口值自定义并可通过套接字缓冲

UDP方面

可以设置指定带宽的UDP数据流

可以测试网络抖动值、丢包数

支持多播测试

支持多线程,在客户端与服务器端支持多重连接

Iperf 官网:http://iperf.fr

安装iperf

tar zxvf  iperf-2.0.5-source.tar.gz

cd iperf-2.0.5

./configure --prefix /usr/local/iperf

make && make install

cp /usr/local/iperf/bin/iperf  /usr/bin/

iperf参数说明:

服务端专用选项

-s 将iperf以服务器模式启动,例如:iperf s  iperf默认启动的监听端口为5201,可以通过“-p”选项修改默认监听端口

-D 将iperf作为后台守护进程运行,例如:iperf 

客户端专用选项

-c 将iperf以客户端模式启动

-u 指定使用UDP协议

-b [K|M|G] 指定UDP模式使用的带宽,单位bits/sec。此选项与-u 选项相关。 默认1 Mbits/sec

-t 指定传输数据包的总时间。 Iperf将在指定的时间内,重复发送指定长度数据包。 默认10s

-n [K|M|G] 指定传输数据包的字节数

-l 指定读写缓冲区的长度,TCP方式默认大小为8KBUDP方式默认大小为1470B

-P 指定客户端与服务器端之间使用的线程数,默认是1个线程。需要客户端与服务器端同时使用此参数

-R 切换数据发送、接收模式

-w 指定套接字缓冲区大小

-B 用来绑定一个主机地址或接口,这个参数仅用于具有多个网络接口的主机。

-M 设置TCP最大信息段的值

-N 设置TCP无延时

客户端与服务器端公用选项

-f [k|m|g|K|M|G] 指定带宽输出单位

-p 指定服务器端使用的端口或客户端所连接的端口

-i 指定每次报告之间的时间间隔,单位为秒。 默认值为1.

-F 指定文件作为数据流进行带宽测试

实战演练:

要使用ifperf,首先启动一个服务器端。

./bin/iperf -D -s

然后来到客户端这边测试

# iperf -c 192.168.31.253

------------------------------------------------------------

Client connecting to 192.168.31.253, TCP port 5001

TCP window size: 19.3 KByte (default)

------------------------------------------------------------

[  3] local 192.168.31.254 port 49057 connected with 192.168.31.253 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec  1.41 GBytes  1.21 Gbits/sec

指定发送数据的大小,指定输出的单位,指定线程数。

# iperf -c 192.168.31.253 -n 2000000000 -f M -P 2

-----------------------------------------------------------

Client connecting to 192.168.31.253, TCP port 5001

TCP window size: 0.02 MByte (default)

------------------------------------------------------------

[  4] local 192.168.31.254 port 49058 connected with 192.168.31.253 port 5001

[  3] local 192.168.31.254 port 49059 connected with 192.168.31.253 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-17.5 sec  1907 MBytes   109 MBytes/sec

[  4]  0.0-23.5 sec  1907 MBytes  81.3 MBytes/sec

[SUM]  0.0-23.5 sec  3815 MBytes   163 MBytes/sec

测试UDP丢包和延迟

iperf -c 192.168.31.253 -u -b 50M -f M -i 2

笔者安装的iperf是2.0版本的,建议大家按照3.0版本。 学习总结完成!

本文出自 “” 博客,请务必保留此出处