使用iftop实时Linux网络流量监控
在本教程中,我们将学习如何使用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