• Linux网络监控工具 - iftop


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

    安装

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

    sudo apt-get install iftop
    
    • 1

    启动

    在终端中输入 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]
    
    • 1
    选项
    • -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 将统计的流量信息以实时更新的方式显示在终端界面上,以便用户实时监控网络流量。
  • 相关阅读:
    用于gin框架的CORS中间件,解决身份凭证和通配符不能同时设置问题,可同时配置附带身份凭证的请求和*通配符,chrome插件CORS跨域请求通配符
    代码随想录刷题day56 583. 两个字符串的删除操作;72. 编辑距离;编辑距离总结篇
    数字电子技术——半导体存储电路
    【Linux】进程概念(万字详解)—— 冯诺依曼体系结构 | 操作系统 | 进程
    Android JNI 引用分析
    Python编程基础:实验6——函数的递归
    详解动态规划
    点的数量对迭代次数的影响
    【NTN 卫星通信】卫星和无人机配合的应用场景
    使用云服务器作为跳板机器远程转发内网机器端口的jupyter服务
  • 原文地址:https://blog.csdn.net/i_love_t/article/details/133691867