Linux 网络流量监控利器 iftop命令详解及实战
-
简介
iftop 是什么
在 Linux 系统下即时监控服务器的网络带宽使用情况,有很多工具,比如 iptraf、nethogs 等等,但是推荐使用小巧但功能很强大的 iftop 工具。
iftop 是 Linux 系统一个免费的网卡实时流量监控工具,类似于 top 命令。iftop 可以监控指定网卡的实时流量、端口连接信息、反向解析 IP 等,还可以精确显示本机网络流量及网络内各主机和本机相互通信的流量集合,非常适合于监控代理服务器或路由器的网络流量。
同时,iftop 对检测流量异常的主机非常有效,通过 iftop 的输出可以迅速定位主机流量异常的根源,这对于网络故障排查、网络安全检测是十分有用的。缺点就是无报表功能,且必须以 root 身份才能运行。
-
安装
这里使用Centos完成下面的实验
[root@pro-176 ~]# yum -y install iftop
-
常用参数
-i
指定需要检测的网卡, 如果有多个网络接口,则需要注意网络接口的选择,如:# iftop -i eth0,默认是选择第一块网卡-B
将输出以 byte 为单位显示网卡流量,默认是 bit- -
n
将输出的主机信息都通过 IP 显示,不进行 DNS 解析 -N
只显示连接端口号,不显示端口对应的服务名称-F
显示特定网段的网卡进出流量 如: iftop -F 192.168.85.0/24-h
帮助,显示参数信息-p
以混杂模式运行 iftop,此时 iftop 可以用作网络嗅探器-P
显示主机以及端口信息-m
设置输出界面中最上面的流量刻度最大值,流量刻度分 5 个大段显示 如:# iftop -m 100M-f
使用筛选码选择数据包来计数 如 iftop -f filter code-b
不显示流量图形条-c
指定可选的配置文件,如:iftop -c config file-t
使用不带 ncurses 的文本界面,
以下两个是只和 -t 一起用的:
-s
num num 秒后打印一次文本输出然后退出,-t -s 60 组合使用,表示取 60 秒网络流量输出到终端
-L
num 打印的行数-f
参数支持 tcpdump 的语法,可以使用各种过滤条件。
-
界面操作
4.1. 界面信息
安装完 iftop 工具后,直接输入 iftop 命令即可显示网卡实时流量信息。在默认情况下,iftop 显示系统第一块网卡的流量信息,如果要显示指定网卡信息,可通过“-i”参数实现。执行“iftop -P -i eth0”命令,得到如下图所示的 iftop 的一个典型输出界面。iftop -P -i eth0
-
-i
指定网卡 -
-P
显示主机以及端口信息
-
第一部分
iftop 输出中最上面的一行,此行信息是流量刻度,用于显示网卡带宽流量。
-
第二部分
此部分为分割线中间的部分,其中又分别分为左、中、右三列。左列和中列,记录了哪些 IP 或主机正在和本机的网络进行连接。其中,中列的“=>”代表发送数据,“<=”代表接收数据,通过这个指示箭头可以很清晰地知道两个 IP 之间的通信情况。最右列又分为三小列,这些实时参数分别表示外部 IP 连接到本机 2 秒内、10 秒内和 40 秒内的平均流量值。
另外,这个部分还有一个流量图形条,流量图形条是对流量大小的动态展示,以第一部分中的流量刻度为基准。通过这个流量图形条可以很方便地看出哪个 IP 的流量最大,进而迅速定位网络中可能出现的流量问题。
=> 向客户端发送数据
<= 接收客户端的数据连续点击
t
可以切换模式 -
第三部分
位于 iftop 输出的最下面,可以分为三行,其中,“TX”表示发送数据,“RX”表示接收数据,“TOTAL”表示发送和接收全部流量。与这三行对应的有三列,其中“cum”列表示从运行 iftop 到目前的发送、接收和总数据流量。“peak”列表示发送、接收以及总的流量峰值。“rates”列表示过去 2s、10s、40s 的平均流量值。
TX
: 发送给客户端的数据
RX
: 接收来自客户端的数据
TOTAL
: 表示发送和接收全部流量cum
: 表示从运行 iftop 到目前的发送、接收和总数据流量
peak
: 表示发送、接收、以及总的流量峰值。
rates
: 表示过去 2s、10s、40s 的平均流量值。
4.2. 交互操作
在 iftop 的实时监控界面中,还可以对输出结果进行交互式操作,用于对输出信息进行整理和过滤,在上图所示界面中,按键 “h”
即可查看,选择参数后按h
返回,如下图所示。iftop 的交互功能和 Linux 下的 top 命令非常类似,交互参数主要分为 4 个部分,分别是一般参数
、主机显示参数
、端口显示参数
和输出排序参数
。相关参数的含义如下表所示。
参数 | 含义 |
---|---|
P | 通过此键可切换暂停/继续显示 |
h | 通过此键可在交互参数界面/状态输出界面之间来回切换 |
b | 通过此键可切换是否显示平均流量图形条 |
B | 通过此键可切换显示2秒、10秒、40秒内的平均流量 |
T | 通过此键可切换是否显示每个连接的总流量 |
j/k | 按j键或k键可以向上或向下滚动屏幕显示当前的连接信息 |
l | 通过此键可打开iftop输出过滤功能,比如输入要显示的IP,按回车后,屏幕就只显示与这个IP相关的流量信息 |
L | 通过此键可切换显示流量刻度范围,刻度不同,流量图形条会跟着变化 |
q | 通过此键可退出iftop流量监控界面 |
n | 通过此键可使iftop输出结果以IP或主机名的方式显示 |
s | 通过此键可切换是否显示源主机信息 |
d | 通过此键可切换是否显示远端目标主机信息 |
t | 通过此键可切换iftop显示格式,连续按此键可依次显示:以两行显示发送接收流量、以一行显示发送接收流量、只显示发送流量/接收流量 |
N | 通过此键可切换显示端口号/端口号对应服务名称 |
S | 通过此键可切换是否显示本地源主机的端口信息 |
D | 通过此键可切换是否显示远端目标主机的端口信息 |
p | 通过此键可切换是否显示端口信息 |
1/2/3 | 根据最近 2 秒、10 秒、40 秒的平均网络流量排序 |
< | 通过此键可根据左边的本地主机名或IP地址进行排序 |
> | 通过此键可根据远端目标主机的主机名或IP地址进行排序 |
o | 通过此键可切换是否固定显示当前的连接 |
-
使用示例
5.1. 显示网卡eth0的信息,主机通过ip显示[root@pro-176 ~]# iftop -i eth0 -n
-i
指定网卡- -
n
将输出的主机信息都通过 IP 显示,不进行 DNS 解析
5.2. 显示端口号(添加-P参数,进入界面可通过p参数)
[root@pro-176 ~]# iftop -i eth0 -n -P
-
-i
指定网卡 -
-n
将输出的主机都通过IP显示,不进行DNS解析 -
-P
显示主机以及端口号信息
5.3. 显示将输出以byte为单位显示网卡流量,默认是bit[root@pro-176 ~]# iftop -i eth0 -n -B
-
-i
指定网卡 -
-n
将输出的主机都通过IP显示,不进行DNS解析 -
-B
将输出以byte为单位显示
5.4. 显示流量进度条iftop -i eth0 -n
在交互界面按
L
显示流量进度条 -
-i
指定网卡名称 -
-n
将输出的主机都通过IP显示,不进行DNS解析
5.5. 显示每个连接的总流量
iftop -i eth0 -n
在交互界面按
T
显示每个连接的总流量 -
-i
指定网卡名称 -
-n
将输出的主机都通过IP显示,不进行DNS解析
5.6. 显示指定IP 192.168.0.71的流量iftop -i eth0 -n
在交互界面按
l
筛选你要查看的ip地址,回车确定 -
-i
指定网卡名称 -
-n
将输出的主机都通过IP显示,不进行DNS解析
-
实战
下面我们将通过找出最耗费流量的 IP 和端口号这一具体实例,来演示 iftop 强大的功能。
6.1. 进入界面iftop -i eth0 -nNB -m 10M
-i
指定网卡名称-n
将输出的主机都通过IP显示,不进行DNS解析-N
只显示连接端口号,不显示端口对应的服务名称(不加会显示如ssh这样的服务名称,不便于排查)B
指定显示单位为Kb,默认是bit,不利于计算-m
设置输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示
6.2. 按L
显示流量刻度
可以找出流量峰值最高的ip
6.3. 按T
显示总量
可以查看接收和发送的流量总和
6.4. 按下3,根据最新40s统计排序
用平均值来统计最权威点
交互界面下
-
1/2/3
根据最近 2 秒、10 秒、40 秒的平均网络流量排序
6.5. 按下t
,发送和接收合成一行
6.6. 多按几次B,查看最近2s,10s,40s的统计交互界面下
-
B
通过此键可切换显示2秒、10秒、40秒内的平均流量
通过这里就能查看出 192.168.0.71是最耗费流量的ip
6.7. 赛选指定IP 192.168.0.71
按下l
筛选192.168.0.71
,回车确认
交互界面下
l
筛选指定内容
到这里就能查看到192.168.0.71这个ip的流量监控了
6.8. 找出这个IP下,哪个端口流量用的最多
按下p
回车确认
交互界面下
p
通过此键可切换是否显示端口信息B
通过此键可切换显示2秒、10秒、40秒内的平均流量
到此使用iftop监控流量使用情况就已经学会了
参考链接: http://t.cn/A6tM3oLg
相关文章:

Linux 网络流量监控利器 iftop命令详解及实战
简介 iftop 是什么 在 Linux 系统下即时监控服务器的网络带宽使用情况,有很多工具,比如 iptraf、nethogs 等等,但是推荐使用小巧但功能很强大的 iftop 工具。 iftop 是 Linux 系统一个免费的网卡实时流量监控工具,类似于 top 命令…...

protected by SourceGuardian and requires a SourceGuardian loader ‘ixed.8解决方案
php相关问题 安装程序提示以下内容 遇到某些php程序的安装提示: PHP script ‘/www/wwwroot/zhengban.youyacao.com/install/index.php’ is protected by SourceGuardian and requires a SourceGuardian loader ‘ixed.8.1.lin’ to be installed. 1) Click her…...
KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(14)
接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(13) 上一回讲完了drivers/gpu/drm/drm_framebuffer.c中的framebuffer_check函数中的第一个for循环,本回继续讲解framebuffer_check()接下来的代码。为了便于理解,再次贴出其源码,如下所示: static …...

2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消
2023-macOS下安装anaconda,终端自动会出现(base)字样,如何取消 安装后,我们再打开终端,就会自动出现了(base) 就会出现这样子的,让人头大, 所以我们要解决它 具体原因是 安装了anac…...

Nginx搭载负载均衡及前端项目部署
目录 编辑 一.Nginx安装 1.安装所需依赖 2.下载并解压Nginx安装包 3.安装nginx 4.启动Nginx服务 二.Tomcat负载均衡 1.准备环境 1.1 准备两个Tomcat 1.2 修改端口号 1.3 配置Nginx服务器集群 2.效果展示 编辑三.前端项目打包 编辑四.前端项目部署 1.上传项目…...
深度学习——炼丹
学习率调整策略 自定义学习率调整策略 简单版 net MyNet()optimoptim.Adam(net.parameters(),lr0.05) for param_group in optim.param_groups: param_group["lr"] param_group["lr"]*0.5print(param_group["lr"]) #0.25复杂版&#…...

Matlab中的app设计
1.窗口焦点问题: 窗口焦点问题:确保你的应用程序窗口正常处于焦点状态。有时,其他窗口的弹出或焦点切换可能导致应用程序最小化。点击应用程序窗口以确保它处于焦点状态。 窗口管理:确保你的 MATLAB 或操作系统没有未处理的错误或…...
曾经遇到过的无法解释的问题
因为不能直接展示生产数据与生产数据结构,所以写一个简单的例子 class Stu{ private String name; private int age; getter setter constructor 略 } List<Stu> list new ArrayList(); list.add(new Stu("s1",16)); list.add(new Stu("…...

基于uniapp与uview做一个按拼音首字母排序的通讯录页面
效果图: 第一步导入pinyin库并应用,用于区分汉字的拼音首字母 npm i pinyin import pinyin from "pinyin" 完整算法: function getListByPinyinFirstLetter(data) {const newList {};for (const item of data) {let firstLett…...

网络工程师-入门基础课:华为HCIA认证课程介绍
【微/信/公/众/号:厦门微思网络】 华为HCIA试听课程:超级实用,华为VRP系统文件详解 华为HCIA试听课程:不会传输层协议,HCIA都考不过 华为HCIA试听课程:网络工程师的基本功:网络地址转换NAT 一…...

玻色量子成功研制光量子计算专用光纤恒温控制设备——“量晷”
近日,北京玻色量子科技有限公司(以下简称“玻色量子”)成功研制出一款高精度量子计算专用光纤恒温控制设备——“量晷”,该设备能将光纤的温度变化稳定在千分之一摄氏度量级,即能够做到0.001C的温度稳定维持…...

力扣:147. 对链表进行插入排序(Python3)
题目: 给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,…...

OpenCV4(C++)——形态学(腐蚀、膨胀)
文章目录 一、腐蚀(erode)二、膨胀(dilate)三、形态学操作四、总结 一、腐蚀(erode) OpenCV 4提供了用于图像腐蚀的erode()函数。 void cv::erode(src, dst, kernel, anchor, iterations, borderType, bo…...
C++设计模式_24_Visitor 访问器
Visitor 访问器也是属于“行为变化”模式。 文章目录 1. 动机( Motivation)2. 代码演示Visitor 访问器3. 模式定义4. 结构(Structure)5. 要点总结6. 其他参考1. 动机( Motivation) 在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基…...

el-tabel表格加个多选框
<template><div><el-checkbox v-model"checked" :disabled"checkedDis" change"onAllSelectChange">多选框</el-checkbox>点击多选框,禁用列表复选框<el-table ref"multipleTable" :data"…...

Go语言集成开发环境(IDE):GoLand 2023中文
GoLand 2023是一款由JetBrains开发的现代化、功能丰富的Go语言集成开发环境(IDE)。它提供了智能代码提示和自动完成、强大的内置调试器以及代码重构工具,帮助开发者提高编码效率并确保代码质量。GoLand 2023还支持多种版本控制系统࿰…...

opencv c++ canny 实现 以及与halcon canny的对比
Opencv和C实现canny边缘检测_opencv边缘增强-CSDN博客 一、canny实现步骤 1、图像必须是单通道的,也就是说必须是灰度图像 2、图像进行高斯滤波,去掉噪点 3、sobel 算子过程的实现,计算x y方向 、梯度(用不到,但是…...

阿里云无影升级2.0 云电脑解决方案时代到来
10月31日,杭州云栖大会上,阿里云宣布无影全新升级2.0:从云电脑到云上解决方案,帮助中小企业更便捷地构建云上办公,并开放无影产品及解决方案能力,为生态合作伙伴提供企业云平台,帮助其打造定制化…...

【案例展示】多物理场仿真软件介绍
本期案例来自上海交通大学微波与射频研究中心团队,团队针对集成电路技术发展过程中面临的挑战,通过FastCAE平台对自研多物理场仿真求解器进行功能拓展与集成,使用户可基于不同的电、热、应力场景和仿真需求,灵活设定参数进行快速准…...
k8s的RBAC中,clusterrole, rolebinding 是什么关系谁先谁后
在Kubernetes中,Role-Based Access Control(RBAC)用于控制集群中不同用户、服务账号或组的访问权限。ClusterRole 和 RoleBinding 是两个关键的 RBAC 组件,它们之间的关系是 ClusterRole 定义了一组权限规则,而 RoleBi…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...