iftop命令详解:网络流量实时监控带宽详情工具

在 Linux 系统下即时监控服务器的网络带宽使用情况,有很多工具,比如 iptraf、nethogs 等等,但是推荐使用小巧但功能很强大的 iftop 工具。

iftop 是 Linux 系统一个免费的网卡实时流量监控工具,类似于 top 命令。iftop 可以监控指定网卡的实时流量、端口连接信息、反向解析 IP 等,还可以精确显示本机网络流量及网络内各主机和本机相互通信的流量集合,非常适合于监控代理服务器或路由器的网络流量。

同时,iftop 对检测流量异常的主机非常有效,通过 iftop 的输出可以迅速定位主机流量异常的根源,这对于网络故障排查、网络安全检测是十分有用的。缺点就是无报表功能,且必须以 root 身份才能运行。

 

iftop官方网站:http://www.ex-parrot.com/~pdw/iftop/

 

一、下载、安装 iftop

 

1、通过软件管理工具安装

# CentOS
$ sudo yum install iftop

# Ubuntu
$ sudo apt install iftop

 

2、通过源代码编译安装

# 安装比较软件包
$ sudo um install libpcap libpcap-devel ncurses ncurses-devel flex byacc

# 下载软件包
$ wget "http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz"
$ tar zxvf iftop-0.17.tar.gz
$ cd iftop-0.17
$ ./configure
$ make && make install

 

二、iftop 用法 参数 说明

iftop: 按主机显示接口上的带宽使用情况

 

命令用法:

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

 

选项参数:

-h                显示此帮助消息

-n                不进行主机名查找

-N                不要将端口号转换为服务

-p                以混杂模式运行(显示同一网段上其他主机之间的流量)

-b                不显示流量条形图

-B                显示带宽(字节)

-a                显示数据包中的带宽

-i interface      监听命名接口

-f filter code   使用筛选代码选择要计数的数据包(默认值:无,但只计算IP数据包)

-F net/mask        显示IPv4网络的流量进出

-G net6/mask6      显示进出IPv6网络的流量

-l                显示和计数链路本地IPv6流量(默认值:关闭)

-P                显示端口和主机

-m limit          设置带宽比例的上限

-c config file    指定替代配置文件

-t                使用没有ncurses的文本界面

 

排序顺序:

-o 2s              按第一列排序(2秒平均流量)

-o 10s              按第二列排序(平均10s流量)[默认值]

-o 40s              按第三列排序(平均40秒流量)

-o source          按源地址排序

-o destination      按目的地地址排序

 

以下选项仅与-t组合使用

-s num            在数秒内打印一个文本输出,然后退出

-L num            要打印的行数

 

三、iftop 界面说明

通过命令,直接进入界面,如下:

[root@localhost /]# iftop

iftop

=>:代表发送数据

<=:代表接收数据

TX:发送流量

RX:接收流量

TOTAL:总流量

Cum:运行iftop到目前时间的总流量

peak:流量峰值

rates:分别表示过去 2s 10s 40s 的平均流量

 

四、进入iftop界面后的操作

 

一般参数

P      切换暂停/继续显示
h      在交互界面/状态输出界面之间切换
b      切换是否显示平均流量图形条
B      切换显示2s 10s和40s内的平均流量
T      切换是否显示每个连接的总流量
j/k    向上或向下滚动屏幕显示当前的连接信息
f      编辑筛选码
l      打开iftop输出过滤功能 ,如输入要显示的IP按回车键后屏幕就只显示与这个IP相关的流量信息
L      切换显示流量刻度范围,刻度不同,流量图形条也会不同
q      退出iftop

 

主机参数

n      使iftop输出结果以IP或主机名的方式显示
s      切换是否显示源主机信息
d      切换是否显示远端目标主机信息
t      切换输出模式,一行或多行

 

端口显示参数

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

 

输出排序参数

1/2/3  通过第一列/第二列/第三列排序
<      根据左边的本地主机名或IP地址进行排序
>      根据远端目标主机的主机名或IP地址进行排序
o      切换是否固定显示当前的连接

 

五、iftop使用示例

 

1、显示网卡eth0的信息,主机通过ip显示

iftop -i eth0 -n

 

2、显示端口号(添加-P参数,进入界面可通过p参数关闭)

iftop -i eth0 -n -P

 

3、显示将输出以byte为单位显示网卡流量,默认是bit

iftop -i eth0 -n -B

 

4、显示流量进度条


iftop -i eth0 -n (进入界面后按下L)

 

5、显示每个连接的总流量

iftop -i eth0 -n (进入界面后按下T)

 

6、显示指定ip 172.17.1.158的流量

iftop -i eth0 -n (进入界面后按下l,输入172.17.1.158回车)

 

六、实战用iftop工具:找出最费流量的ip和端口号

 

1、进入界面

iftop -i eth0 -nNB -m 10M

-i 指定网卡

-n 代表主机通过ip显示不走DNS

-N 只显示连接端口号,不显示端口对应的服务名称(不加会显示如ssh这样的服务名称,不便于排查)

-B 指定显示单位为Kb,默认是bit,太小!

-m 设置输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示

 

进入后界面如下:iftop

 

 

2、按下L显示流量刻度

L参数直接显示进度条,方便人类阅读,别说你能直接通过数字感知,小心被砍死

iftop L

 

3、按下T显示总量

总得有个总数统计,看着方便!

iftop

 

4、按下3,根据最近40s统计排序

用平均值来统计最权威点

iftop

 

5、按下t,发送和接受合成一行

显示两行没什么意思,一行就够了!

iftop

 

6、多按几次B,查看最近2s、10s、40s的统计

没错,图中的172.17.1.158就是我们找到的流量用得最多的IP

iftop

 

7、筛选指定IP 172.17.1.158

按下l,输入172.17.1.158,出现如下:iftop

 

回车,生效:

iftop

 

这下就只看到这个ip的流量监控了

 

8、找到这个ip哪个端口流量用得最多?按下p,根据端口号显示。

iftop

 

总结:

到这里,我们就学会了如何找出流量用得最多的ip和端口号,这么好干货你不high起来对不起哥这么用心的截图!

    A+
发布日期:2023年04月06日 22:18:05  所属分类:Linux
最后更新时间:2023-04-06 22:24:23
付杰
  • ¥ 398.0元
  • 市场价:498.0元
  • ¥ 99.0元
  • 市场价:129.0元
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 79.0元
  • 市场价:99.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: