0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何Linux使用iftop命令

CHANBAEK 来源:myfreax 作者:myfreax 2023-04-10 15:18 次阅读

iftop 用于在指定的接口监控网络流量,如果没有指定接口(网卡),它可以在第一个接口,或者搜索一个看起来是连接外部的接口。然后按主机活动连接显示当前带宽。

要使用 iftop 命令监控网络接口的流量,你必须以 root 或者具有 sudo 权限的用户运行 iftop 命令。

在本教程中,我们将说明如何 Linux 使用 iftop 命令监控指定接口的网络流量,查看当前已建立的网络连接的速度等。

iftop 命令

默认情况下,iftop 会解释与它在数据包中找到的地址关联的主机名。这可能会导致大量的流量,并可能导致显示混乱。

你可以使用 iftop 命令的 -n 选项,禁用主机名的解释。如果在正在运行的 iftop 会话中可以按 n 键打开或者关闭主机名的 DNS 解释。

默认情况下,iftop 统计通过过滤器的所有 IP 数据包,并根据数据包穿过接口的方向确定数据包的方向。

使用 -F 选项可以让 iftop 显示进入和离开指定定网络的数据包。例如,iftop -F 10.0.0.0/255.0.0.0 将分析流入和流出 10.* 段网络的数据包。

iftop 命令详解

sudo iftop

当不指定任何选项与参数运行 iftop 时,iftop 会使用整个屏幕显示网络的带宽用法,显示屏顶部是条形图的对数刻度的视觉指示。

屏幕的主要部分列出已连接主机在 2、10 和 40 秒时间间隔内发送和接收数据的速率。数据流的方向由箭头 <= 和 => 指示。例如:

本地主机名称   已连接的远程主机        2s   10s  40s
myfreax  =>  www.myfreax.com      1Kb  500b 100b
         <=                       2Mb  2Mb  2Mb

在这个示例中,我们可以看到 myfreax 的本地主机与远程主机 www.myfreax.com 2秒前发送的数据速度是 1 kb, 10秒前是 500 b,40秒前100 b。

注意 b 的单位不是字节,是 bit/s 单位的缩写,1 kb 也就是 1 kbit/s,2mb 就是 2 mbit/s。

同样你也就理解 myfreax 主机从 www.myfreax.com 主机接收数据的速度,在 2 秒,10 秒前,40 秒前都是 2mb,也就是速度没有任何变化。

屏幕的底部,显示各种总计,包括过去 40 秒的峰值流量、传输的总流量(过滤后)以及 2 秒、10 秒和 40 秒的平均总传输速率。

Tx 表示发送,Rx 表示接收,cum 表示累计值,Total 表示发送和解释的总和,Rate表示网络速度。例如:

TX:    cum: 400KB      peak:34.8Kb  Rattes: 21kb 32kb 6.6kb
RX:			900KB			 34.8Kb	         3kb 3kb 8kb
Total:		1.30MB		     34.8Kb		     21kb 32kb 6.6kb

在上面的示例中,我们可以看到发送累计值是 400KB,峰值是 34.8 KB, 2 秒、10 秒和 40 秒的平均总传输速率分别是 21kb 32kb 6.6kb。

接收的累计值是 900KB,峰值是 34.8 KB, 2 秒、10 秒和 40 秒的平均总传输速率分别是 3kb 3kb 68kb。

快捷键

当你进入 iftop 会话时,你可以使用以下快捷键,切换 iftop 的显示方式或者按 f 添加过滤器。

  • h:显示帮助菜单
  • n:开启 / 关闭主机名的 DNS 解析,如果可以 iftop 可以将 IP 地址解释为主机名则显示主机的名称,否则显示 IP 地址。
  • N:开启 / 关闭服务名称的解释,例如,本地主机连接远程的主机的 443 端口,iftop 将会在远程主机 IP 地址后面添加服务的名称 www.myfreax.com:https。
  • p:开启 / 关闭目标和源端口的显示
  • P:暂停刷新屏幕,注意:
  • 这仅仅暂停主要窗口部分的刷新,屏幕底部的统计值依然自动刷新。
  • s:显示或者隐藏源主机的 IP 或主机名。
  • S:显示 / 关闭源端口。
  • t:切换显示发送和接收流量的三种方式,第一种是仅显示发送的流量,第二种是仅显示接收的流量,同时发送和接收的流量,也就是启动时的默认模式。
  • T:显示 / 关闭发送与接收流量统计,这将会在 2s 10s 40s 速率之前添加一列显示累计值。
  • q:退出 iftop

排序

  • j / k:分别是向下和向上滚动,当屏幕不足以显示所有连接时。
  • <:通过源名称的排序。
  • :通过目标名称排序。

  • 1/2/3:通过第一,第二,第三列进行排序。
  • o:冻结排序方式,由于 iftop 是不断滚动所有连接,关闭 iftop 滚动连接,可以按 o 键。

过滤器

iftop 支持一些过滤器来过滤显示的内容。要使用基于 iftop 的过滤器,可以在 iftop 命令的 -f 选项之后跟一个过滤器表达式,也可以在 iftop 会话中使用 f 键设置过滤器。

iftop 使用 pcap-filter 作为数据包的过滤器,你可以根据 pcap-filter 过滤器语法,编写 iftop 过滤器表达式。

值得一提的在 iftop 会话按 f 键输入的过滤器表达式也可用于在 -f 选项后面设置的表达式。也就是说语法上没有差别。

Net filter> src host 192.168.1.100
#eq
iftop -f "src host 192.168.1.100"

基于 IP 地址过滤

要使用基于 IP 地址的过滤器,可以在 iftop 命令后跟一个基于 IP 的过滤器表达式,如下所示:

iftop -f "src host 192.168.1.100"

上面的命令将仅显示来自 IP 地址为 192.168.1.100 的主机的流量,src host 语法表示设置来源主机。

要使 iftop 仅显示目标地址为 8.8.8.8 的流量,请运行命令 iftop -f "dst host 8.8.8.8"

iftop -f "dst host 8.8.8.8"

除了指定设置目标和源过滤之外,也可以使用 CIDR 格式的 IP 地址,例如:

iftop -f "src net 192.168.0.0/16"

上面的命令将显示源地址在 192.168.0.0/16 网段主机的流量。

基于端口过滤

iftop 可以通过基于端口的过滤器来监控指定端口的网络流量。要使用基于端口的过滤器,可以在 iftop 命令后面加上一个端口过滤器表达式,如下所示:

iftop -f "port 80"

iftop -f "port 80" 命令只显示端口 80 的网络流量,即 HTTP 流量。您还可以使用逗号将多个端口号连接在一起,例如:

iftop -f "port 80,443"

iftop -f "port 80,443" 命令仅显示端口 80 或 443 的网络流量,即 HTTP 或 HTTPS 流量。您还可以使用运算符 NOT 排除特定的端口,例如:

iftop -f "not port 22"

iftop -f "not port 22" 命令将显示除 SSH(端口号22)之外的所有流量。

基于 IP 地址和端口的过滤器

您还可以结合 IP 地址和端口来过滤网络流量,例如:

iftop -f "src host 192.168.1.100 and dst port 80"

iftop -f "src host 192.168.1.100 and dst port 80" 命令仅显示来自 IP 地址 192.168.1.100 并且目标端口为 80 的流量。

结论

iftop 命令是一款强大的网络流量监控工具,可以实时监控网络连接和流量,帮助管理员及时发现和解决网络问题。

同时,iftop 命令也支持多种过滤器和交互式操作,使其更加灵活和易用。在使用iftop命令时,需要注意安全和资源消耗等问题,并根据需要选择最适合的工具进行网络流量监控。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7665

    浏览量

    148601
  • Linux
    +关注

    关注

    87

    文章

    10996

    浏览量

    206788
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21854
  • 网络流量
    +关注

    关注

    0

    文章

    58

    浏览量

    10128
  • iftop
    +关注

    关注

    0

    文章

    3

    浏览量

    6938
收藏 人收藏

    评论

    相关推荐

    Linux基本命令总结

    都说Linux命令多,实际工作中我们又有多少命令会接触用到呢?本文跟大家分享Linux运维工作中常用的600个命令,可以说这些
    的头像 发表于 01-11 10:32 595次阅读

    linux运维命令大全

    Linux高端运维学习需要掌握大量的命令及相关工具,通读bash man page、掌握VIM使用、了解SSH是Linux高端运维工程师必备功课,熟练掌握Linux高端运维实用
    发表于 03-15 16:36

    Linux目录的创建与删除命令

    Linux目录的创建与删除命令 Linux目录的创建与删除命令  mkdir命令  功能:创建一个目录(类似DOS下的md
    发表于 01-18 12:46 1256次阅读

    Linux与用户有关的命令

    Linux与用户有关的命令 Linux与用户有关的命令  passwd命令  出于系统安全考虑,Lin
    发表于 01-18 12:46 710次阅读

    Linux的常用网络命令

    Linux的常用网络命令 Linux 的常用网络命令  计算机网络的主要优点是能够实现资源和信息的共享,并且用户可以远程访问信息。Linux
    发表于 01-18 12:47 1123次阅读

    Linux关机命令详解

    Linux关机命令详解 在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都 可以达到重启系统的目的,但每个
    发表于 01-18 12:52 3520次阅读

    iftop源代码编译安装

    iftop源代码编译安装
    发表于 04-03 23:39 15次下载
    <b class='flag-5'>iftop</b>源代码编译安装

    Linux系统命令指南

    在“Linux 文件命令精通指南”中,我们讨论了利用最基础和最常用 Linux 文件命令所需的基本信息。在本文中,我将对 Linux 系统
    发表于 05-23 10:23 886次阅读

    linux有哪些常用的命令

     Linux命令非常之多,分为内部命令和外部命令
    发表于 02-27 08:00 4次下载
    <b class='flag-5'>linux</b>有哪些常用的<b class='flag-5'>命令</b>

    linux的scp命令怎么用_linux的grep命令用法

    linux中,scp命令用于Linux之间复制文件和目录,即在一台Linux服务器中将本地的文件上传到一台远端服务器,或将远端服务器的文件下载到本地。scp是
    发表于 09-04 15:36 4152次阅读
    <b class='flag-5'>linux</b>的scp<b class='flag-5'>命令</b>怎么用_<b class='flag-5'>linux</b>的grep<b class='flag-5'>命令</b>用法

    6个有趣的Linux命令案例讲解

    6个有趣的Linux命令案例讲解
    发表于 08-11 17:49 12次下载

    常用Linux命令介绍

    linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,
    的头像 发表于 02-09 14:31 848次阅读

    浅析Linux精致的命令

    这只是一小部分常用的Linux命令Linux有很多命令可以使用。建议通过man命令来查看命令
    的头像 发表于 04-24 16:28 1345次阅读

    常用Linux命令要记牢!

    linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,
    的头像 发表于 08-07 15:31 456次阅读

    shell命令linux命令一样吗

    Shell命令Linux命令并不完全一样。 首先,Shell是一种命令行解释器,它是用来解释和执行用户输入的命令的。Shell既是一种
    的头像 发表于 11-08 10:51 1440次阅读