Linux网络监控工具 - iftop

news2024/9/24 19:18:46

iftop 是一个基于 libpcap 库的网络流量监控工具。它通过监听指定网络接口上的数据包,并分析这些数据包的源地址、目标地址、源端口、目标端口、协议等信息,从而实时显示网络流量的相关统计信息。

安装

在大多数Linux发行版中,您可以使用包管理器来安装 iftop。例如,在Ubuntu/Debian上,可以使用以下命令安装:

sudo apt-get install iftop

启动

在终端中输入 iftop 命令即可启动 iftop。默认情况下,它会显示所有正在进行的网络连接的信息。
直接运行 iftop 后的样子

界面说明

标准视图,端口显示关闭,每对主机两行
在这里插入图片描述

主机名隐藏,显示源端口,每对主机一行=按服务划分的网络流量
在这里插入图片描述

  • 顶部:流量刻度尺,刻度分五个大段显示。数据行的流量条与之对应。
  • 数据行:显示实时的网络流量信息,每一行表示一个网络连接。
    • 本主机信息;
    • 目标主机信息; => 箭头表示流量方向,=>代表发送数据,<=代表接收数据;
    • 流量数据,这些实时参数分别表示主机间 2秒内10秒内40秒内的平均流量值;
  • 底部:显示当前的总发送和接收流量、平均发送和接收速率,以及当前的流量峰值。
    • TX 表示发送数据
    • RX 表示接收数据
    • TOTAL 表示发送和接收全部流量
    • cum 表示从运行iftop到目前的发送、接收和总数据流量
    • peak 表示发送、接收以及总的流量峰值
    • rates 表示过去2s、10s、40s的平均流量值

用法

语法
 iftop -h | [-npblNBP] [-i interface] [-f filter code]  [-F net/mask] [-G net6/mask6]
选项
  • -h
    display this message
    帮助信息
  • -n
    don’t do hostname lookups
    不要进行主机名查找,第一列默认显示的是hostname,加上该参数后就直接显示为IP
  • -N
    don’t convert port numbers to services
    只显示连接端口号,不显示端口对应的服务名称
  • -p
    run in promiscuous mode (show traffic between other hosts on the same network segment)
    以混杂模式运行(显示其他同一网段上的主机)
  • -b
    don’t display a bar graph of traffic
    不显示流量条形图
  • -B
    display bandwidth in bytes
    以字节为单位的显示带宽
  • -a
    display bandwidth in packets
    以数据包形式显示带宽
  • -i interface
    listen on named interface
    指定需要检测的网卡,默认为第一个活动网卡, 一般为 eth0
  • -f filter code
    use filter code to select packets to count (default: none, but only IP packets are counted)
    设置过滤规则,只显示符合规则的网络流量。
    过滤规则可以使用BPF(Berkley Packet Filter)语法,它允许您根据源IP地址、目标IP地址、端口号等条件进行过滤。
    例如,要只显示源IP地址为192.168.1.10的流量,可以使用以下过滤规则:iftop - -f “src host 192.168.1.10”
  • -F net/mask
    show traffic flows in/out of IPv4 network
    显示进出IPv4网络的流量
  • -G net6/mask6
    show traffic flows in/out of IPv6 network
    显示进出IPv6网络的流量
  • -l
    display and count link- -local IPv6 traffic (default: off)
    显示和计数链路本地IPv6流量(默认值:关闭)
  • -P
    show ports as well as hosts
    显示端口和主机
  • -m limit
    sets the upper limit for the bandwidth scale
    设置条形图带宽范围的上限,流量刻度分 5 个大段显示 如:# iftop - -m 100M
  • -c config file
    specifies an alternative configuration file
    指定可选的配置文件
  • -t
    use text interface without ncurses
    使用没有ncurses的文本界面
    排序选项
  • -o 2s
    Sort by first column (2s traffic average)
    按第一列(2秒流量平均值)排序
  • -o 10s
    Sort by second column (10s traffic average) [default]
    按第二列(10s 流量平均值)[默认值]排序
  • -o 40s
    Sort by third column (40s traffic average)
    按第三列(平均流量40秒)排序
  • -o source
    Sort by source address
    按源地址排序
  • -o destination
    Sort by destination address
    按目标地址排序

以下选项仅与- -t组合使用

  • -s num
    print one single text output afer num seconds, then quit
    在数秒内打印一个文本输出,然后退出;,-t -s 60 组合使用,表示取 60 秒网络流量输出
  • -L num
    number of lines to print
    要打印的行数
运行时命令
Host display
  • n - toggle DNS host resolution 切换DNS主机解析
  • s - toggle show source host 切换显示本主机Host
  • d - toggle show destination host 切换显示目标主机Host
  • t - cycle line display mode 切换显示模式,没对主机显示1/2行
Port display
  • N - toggle service resolution 切换显示端口号或端口服务名称
  • S - toggle show source port 切换是否显示本机的端口信息
  • D - toggle show destination port 切换是否显示远端目标主机的端口信息
  • p - toggle port display 切换是否显示端口信息
General
  • P - pause display 暂停/继续显示
  • h - toggle this help display 切换帮助信息和主页面
  • b - toggle bar graph display 切换是否显示平均流量图形条
  • B - cycle bar graph average 切换流量图形条为 2秒或10秒或40秒内的平均流量
  • T - toggle cumulative line totals 切换是否显示每个连接的总流量
  • j/k - scroll display 可以向上或向下滚动屏幕显示的连接记录
  • f - edit filter code 编辑过滤代码
  • l - set screen filter 打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息
  • L - lin/log scales 切换显示画面上边的刻度
  • ! - shell command 使用shell命令
  • q - quit 退出
Sorting
  • 1/2/3 - sort by 1st/2nd/3rd column 根据右侧显示的三列流量数据进行排序
  • < - sort by source name 根据本主机信息列排序
  • > - sort by dest name 根据远端目标主机列排序
  • o - freeze current order 切换是否固定只显示当前的连接

工作原理

iftop 的工作原理可以概括为以下几个步骤:

  1. 打开指定的网络接口:iftop 首先会打开用户指定的网络接口,如 eth0、wlan0 等。
  2. 抓取数据包:iftop 使用 libpcap 库来抓取从指定网络接口上收到的数据包。libpcap 是一个网络数据包捕获库,它可以在不同的操作系统上进行网络数据包捕获。
  3. 解析数据包:iftop 对抓取到的数据包进行解析,提取出数据包中的源地址、目标地址、源端口、目标端口、协议等信息。
  4. 统计流量信息:iftop 根据解析到的数据包信息,统计并计算出每个网络连接的发送速率和接收速率,以及总的发送流量和接收流量。
  5. 实时显示信息:iftop 将统计的流量信息以实时更新的方式显示在终端界面上,以便用户实时监控网络流量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1074732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式学习(十一)责任链模式

目录 一、定义1.1 主要成员1.2 优点1.3 缺点 二、使用场景2.1 Spring Security 中的应用 三、代码示例3.1 实现思路3.2 实体类3.3 抽象处理者3.4 具体处理者1&#xff09;责任链容器2&#xff09;校验-用户名3&#xff09;校验-密码4&#xff09;校验-手机号 3.4 客户端&#x…

windows平台FairMOT的实现

环境&#xff1a;python3.6pytorch1.1.0torchvision0.3.0cuda9.2vs2015 该项目需要装3个c库&#xff08;dcn_v2&#xff0c;apex&#xff0c;cython_bbox&#xff09;特别坑&#xff0c;各种环境不匹配&#xff0c;各种bug。本人c小白&#xff0c;但是一路摸索总算成功了。下面…

【Redis学习1】Redis持久化机制详解

Redis持久化机制详解 一、Redis为什么需要持久化机制 Redis一般用作缓存&#xff0c;其数据存储在内存中&#xff0c;当Redis宕机后&#xff0c;内存中的数据将会丢失。因此使用缓存的时候&#xff0c;我们经常需要对内存中的数据进行持久化也就是将内存中的数据写入到硬盘中…

vscode ssh linux C++ 程序调试

vscode调试c++程序相比vs2022要复杂很多,vs2022可以"一键运行调试",vscode则需要自己配置。 ​vscode调试程序时,会在当前工作目录产生.vscode 目录, 该目录有两个重要文件launch.json和tasks.json, 下面介绍两种调试方法: 手动调试和自动调试。 手动调试 不管…

k8s安全机制

安全机制 一、机制说明二、认证&#xff08;Authentication&#xff09;HTTP Token 认证HTTP Base 认证HTTPS 证书认证&#xff08;最严格&#xff09; 三、鉴权&#xff08;Authorization&#xff09;角色角色绑定主体&#xff08;subject&#xff09;Role and ClusterRoleRol…

实现一个简单的线性回归和多项式回归(2)

对于多项式回归&#xff0c;可以同样使用前面线性回归中定义的LinearRegression算子、训练函数train、均方误差函数mean_squared_error&#xff0c;生成数据集create_toy_data,这里就不多做赘述咯~ 拟合的函数为 def sin(x):y torch.sin(2 * math.pi * x)return y1.数据集的建…

3、在 CentOS 8 系统上安装 PostgreSQL 15.4

PostgreSQL&#xff0c;作为一款备受欢迎的开源关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;已经存在了三十多年的历史。它提供了SQL语言支持&#xff0c;用于管理数据库和执行CRUD操作&#xff08;创建、读取、更新、删除&#xff09;。 由于其卓越的健壮性…

Linux网络监控工具 - nethogs

nethogs 是一个基于命令行的网络监控工具&#xff0c;用于实时监视每个进程的网络流量。它可以显示每个进程使用的带宽、连接数和数据包数量等信息。 安装 在大多数Linux发行版中&#xff0c;您可以使用包管理器来安装 nethogs。例如&#xff0c;在Ubuntu/Debian上&#xff0c…

【Java 进阶篇】CSS语法格式详解

在前端开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;用于控制网页的样式和布局。了解CSS的语法格式是学习如何设计和美化网页的关键。本文将深入解释CSS的语法格式&#xff0c;包括选择器、属性和值等基本概念&#xff0c;同时提供示例代码以帮助初学者更好地理解。…

【单片机】18-红外线遥控

一、红外遥控背景知识 1.人机界面 &#xff08;1&#xff09;当面操作&#xff1a;按键&#xff0c;旋转/触摸按键&#xff0c;触摸屏 &#xff08;2&#xff09;遥控操作&#xff1a;红外遥控&#xff0c;433M/2.4G无线通信【穿墙能力强】&#xff0c;蓝牙-WIFI-Zigbee-LoRa等…

WPFdatagrid结合comboBox

在WPF的DataGrid中希望结合使用ComboBox下拉框&#xff0c;达到下拉选择绑定的效果&#xff0c;在实现的过程中&#xff0c;遇到了一些奇怪的问题&#xff0c;因此记录下来。 网上能够查询到的解决方案&#xff1a; 总共有三种ItemSource常见绑定实现方式&#xff1a; 1.ItemS…

【bug日记】spring项目使用配置类和测试类操作数据库

最近学校课程要求使用spring操作数据库&#xff0c;时间有点久了&#xff0c;操作都不太熟悉了&#xff0c;遇到了很多坑&#xff0c;特此记录一下。 导入依赖 <!-- Spring Framework --> <dependency><groupId>org.springframework</groupId><ar…

用Nginx搭建一个可用的静态资源Web服务器

sudo wget http://dlib.net/files/dlib-19.24.tar.bz2下载需要的文件。 sudo tar jxf dlib-19.24.tar.bz2进行解压。 sudo mkdir /nginx/dlib在nginx安装目录/nginx创建一个新的目录dlib。 配置文件里边的内容如下&#xff1a; worker_processes 1; events {worker_con…

如何批量获取1688商品详情数据接口,1688商品详情数据接口

批量获取1688商品详情数据接口的步骤如下&#xff1a; 获取API接口权限。编写API请求代码。应用爬取下来的数据。 1688商品详情数据接口步骤如下&#xff1a; 注册成为1688开放平台的开发者&#xff0c;并创建一个应用&#xff0c;获取到所需的App Key和App Secret等信息。使…

SpringBoot 如何使用 Prometheus 进行监控

在当今的软件开发世界中&#xff0c;监控是至关重要的一部分。它允许开发人员和运维团队实时跟踪应用程序的性能、可用性和健康状况。Spring Boot是一个流行的Java框架&#xff0c;用于构建微服务和Web应用程序&#xff0c;而Prometheus是一个开源的监控和警报工具。本文将介绍…

数据结构和算法——线性结构

文章目录 前言线性表顺序表链表合并有序链表反转链表 队列循环队列双端队列资源分配问题 栈共享栈表达式求值递归处理迷宫问题 串串的模式匹配BF算法KMP算法next数组的求解next数组的优化 前言 本文所有代码均在仓库中&#xff0c;这是一个完整的由纯C语言实现的可以存储任意类…

spark-08

学习视频&#xff1a; 黑马程序员Spark全套视频教程&#xff0c;4天spark3.2快速入门到精通&#xff0c;基于Python语言的spark教程_哔哩哔哩_bilibili

增强LLM:使用搜索引擎缓解大模型幻觉问题

论文题目&#xff1a;FRESHLLMS:REFRESHING LARGE LANGUAGE MODELS WITH SEARCH ENGINE AUGMENTATION 论文地址&#xff1a;https://arxiv.org/pdf/2310.03214.pdf 论文由Google、University of Massachusetts Amherst、OpenAI联合发布。 大部分大语言模型只会训练一次&#…

Spring Data Redis使用方式

1.导入Spring Data Redis的maven坐标 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2. 配置Redis数据源 2.1application.yml文件…

idea compile项目正常,启动项目的时候build失败,报“找不到符号”等问题

1、首先往上找&#xff0c;看能不能找到如下报错信息 You aren’t using a compiler supported by lombok, so lombok will not work and has been disabled. 2、这种问题属于lombok编译失败导致&#xff0c;可能原因是依赖jar包没有更新到最新版本 3、解决方案 1&#xff09…