【讲清楚,说明白!】巧用iftop找出是谁占用了带宽

目录:
(一)iftop流量监控工具
(二)安装iftop
(三)运行iftop
(四)iftop命令的相关参数



(一)iftop流量监控工具
(1.1)在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop命令。
(1.2)iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。



(二)安装iftop
(2.1)我们首先安装epel源,查询iftop命令是由什么软件包安装的,然后使用yum将iftop命令安装起来。
# cd /etc/yum.repos.d/---进入yum源的目录
# mv CentOS-Base.repo CentOS-Base.repo.backup.old---修改CentOS-Base.repo文件名备份
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/epel-7.repo ---从阿里云下载epel源的文件
# yum whatprovides /iftop---查询iftop命令是由什么软件包安装的
# yum install perl-SNMP_Session-1.13-5.el7.noarch -y---使用yum将iftop命令安装起来


(2.2)注意:我们也可以使用编译的方式进行iftop命令的安装
# 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
# make && make install



(三)运行iftop
(3.1)直接运行iftop命令后

(3.2)界面的相关说明,界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的,中间的<=、=>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流浪
TOTAL:总流量
cum:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去2s、10s、40s的平均流量



(四)iftop命令的相关参数
(4.1)常用的参数
-c:指定可选的配置文件
-t:使用不带ncurses的文本界面
-s num:和-t一起使用的,num秒后打印一次文本输出然后退出
-L num:和-t一起使用的,打印的行数
# iftop -i ens32---使用-i设定监测的网卡
# iftop -B---使用-B参数,以bytes为单位显示流量(默认是bits)
# iftop -n---使用参数-n,是host主机的信息默认直接都显示IP
# iftop -N---使用-N参数使端口信息默认直接都显示端口号
# iftop -F 192.168.26.131/255.255.255.0---使用-F参数显示特定网段的进出流量
# iftop -h---使用-h参数,显示参数信息
# iftop -p---使用-p参数,使用这个参数后,使host信息及端口信息默认都显示
# iftop -b---使用-b参数,使流量图形条默认不显示

# iftop -P---使用-P参数,使得host信息及端口信息默认都显示

# iftop -m 100M---设置界面上的刻度的最大值,刻度分五个大段显示

(4.2)进入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退出监控
(4.3)iftop的输出从整体上可以分为三大部分:第一部分是iftop输出中最上面的一行,此行是流量刻度,用于显示网卡带宽流量;第二部分是iftop输出中最大的一个部分,此部分又分为左中右三列,左列和中列记录了哪些IP或主机正在本机的网络进行连接。其中中列的=>代表发送数据,<=代表接收数据,通过这个指示箭头可以很清晰的知道两个IP之间的通信情况。最右列又分为三个小列,这些实时参数分别表示外部IP连接到本机2s、10s、40s的平均流量。另外这个部分还有一个流量图形条,流量图形条是对流量大小的动态展示,以第一部分中的流量刻度为基准。通过这个流量图形条可以很方便的看出哪个IP的流量最大,从而迅速定位网络中可能出现的流量问题;第三部分位于iftop输出的最下面,可以分为三行,其中TX表示发送的数据,RX表示接收的数据,TOTAL表示发送和接收的全部流量,与这三行对应的有三列,其中cum列表示从运行iftop到目前的发送、接收和总数据流量,peak列表示发送,接收以及总的流量峰值,rates列表示过去2s、10s、40s的平均流量值。

(4.4)如何将iftop的输出导出到文本中呢?
# nohup iftop -i ens32 > /tmp/test 2>&1 &---将iftop的输出导出到文本中并放置在后台运行

—————— 本文至此结束,感谢阅读 ——————

原文地址:https://blog.51cto.com/13613726/2460737

时间: 2024-07-29 20:22:40

【讲清楚,说明白!】巧用iftop找出是谁占用了带宽的相关文章

巧用Procexp找出弹窗广告真凶

1.首先下载好微软进程查看工具procexp 2.双击打开procexp,鼠标左键点击并长按 procexp 菜单栏 Help下方的图标,拉到广告窗口,然后放开,就会自动定位的所在进程: 3.找到可恶的广告元凶,打开任务管理器查看(竟然伪装成所谓的Windows安全防护进程,难怪误杀了许多进程也没把广告关掉,实在是可恶): 4.将这两个进程同时关闭(若仅关一个,另一个进程有可能重新启动被关进程).以管理员身份运行命令提示符,输入命令:taskkill /F /IM winsafe.exe ,回车

【C#学习笔记】【6】找出0-100以内的所有的能被3整除或者被5整除余2的数(二)(流程控制)

在上节中,我们画的那个流程图还记得么?判断部分我们会了,就差循环了,下面我会介绍三种常用的循环. 循环结构 while循环(当循环,至少我的C语言老师这么叫) 先来介绍一下语法吧,如下 while(条件表达式) { //这里是循环体,当上面的条件表达式为真时,执行循环体,否则退出 } while后面跟一个条件表达式,如果是真的话才会执行循环.执行完循环体再判断条件表达式,直到为假的时候推出循环. 例如我们输出1到100的数,例程如下: int i=1; while (i <= 100) { Co

仅通过崩溃地址找出源代码的出错行

作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?--错啦!我相信我的看法是不会有人反对的--那就是,程序发生了崩溃! "该程序执行了非法操作,即将关闭.请与你的软件供应商联系.",呵呵,这句 M$ 的"名言",恐怕就是程序员最担心见到的东西了.有的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了:有时自己在编写和测试的过程中就莫名其妙地遇到了非法操作,但是却无法确定到底是源代码中的哪行引起的--是不是很痛苦呢?不要紧,本

[LeetCode] 在一堆字符串中找出包含相同字符的 group的较快方法,题 Anagrams

题目: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. class Solution { public: vector<string> anagrams(vector<string> &strs) { } }; 题意本身并不是很清晰,开始我的代码总是报Output Limit Exceeded,

【C#学习笔记】【5】找出0-100以内的所有的能被3整除或者被5整除余2的数(一)(流程控制)

我们思考一下怎么写这个程序.流程如下: 解释一下上面的流程图. 首先声明变量a=0: 判断一下a是否在0到100: 如果不在,则结束,如果在的话,我们再判断一下a是否能被3整除或者被5整除余2: 如果上一步真,则输出a,并且执行i++,然后循环至第二步,如果上一步为假,那么直接执行i++: 直至程序结束. 以上的过程不是很难理解,多看几次就明白了.问题在于我们之前学的知识无法解决这里的判断或者循环问题.今天我们就来学流程控制. 判断或者选择(if   esle) 先来介绍其语法格式,常见的有两种

[Python3 练习] 010 找出字符串中特定的字符

题目:找出藏在字符串中的"密码" (1) 描述 1) 题源1 鱼 C 论坛中"小甲鱼"老师出的题 链接地址:第020讲:函数:内嵌函数和闭包 | 课后测试题及答案 2) 题源2 这几日挺巧的 在鱼 C 论坛上找 Python 习题,点开第 20 节,看到两道操作题 又想起一个网站 Python Challenge ,久闻其名,未曾拜访,遂一探究竟 原来小甲鱼老师第 20 节的两道操作题改编自 Python Challenge 的 level2 与 level 3 2

Entity Framework 6 Recipes 2nd Edition(9-3)译-&gt;找出Web API中发生了什么变化

9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Frist实现数据访问管理. 本例,我们模拟一个N层场景,用单独的客户端(控制台应用)来调用单独的基于REST服务的Web网站(WEB API应用) . 注意:每层使用单独的Visual Studio 解决方案, 这样更方便配置.调试和模拟一个N层应用. 假设有一个如Figure 9-3所示的旅行社和预订

在一个SQL Server表中的多个列找出最大值

在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) DROP TABLE ##TestTable CREATE TABLE ##TestTable ( ID INT IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(40), UpdateByApp1Date DATE

找出矩阵中含有0最多的一行(find the longest row of zero)

对于一个n*n的矩阵,其中只包含有0,1两种元素且,所有的0都在1之前,请找出矩阵中0最多的一行.(Given an N-by-N matrix of 0s and 1s such that in each row no 0 comes before a 1, find the row with the most 0s in O(N) time.) 初看这题,想到的算法就是每一行都设置一个计数器,记录每行的0的个数,然后找出最大值即可(暴力解法). 算法实现: int* find_the_lon