linux最全网络监控命令梳理及评测
文章目录
- linux最全网络监控命令梳理及评测
- 1 iptraf
- 2 nload
- 3 iftop
- 4 dstat
- 5 nethogs
- 6 bmon
- 7 更多工具列表
- 8 评测小结
- 9 参考链接
1 iptraf
通过iptraf观察流量效果非常直观,如下所示是cenos安装的命令:
yum install iptraf
安装成功后,可以通过如下命令查看帮助信息:
通常情况下我们抓指定网口的流量统计,可以使用-d选项,如下图所示是执行视图模式后的统计界面,输入x可以直接退出;
直接输入`iptraf-ng命令会进入导航视图,用户可以根据需求选择不同选项,完成指定统计观察:
2 nload
nload没有iptraf色彩交互靓丽,功能更加直接,安装方式同样是yum为主:
#### yum方式:
yum install -y nload
#### 源码包方式:
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
tar -zxvf nload-0.7.4.tar.gz
cd nload-0.7.4
./configure;make;make install
如下是nload的一些命令行备忘:
#### 1-查看所有网卡的流量
nload
#### 2-输入nload venet0, 查看指定网卡流量
nload venet0
#### 3-显示以MB为单位的流量,也可以改成K
nload -u M
#### 4-设置刷新间隔时间100ms
nload -t 100 eth0
#### 5-设置最大缩放比率,默认是10240,如果按照默认的话,如果流量小的话,比率过大就看不出什么变化了,因此可以使用-o 来制定缩放比率
nload -t 500 -o 500 -U M eth0
如下图所示是经过缩放后的流量统计状态:
3 iftop
iftop是类似于top的流量监控工具, iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等;
安装方式如下所示:
#### 01 yum安装
yum install iftop
#### 02编译安装方式
下载iftop
cd /usr/local/
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure --prefix=/usr/local/iftop
make && make install
常用iftop命令如下所示:
#### 01-查看eth1这块外网网卡的流量使用情况
iftop –i eth1
i设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 172.30.1.0/24或# iftop -F 172.30.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
6.进入iftop画面后的一些操作命令(注意大小写哟~)
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。
参考链接
01-iftop结合iptables解决请求占满问题
Iptables -A OUTPUT -d 192.230.123.101 –j REJECT
iptables-A OUTPUT -d 192.230.0.0/16 -j REJECT
下图所示是iftop的一个监控界面展示:
4 dstat
dstat是一个大而全的工具,查看帮助文档,似乎什么都能做,包括cpu、硬盘、流量、内存、网络、io、交换分区、时间,甚至包括了tcp、udp、socket等信息,但是也可能正是因为这个兼容的原因,在界面呈现,单独就某个领域的功能而言没有上述几款功能统计的详细。这或许就是专才和通才难以避免会存在的区别。
dstat安装较为简单,同样是使用yum即可:
yum install dstat
下图所示是其进行网络统计的一个截图:
5 nethogs
nethogs可以方便的查看占用带宽最高进程,并明确pid及路径,在平时定位流量激增问题时会是一个很好的帮手;
安装命令如下:
yum install nethogs
运行也非常简单,直接输入nethogs即可;
6 bmon
bmon(带宽监控器)是一款类似nload的工具,它可以显示系统上所有网络接口的流量负载。输出结果还含有图表和剖面,附有数据包层面的详细信息
安装方式仍然是yun即可,常用命令如下所示:
bmon -p eth0
7 更多工具列表
- | 简单描述 | 备注 |
slurm | 可以显示设备的统计信息,还能显示ASCII图形。 | slurm -s -i eth0 |
tcptrack | cptrack类似iftop,使用pcap库来捕获数据包,并计算各种统计信息,比如每个连接所使用的带宽。 它还支持标准的pcap过滤器,这些过滤器可用来监控特定的连接。 | |
vnstat | 运行后台服务/守护进程,始终不停地记录所传输数据的大小。之外,它可以用来制作显示网络使用历史情况的报告。 | |
bwm-ng | 下一代带宽监控器)是另一款非常简单的实时网络负载监控工具,可以报告摘要信息,显示进出系统上所有可用网络接口的不同数据的传输速度。 | |
cbm | ||
speedometer | 显示通过某个接口传输的入站流量和出站流量。 | |
pktstat | 可以实时显示所有活动连接,并显示哪些数据通过这些活动连接传输的速度。它还可以显示连接类型,比如TCP连接或UDP连接;如果涉及HTTP连接,还会显示关于HTTP请求的详细信息 | |
netwatch | netdiag工具库的一部分,它也可以显示本地主机与其他远程主机之间的连接 | sudo netwatch -e eth0 -nt |
trafshow | 与netwatch和pktstat一样,trafshow也可以报告当前活动连接、它们使用的协议以及每条连接上的数据传输速度。它能使用pcap类型过滤器,对连接进行过滤。 | |
netload | 命令只显示关于当前流量负载的一份简短报告,并显示自程序启动以来所传输的总字节量。 | |
ifstat | ifstat能够以批处理式模式显示网络带宽。输出采用的一种格式便于用户使用其他程序或实用工具来记入日志和分析。 | |
collectl | 以一种类似dstat的格式报告系统的统计信息;与dstat一样,它也收集关于系统不同资源(如处理器、内存和网络等)的统计信息。这里给出的一个简单例子显示了如何使用collectl来报告网络使用/带宽。 |
8 评测小结
总的来说关于网络监控梳理出来的这些工具,每一款的侧重点和功能不尽相同,但是确实有些明星命令行胜在全面或者好看,下面我将简单小结一下让我影响深刻的几个工具:
- iptraf: 拥有所有命令中设计最好看的交互界面,功能丰富度一般;
- nload:界面中庸,但是功能强大,专注于网络监控,值得推荐;
- iftop:与nload一样,同样功能强大,专业强;
- dstat:一款大而全的工具,但是缺点同样明显,缺乏特长;
- nethogs: 日常定位流量激增问题的简单好帮手;
- bmon: 类似于nload和iftop,专注于报文统计详情方向;