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命令时,需要注意安全和资源消耗等问题,并根据需要选择最适合的工具进行网络流量监控。

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

    关注

    30

    文章

    6955

    浏览量

    147315
  • Linux
    +关注

    关注

    85

    文章

    10317

    浏览量

    205846
  • 命令
    +关注

    关注

    5

    文章

    534

    浏览量

    21721
  • 网络流量
    +关注

    关注

    0

    文章

    51

    浏览量

    10003
  • iftop
    +关注

    关注

    0

    文章

    3

    浏览量

    6922
收藏 人收藏

    评论

    相关推荐

    linux运维命令大全

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

    iftop源代码编译安装

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

    Linux命令大全

    Linux命令大全
    发表于 10-30 09:49 8次下载
    <b>Linux</b>的<b>命令</b>大全

    linux有哪些常用的命令

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

    嵌入式Linux开发教程:Linux常见命令(上篇)

    Linux开发教程》的第7期连载。本期刊载内容有关LinuxLinux常见命令中的导航命令、目录命令和文件命令。下一期将连载网络操作命令、安装卸载文件系统等内容
    发表于 10-21 13:36 11次下载
    嵌入式<b>Linux</b>开发教程:<b>Linux</b>常见<b>命令</b>(上篇)

    Linux与用户有关的命令

    Linux与用户有关的命令
    发表于 01-18 12:46 630次阅读

    Linux的常用网络命令

    Linux的常用网络命令
    发表于 01-18 12:47 1070次阅读

    Linux关机命令详解

    Linux关机命令详解 在
    发表于 01-18 12:52 3415次阅读

    Linux系统命令指南

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

    Linux应急响应命令总结

    Linux应急响应命令总结
    发表于 11-17 09:08 542次阅读

    如何在Linux使用touch命令

    Linux touch命令用于更改文件时间戳。但touch命令的最常见用法是创建文件。
    的头像 发表于 12-05 17:21 1238次阅读

    Linux常用命令

    Linux常用
    的头像 发表于 01-12 11:19 616次阅读

    常用Linux命令介绍

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

    浅析Linux精致的命令

    Linux命令Linux有很多命令可以使用。建议通过man命令来查看命令的使用方法,例如:man cd
    的头像 发表于 04-24 16:28 1127次阅读

    常用Linux命令要记牢!

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