iftop 是一个基于 libpcap 库的网络流量监控工具。它通过监听指定网络接口上的数据包,并分析这些数据包的源地址、目标地址、源端口、目标端口、协议等信息,从而实时显示网络流量的相关统计信息。
安装
在大多数Linux发行版中,您可以使用包管理器来安装 iftop
。例如,在Ubuntu/Debian上,可以使用以下命令安装:
sudo apt-get install 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--l
ocal 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
组合使用文章来源:https://www.toymoban.com/news/detail-726992.html
-
-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
的工作原理可以概括为以下几个步骤:文章来源地址https://www.toymoban.com/news/detail-726992.html
- 打开指定的网络接口:
iftop
首先会打开用户指定的网络接口,如 eth0、wlan0 等。 - 抓取数据包:
iftop
使用 libpcap 库来抓取从指定网络接口上收到的数据包。libpcap 是一个网络数据包捕获库,它可以在不同的操作系统上进行网络数据包捕获。 - 解析数据包:
iftop
对抓取到的数据包进行解析,提取出数据包中的源地址、目标地址、源端口、目标端口、协议等信息。 - 统计流量信息:
iftop
根据解析到的数据包信息,统计并计算出每个网络连接的发送速率和接收速率,以及总的发送流量和接收流量。 - 实时显示信息:
iftop
将统计的流量信息以实时更新的方式显示在终端界面上,以便用户实时监控网络流量。
到了这里,关于Linux网络监控工具 - iftop的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!