DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

网络流量监控工具


iftop

Install on Ubuntu: apt-get install iftop.

最简用法(监控所有网络流量):sudo iftop -n.

监控与指定主机的交互:

iftop -n -i eth0 -f "host 10.0.2.47"       // 监测 47 与自己的双向传输数据
iftop -n -i eth0 -f "dst host 10.0.2.47"   // 监测从自己流向 47 的传输数据
iftop -n -i eth0 -f "src host 10.0.2.47"   // 监测从 47 流向自己的数据

目前看来iftop显示的信息最全,但需要好好看手册,每个值都是什么意思;使用它需要root权限;

参考:https://sickbits.net/iftop-finding-traffic-hogs/

sar

Install with sudo apt install sysstat. Modify ENABLED in file /etc/default/sysstat to true. Restart sysstat service: sudo service sysstat restart. Now you can use this tool: sar -r 2 20. Set the display language to English: LC_ALL="en_US.UTF-8" sar -r 2 2.

Ref: How to configure sysstat/sar on Ubuntu/Debian


2014-7-14更新:

  • nethogs 按进程查看流量占用: sudo nethogs wlan0;

  • iptraf-ng 按连接/端口查看流量: sudo iptraf-ng;

  • ifstat 按设备(网卡接口)查看流量: ifstat;

  • nload 按设备(网卡接口)查看流量: nload,用左/右键切换网卡接口;

  • nmon 包含CPU, Memory, Disk, Network等各项指标监控 (aptitude install);

  • glances: 包含CPU, Memory, Disk, Network等各项指标监控 (pip install glances);

  • slurm 按设备(网卡接口)查看流量: slurm -i wlan0;

  • collectl 监控主机的CPU, Disk和Network总体使用情况:collectl;

  • ethtool: 诊断工具

  • tcpdump: 抓包工具


2014-8-25更新:

iptraf-ng用于监测网络流量很好用,在ArchLinux和Mint中可以直接安装。 其中的"Ip traffic monitor"可以监测网卡的实时接收/发送 (RX/TX) 数据, 可以显示对端IP地址和端口,本方接收IP地址和端口,但不能显示实时传输速率, "General interface statistics" 可以显示所有网卡实时发送/接收数据的速率, 但不能显示对端IP和端口,二者互为补充。

今天测试在同一网段中的两台机器之间用scp传送大文件,速率稳定在99MB/s, 比较靠谱的一个结果, 间接说明scp传大文件可以用来检测网络的最大传输速率。

Ref: 20 Command Line Tools to Monitor Linux Performance


参考:Bandwidth Monitoring Tools For Linux

实时流量监控:pv

OS: Ubuntu Server 12.04.

netcat & pv

apt-get install pv

监控端口5555上的实时网络流量:

nc -l 5555 | pv > /dev/null

向服务器113上发送数据:

nc 10.31.1.113 5555

ifstat

Homepage: http://gael.roualland.free.fr/ifstat/

使用

ifstat -i eth0 1 5 // 监测网口eth0的流量,每一秒测试一次,共测试5次

该工具不需要root权限

安装

Ubuntu可以用apt-get直接装,官网上的ifstat-1.1.tar.gz包是源码包,在RedHat上安装需要编译,过程很简单,根据INSTALL文档的说明:

./configure
make
make install

atsar

atsar(Unix的sar指令的Linux移植版,可以用apt-get安装)也有几个选项是用来监控网络情况的,例如每隔2秒显示一次系统当前TCP流量:

atsar -t 2 5

trafshow

Ubuntu: apt-get install trafshow

监控与47的交互:trafshow -n -i eth0 host 10.0.2.47;

网络带宽测试:iperf

又叫bandwidth或者throughput测试,用来测试Server和Client间的最大传输速率。

iperf是命令行工具,还有一个基于Java的图形界面jperf可运行在Windows和linux上;

安装:Ubuntu用apt-get install iperf安装,Redhat需要在"http://pkgs.repoforge.org/iperf/"上根据操作系统的版本和架构选择一个rpm下载(47服务器系统为Redhat 5.4, x86_64,下载的是iperf-2.0.4-1.el5.rf.x86_64.rpm),然后用rpm -ivh 安装;

用法

  1. 启动服务端:iperf -s;

  2. 启动客户端:iperf -c 10.0.2.47 -i 1 -f M(-c后面跟服务器IP地址,-i表示发送的时间间隔,-f M表示返回结果以MByte为单位);

或者启动图像客户端jperf,点击"Run IPerf"按钮就可以测网络带宽了。给出的结果是笔记本电脑与113服务器之间单向单流(1 stream)带宽为1.8MB/s左右;

iperf作为客户端还有两个比较有用的选项分别是-d和-d -r,前者表示测试同时双向传输的速率,后者表示先进行client to server的单向传输测试,完毕后互换角色,反过来进行server to client的单向传输测试,过程如下:

server: iperf -s

client: iperf -c 10.0.2.47 -i 1 -f M -d(或者iperf -c 10.0.2.47 -i 1 -f M -d -r)

参考:

http://www.smallnetbuilder.com/lanwan/lanwan-howto/30408-measuring-network-performance-jperf

http://openmaniak.com/iperf.php



Published

Feb 21, 2013

Last Updated

Aug 22, 2019

Category

Tech

Tags

  • linux 158
  • monitor 4
  • network 9
  • throughput 1

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor