Linux 命令:iftop

1. 写在前面

本文主要介绍 Linux iftop(Interface TOP) 命令:iftop 是一款小巧、免费且功能强大的网卡实时流量监控工具。监控指定网卡的实时流量、端口连接信息、反向解析 IP 等,还可以精确显示本机网络流量及网络内各主机和本机相互通信的流量集合,非常适合于监控代理服务器或路由器的网络流量。缺点:就是无报表功能,必须以root身份才能运行。

关注 公众号 获取最新博文: 滑翔的纸飞机

2. iftop 命令

2.1 安装

  • 基于 RedHat 的 Linux(版本 8 或以下)
yum install epel-release
yum install  iftop
  • 基于 RedHat 的 Linux
sudo dnf install epel-release
sudo dnf install iftop
  • Debian 或 Ubuntu Linux
sudo apt install iftop

2.2 常用参数

基本语法:

iftop -h | [-nNpblBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]

常用参数:

参数描述
-h显示简要的帮助信息
-n不进行 DNS 解析,直接 IP 显示
-N仅显示端口号,不显示服务对应名称
-p以混杂模式运行,因此不直接通过指定接口的流量也会被计算在内
-P显示主机和端口信息
-l显示和统计向链路本地 IPv6 地址寻址或从链路本地 IPv6 地址寻址的数据报。 默认情况下不显示该地址类别
-b不显示表示流量的图形条
-m窗口顶部输出流量刻度(“K”、"M "或 “G”),分 5 个大段显示 如:# iftop -m 100M
-Bbytes/sec 为单位显示网卡流量,默认是 bits/sec
-i指定网卡, 如:# iftop -i eth1
-f使用过滤码选择要计数的数据包。只计算IP数据包,因此指定的代码被评估为(过滤代码)和IP 如 iftop -f filter code
-F -net/mask显示特定网段的网卡进出流量(IPv4) 如: iftop -F 192.168.85.0/24
-G net6/mask6显示特定网段的网卡进出流量(IPv6)
-c指定可选的配置文件,如:iftop -c config file
-t使用不带 ncurses 的文本界面

2.3 窗口说明

在默认情况下 iftop 显示系统第一块网卡的流量信息,如果要显示指定网卡信息,可通过 -i 参数实现。

例如:执行 iftop -P -i ens3 命令
在这里插入图片描述

  • 第一部分

iftop 命令输出如上图所示,最上面红框为第一部分,此信息为流量刻度,主要用于显示网卡带宽流量。

  • 第二部分

上图,中间黄色方框即为第二部分,信息分为三列显示:

(1)第1、2列:显示当前哪些 IP 地址与当前主机哪些服务进行网络连接。其中第2列 => 代表发送数据,<= 代表接收数据,我们可以根据这个箭头符号可以快速定位 IP 服务之间通信情况;

(2)第3大列分三小列显示,表示各网络连接 2 秒内、10 秒内和 40 秒内的平均流量值。

另外,每条记录还有一个白色背景流量条形图,可动态展示当前该网络连接流量大小,参照第一部分流量刻度,可以对比各个网络连接流量大小,定位流量问题。例如:哪个服务占用网络带宽最多。

  • 第三部分

    上图,位于底部方框,分 4部分显示:
    第 1 部分:
    TX 表示发送数据;
    RX 表示接收数据;
    TOTAL 表示发送和接收全部流量;
    第 2 部分:
    cum 列: 表示从运行 iftop 到目前为止发送、接收和总数据流量;

    第 3 部分:
    peak 列:表示发送、接收以及总的流量峰值;

    第 4 部分:
    rates 列:表示过去 2s、10s、40s 平均流量值;

2.4 交互界面

iftop 实时网络监控窗口,可以进行交互式操作,类似 top 命令,主要对输出信息进行过滤、统计,便于将更清晰的信息显示出来。

查看交互命令:可在上图所示窗口中,键入 h 即可进入交互选项界面,如下图所示:
在这里插入图片描述
交互参数分为 4 块:”Host display“、”General“、”Port display“和”Sorting"。相关参数的含义如下表所示:

Host display:

参数描述
n输出结果以IP或主机名的方式显示
s可切换是否显示源主机信息
d可切换是否显示远端目标主机信息
t可切换 iftop 显示格式,连续按键依次显示:两行显示发送、接收流量,一行显示发送、接收流量;只显示发送流量/接收流量

General:

参数描述
P可切换暂停/继续显示
h可在交互参数界面/状态输出界面之间来回切换
b可切换是否显示平均流量图形条
B可切换显示2秒、10秒、40秒内的平均流量
T可切换是否显示每个连接的总流量
j/kj键或k键可以向上或向下滚动屏幕显示当前连接信息
l可打开iftop输出过滤功能,例如:输入要过滤 IP地址,回车后,仅显示 IP 相关的流量信息
L可切换显示流量刻度范围,同时,流量图形条会根据刻度变化
q可退出iftop流量监控界面

Port display:

参数描述
N可切换显示端口号/端口号对应服务名称
S可切换是否显示本地源主机的端口信息
D可切换是否显示远端目标主机的端口信息
p可切换是否显示端口信息

Sorting:

参数描述
1/2/3根据 2 秒、10 秒、40 秒的平均网络流量排序
<可根据左边的本地主机名或IP地址进行排序
>可根据远端目标主机的主机名或IP地址进行排序
o可切换是否固定显示当前的连接

2.5 使用命令示例

(1) 显示网卡的基本带宽使用情况
root@dev:~# iftop # 默认网卡

root@dev:~# iftop -i ens3 # 指定 ens3 网卡

在这里插入图片描述

(2) 显示 IP,不进行 DNS 解析
root@dev:~# iftop -i ens3 -n 

在这里插入图片描述
与上图相比,显示 IP 地址,不进行 DNS 解析。

(3) 只显示连接端口号,不显示端口对应的服务名称

‘’’
root@dev:~# iftop -i ens3 -N
‘’’
在这里插入图片描述

(4) 不显示流量图形条

在这里插入图片描述

(5) 使用不带 ncurses 的文本界面

在这里插入图片描述

(6) 其他更多参数示例
  • 按源地址对输出排序:
root@dev:~# iftop -o source
  • 按目的地地址对输出排序:
root@dev:~# iftop -o destination
  • 指定打印行数
root@dev:~# iftop -i ens3 -L 2
  • 显示端口号
root@dev:~# iftop -i ens3 -n -P
  • byte 为单位显示网卡流量,默认是 bit
root@dev:~# iftop -i ens3 -n -B
  • 显示流量进度条
root@dev:~# iftop -i ens3 -n

进入界面后按下大写 L

  • 显示每个连接的总流量
root@dev:~# iftop -i ens3 -n

进入界面后按下大写 T

  • 显示指定 ip 10.20.0.6 的流量
root@dev:~# iftop -i ens3 -n

进入界面后按下小写 l 后,再输入 10.20.0.6 并回车

  • 显示帮助信息
root@dev:~# iftop -h
iftop: display bandwidth usage on an interface by host

Synopsis: iftop -h | [-npblNBP] [-i interface] [-f filter code]
                               [-F net/mask] [-G net6/mask6]

   -h                  display this message
   -n                  don't do hostname lookups
   -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
... ...

2.6 案例:查找最耗费流量的 IP 和端口号

(1)进入 iftop 界面;
(2)键入大写 L 显示流量刻度;
(3)键入大写 T 显示总量;
(4)键入 3,根据最近 40s 平均值统计排序;
(5)键入小写 t,发送和接受以一行显示;
(6)多按几次大写 B,切换查看最近 2s、10s、40s 的统计;
在这里插入图片描述

(7)图中的 10.20.0.6 就是我们找到的流量用得最多的 IP;
(8)筛选指定 IP 10.20.0.6,按下小写 l, 输入10.20.0.6,回车后生效;
(9)找到这个 IP 哪个端口流量用得最多,按下 p, 根据端口号显示;
在这里插入图片描述

感谢您花时间阅读文章!
关注公众号不迷路!
  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值