使用iftop实时Linux网络流量监控

时间:2020-07-27 12:58:58  来源:igfitidea点击:

在本教程中,我们将学习如何使用iftop命令监视Linux服务器上的网络流量。
我们将首先在Ubuntu,CentOS 7和Fedora上安装IFTOP,然后我们将学习监控工具的基本和提前选项。

iftop是监视Linux中网络流量的最流行的命令行工具之一。
IFTOP命令可以通过在输出顶部列出其IP地址或者主机名来快速显示使用大多数带宽的源。

在Ubuntu/CentOS 7/Fedora上安装iftop

让我们首先在Ubuntu,CentOS 7和Fedora上安装iftop命令。

在基于Debian的Linux系统(包括Ubuntu)上,我们可以使用以下命令安装iftop:

sudo apt-get update
sudo apt-get install iftop

要在CentOS 7上安装iftop,请运行:

yum -y install epel-release
yum -y install iftop

在Fedora,执行:

dnf -y install iftop

使用iftop监控网络流量

重要事项:iftop命令需要root权限侦听Linux上的网络流量,因此我们需要以root用户身份登录或者使用sudo命令。

如果没有任何参数的iftop命令侦听它可以找到的第一个接口上的网络流量。

iftop

我们可以按Q从命令输出退出q。

最重要的参数是-i,用于显示特定网络接口的结果。
例如,以下命令将在eth1接口上显示带宽使用情况。

iftop -i eth1

默认情况下,iftop命令将尝试将IP地址解析为主机名,以避免此使用-n选项:

iftop -n -i eth1

命令输出

对于每对主机,命令输出列表的主要部分,对前面的2,10和40秒间隔已经发送和接收数据的速率。
数据流的方向由箭头,<=(接收)和=>(发送)表示。

在显示屏的底部,我们可以看到传输数据(TX)和接收数据(RX)的统计数据以及所有连接的总数。

控制键盘输出

t使用t键在显示模式之间切换(单独线路上的发送和接收流量、仅发送流量、仅接收流量和总流量)。
Shift + p使用Shift+p键暂停当前显示。
n按n键打开和关闭DNS解析。
p端口显示。p将打开/关闭端口显示(源端口和目标端口)。
Shift + s打开/关闭源端口显示。
Shift + d打开/关闭目标端口显示。
f将过滤器应用于过滤器命令输出。

过滤Linux Iftop输出

我们还可以使用过滤器代码过滤IFTOP命令的输出。
要应用筛选器代码,我们使用-f选项,或者在iftop运行时按“f”键。

IFTOP筛选器代码使用TCPDUMP使用数据包过滤器语法。

例子

以下命令只会侦听数据包的源或者目标是主机192.168.1.10:

iftop -i enp0s3 -f "host 192.168.1.10"

只要将数据包注定到主机192.168.1.10:

iftop -i enp0s3 -f "dst host 192.168.1.10"

要在IFTOP运行时应用过滤器代码,请按键盘上的f键,执行表达式,然后按ENTER(需要几秒钟才能应用待应用的新过滤器)。

更多IFTOP过滤器代码

忽略所有广播流量:

not ether host ff:ff:ff:ff:ff:ff

监视端口80上的HTTP流量:

port 80

监控IP地址上的SMTP流量192.168.1.10:

port smtp and host 192.168.1.10

仅在使用特定网络掩码的IPv4地址与NET匹配时才能侦听:

net 192.168.1.0 mask 255.255.255.0

要了解有关过滤器代码的更多信息,请执行:

man 7 pcap-filter

我们可以通过执行来了解Iftop命令的更多信息:

man iftop