- 执行以下命令,安装 iftop 工具(iftop 工具为 Linux 服务器下的流量监控小工具)。
yum install iftop -y
说明:如果是 Ubuntu 系统,请执行
apt-get install iftop -y
命令。 - 执行以下命令,安装 lsof。
yum install lsof -y
- 执行以下命令,运行 iftop。如下图所示:
iftop
<=
、=>
表示流量的方向- TX 表示发送流量
- RX 表示接收流量
- TOTAL 表示总流量
- Cum 表示运行 iftop 到目前时间的总流量
- peak 表示流量峰值
- rates 分别表示过去2s、10s和40s的平均流量
- 根据 iftop 中消耗流量的 IP,执行以下命令,查看连接该 IP 的进程。
lsof -i | grep IP
例如,消耗流量的 IP 为201.205.141.123,则执行以下命令:
lsof -i | grep 201.205.141.123
根据返回的如下结果,得知此服务器带宽主要由 SSH 进程消耗。
sshd 12145 root 3u IPV4 3294018 0t0 TCP 10.144.90.86:ssh->203.205.141.123:58614(ESTABLISHED) sshd 12179 ubuntu 3u IPV4 3294018 0t0 TCP 10.144.90.86:ssh->203.205.141.123:58614(ESTABLISHED)
- 查看消耗带宽的进程,判断此进程是否正常。
实战
下面我们将通过找出最耗费流量的 IP 和端口号这一具体实例,来演示 iftop 强大的功能。
6.1. 进入界面
命令:iftop -i eth0 -nNB -m 10M
-i 指定网卡名称
-n 将输出的主机都通过IP显示,不进行DNS解析
-N 只显示连接端口号,不显示端口对应的服务名称(不加会显示如ssh这样的服务名称,不便于排查)
B 指定显示单位为Kb,默认是bit,不利于计算
-m 设置输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示
————————————————
按L
显示流量刻度
可以找出流量峰值最高的ip
按T
显示总量
可以查看接收和发送的流量总和
按流量大小进行排序
按t键可以按流量大小进行排序,从而找出最大的流量来源。
暂停和恢复显示
按p键可以暂停iftop的显示,按r键可以恢复显示。
退出iftop
按q键可以退出iftop。