发包软件(Linux下最强流量发包利器)
一、如何在Linux下统计高速网络中的流量
Linux下统计高速网络流量方法如下:
在Linux中有很多的流量监控工具,它们可以监控、分类网络流量,以花哨的图形用户界面提供实时流量分析报告。大多数这些工具(例如:ntopng,iftop)都是基于libpcap库的,这个函数库是用来截取流经网卡的数据包的,可在用户空间用来监视分析网络流量。尽管这些工具功能齐全,然而基于libpcap库的流量监控工具无法处理高速(Gb以上)的网络接口,原因是由于在用户空间做数据包截取的系统开销过高所致。
在本文中我们介绍一种简单的Shell脚本,它可以监控网络流量而且不依赖于缓慢的libpcap库。这些脚本支持Gb以上规模的高速网络接口,如果你对“汇聚型”的网络流量感兴趣的话,它们可统计每个网络接口上的流量。
脚本主要是基于sysfs虚拟文件系统,这是由内核用来将设备或驱动相关的信息输出到用户空间的一种机制。网络接口的相关分析数据会通过“/sys/class/net/<ethX>/statistics”输出。
举个例子,eth0的网口上分析报告会输出到这些文件中:
/sys/class/net/eth0/statistics/rx_packets:收到的数据包数据
/sys/class/net/eth0/statistics/tx_packets:传输的数据包数量
/sys/class/net/eth0/statistics/rx_bytes:接收的字节数
/sys/class/net/eth0/statistics/tx_bytes:传输的字节数
/sys/class/net/eth0/statistics/rx_dropped:收包时丢弃的数据包
/sys/class/net/eth0/statistics/tx_dropped:发包时丢弃的数据包
这些数据会根据内核数据发生变更的时候自动刷新。因此,你可以编写一系列的脚本进行分析并计算流量统计。下面就是这样的脚本(感谢 joemiller提供)。第一个脚本是统计每秒数据量,包含接收(RX)或发送(TX)。而后面的则是一个描述网络传输中的接收(RX)发送(TX)带宽。这些脚本中安装不需要任何的工具。
测量网口每秒数据包:
#!/bin/bash
INTERVAL="1"#update interval in seconds
if [-z"$1" ]; then
echo
echousage:$0 [network-interface]
echo
echoe.g.$0 eth0
echo
echoshows packets-per-second
exit
fi
IF=$1
while true
do
R1=`cat/sys/class/net/$1/statistics/rx_packets`
T1=`cat/sys/class/net/$1/statistics/tx_packets`
sleep$INTERVAL
R2=`cat/sys/class/net/$1/statistics/rx_packets`
T2=`cat/sys/class/net/$1/statistics/tx_packets`
TXPPS=`expr$T2-$T1`
RXPPS=`expr$R2-$R1`
echo"TX$1:$TXPPS pkts/s RX$1:$RXPPS pkts/s"
done
网络带宽测量
#!/bin/bash
INTERVAL="1"#update interval in seconds
if [-z"$1" ]; then
echo
echousage:$0 [network-interface]
echo
echoe.g.$0 eth0
echo
exit
fi
IF=$1
while true
do
R1=`cat/sys/class/net/$1/statistics/rx_bytes`
T1=`cat/sys/class/net/$1/statistics/tx_bytes`
sleep$INTERVAL
R2=`cat/sys/class/net/$1/statistics/rx_bytes`
T2=`cat/sys/class/net/$1/statistics/tx_bytes`
TBPS=`expr$T2-$T1`
RBPS=`expr$R2-$R1`
TKBPS=`expr$TBPS/ 1024`
RKBPS=`expr$RBPS/ 1024`
echo"TX$1:$TKBPS kb/s RX$1:$RKBPS kb/s"
done
下面的屏幕截图显示了上面的两个脚本的输出。
二、怎么在linux下看端口统计流量
在要统计流量的端口下配置 ip accounting out然后show ip accounting就可以看到,但是请注意该端口需要有流量。
ip accounting使用说明:
1、基于地址对的字节数量及数据包数量统计;
2、通常只支持outbound的数据包,及被ACL拒绝的数据包(支持IN和 OUT方向的ACL);
3、只统计穿越路由器的流量,源或目的是该路由器的数据包不做统计;
4、支持所有的switching path,除了Autonomous Switching;
5、可以通过SNMP来访问统计值,MIB是OLD-CISCO-IP-MIB, lipAccountingTable;
6、ip accounting还支持其他的监测方式,如基于tos,mac-address等。
扩展资料:
查看全部端口的配置:
display current-configuration
display current-configuration interface
如果要查看当前所有端口的配置,可以通过:dis cu这条命令进行查询,当然这条命令会显示所有当前生效的配置,不仅仅包含端口的配置,这条命令经常用来检查交换机的配置情况,用来排查故障,比较常用的;
如果只想查看所有端口的配置而不需要其他配置,可以使用更精确的命令:dis cu int来查看。
例如我们要检查一下一台H3C 3600交换机所有端口的配置是否正确,就可以直接使用命令:dis cu即可得到所有端口的配置信息还有其它配置信息。
三、在Linux下怎么看网络流量
1.使用 iptraf
iptraf是一个实时查看网络流量的文本屏幕界面工具。
如果系统没有安装
如果是 RHEL,那么就去找安装盘中的 iptraf*.rpm包安装;
如果是 CentOS,那么用 yum install-y iptraf进行安装
iptraf是一个文本全屏幕界面,操作起来比较简单明了。最好使用 putty来看,SecureCRT可能显示乱码。
它提供了很多统计方式:
(1)IP traffic monitor
(2)General interface statistics
(3)Detailed interface statistics
如果跟上-B参数,还可以后台执行,把数据保存到文件中,位于/var/log/iptraf目录。
2. sar
如果系统没有安装,
如果是 RHEL,那么就去安装盘中找 sysstat*.rpm包安装;
如果是 CentOS,那么用 yum install-y sysstat安装。
sysstat是一个工具包,包含有几个很有用的系统检测程序,iostat,mpstat和sar.
Turbolinux的各个版本上,都包含这个工具包.
iostat用于输出CPU,I/O系统和磁盘分区的统计信息.可以用来分析磁盘I/O,带宽等信息.
mpstat用于输出CPU的各种统计信息.可以用来分析程序运行时在内核态和用户态的工作情况.
sar用于定时搜集系统的各种状态信息.然后可以对系统各个时间点的状态进行监控.
sar有很多用途,如果要来监控网络流量,使用下面的命令行方式:
sar-n DEV interval count
其中,interval是统计时间间隔,以秒为单位;count是总共统计几次,如果为0就不断的统计直到 Ctrl+C打断,否则执行count次就退出。
比如:sar-n DEV 1 4
比如:sar-n DEV 10 0
IFACE:LAN接口
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数