【Linux实用工具】iftop详解及使用场景

479 阅读5分钟

文字首发于公众号|左羊公社

前言

今天我们来聊一聊Linux中的一个非常实用的命令——iftop。

如果你是一个Linux用户,特别是面向网络工作的人员,你会经常需要了解你的服务器的网络流量情况。而iftop命令正是由此而生,帮助你实时监测服务器的带宽使用情况。

在这篇博客中,我将为大家详细介绍iftop命令的使用方法和实用技巧。

一、iftop是什么?

iftop命令是一种网络监测工具,它类似于Linux中的其他监测工具,如top、iotop等。但iftop是一个独立的命令,并不依赖于其他工具或服务。

iftop命令可以帮助我们查看服务器上网络接口的实时流量情况,包括流入和流出的数据量、数据包数量、流量占用比例等信息。此外,iftop还具有过滤、排序功能,用于更好地监测特定网络流量。

二、安装iftop命令

如果你的Linux系统已经安装了iftop命令,可以直接跳过这一节。

但是如果你的系统没有安装iftop命令,你需要使用如下命令来安装:

sudo apt-get install iftop         #Debian / Ubuntu 系统
sudo yum install iftop           #CentOS / RHEL 系统

安装成功之后,你可以在终端中开启iftop命令。

三、iftop命令的基本用法

以简单的方式运行iftop命令:

sudo iftop

默认情况下,iftop会显示所有正在使用网络的TCP/IP连接。这包括正在进行的上传和下载,以及这些连接的流量用量。

iftop上方的每一行显示着一个流进的连接。你可以看到哪个IP地址正在发往你的接口。

下面的每一行都代表一个流出的连接。从本地发送到网络。你可以看到这些连接是否被卡住了,吞吐量是多少。

你可以按下? 键获得IFTOP的全局快捷键。默认情况下,可以使用左右箭头键和数字键来改变排序,并返回主界面。此外,你可以使用sdt键来执行其他过滤操作。

就是这样!就这么简单。现在我们继续探究iftop的一些技巧和高级用法。

四、iftop命令的高级用法

1、使用iftop命令查看本地IP地址:

如果你想要更清楚地查看网络接口以及哪些IP正在使用你的网络,你可以使用n参数。它会显示所有网络接口,同时省略DNS解析。这让输出非常干净,也让它更容易处理。

sudo iftop -n

2、iftop命令按流量大小排序:

如果你的服务器有很多活跃的连接,那么排序这些活跃连接非常有用。

你可以通过按下1键来查看本地到远程连接的速率。

你可以通过按下2键来查看本地到远程的数据包速率。

默认情况下,iftop将以最适合现有窗口大小的方式显示连接。为此,iftop使用了水平条形图,其中每个IP地址根据它的流量大小显示到达。以下是相应的命令:

sudo iftop -i ens33   #查看流量信息 ens33
sudo iftop -n -i ens33    #按流量大小框选 ens33
sudo iftop -F 192.168.0.2/24   #筛选MAC地址(192.168.0.2/24)

3、iftop命令过滤输出信息:

过滤网络流量是查看特定流量或特定网络连接的好方法。你可以通过iftop的一些参数来帮助你过滤输出信息。

按下f键可以选择哪个特定网络连接或流量将被显示。

按下F键,IFTOP将显示一个用户定义的库。它除了允许你选择哪些网络连接将被显示之外,其他与f键相同。

按下N键可以反转f过滤,显示未显示的内容。你可以使用它来隐藏不感兴趣的高流量的来源,只留下你最感兴趣的流量。

# 直接按f再按ip即可 
按源IP过滤:
sudo iftop -i ens33 src 192.168.0.1
按目标IP过滤:
sudo iftop -i ens33 dst 8.8.8.8
按端口号过滤:
sudo iftop -i ens33 port 80
按协议过滤:
sudo iftop -i ens33 proto tcp
  1. 导出PCAP文件 可以使用iftop命令将网络流量存储为PCAP文件,然后使用Wireshark分析流量。将网络流量导出为PCAP文件的方法如下:

4.1. 通过iftop命令将网络流量存储到文件中:

sudo iftop -t -s 10 -n -L 10 > traffic.pcap
- "-t" 参数指定将时间戳添加到每个包中。
- "-s 10" 参数指定捕获的包的数量。
- "-n" 参数指定忽略DNS解析。
- "-L 10" 参数指定保留的数据包数量。
- "> traffic.pcap" 参数指定将输出重定向到文件 traffic.pcap 中。

4.2. 确认流量已成功采集并存储:

ls -lh traffic.pcap

如果文件大小为0,则未成功捕获流量。您可以使用Wireshark打开文件并检查数据包是否正确。

4.3. 打开PCAP文件并使用Wireshark分析:

使用Wireshark将traffic.pcap文件打开,然后可以使用Wireshark的过滤器和统计功能进行流量分析。

请注意,生成的PCAP文件可能较大,因此需要足够的磁盘空间来存储。此外,对于生产环境,请确保使用适当的捕获和处理数据包的设置,以避免对网络性能造成负面影响。

结语

iftop是一个简单、实用的网络监测工具,可以帮助我们实时了解服务器上的网络流量情况,过滤特定网络流量,方便我们更好地监控网络使用情况。希望这篇博客可以为你提供帮助!

参考文献

1. Iftop – Linux Bandwidth Monitoring Tool – How to Install and Use: https://www.tecmint.com/iftop-linux-network-bandwidth-monitoring-tool/
2. IFTOP: Display bandwidth usage on an interface by host: https://linux.die.net/man/8/iftop