Iftop 工具

120 阅读2分钟

本文翻译自我的英文博客,最新修订内容可随时参考:​​The Iftop​

我经常使用 ​​ifconfig​​ 和 ​​cat /proc/net/dev​​ 查看网络信息。但今天,我的云服务器意外崩溃了。联系云厂商支持后,工程师用 ​​iftop​​ 分析问题。问题解决后,我开始考虑使用这个工具。现在,让我们深入了解这个强大的网络分析利器。

关于 ​​/proc​​ 的更多信息,可查看另一篇博客 ​​Further Understanding of Proc​​。

选择 ​​iftop​​ 的原因很简单:阿里云工程师选择用它,说明该工具适合通用网络分析场景。毕竟,专业人员的经验更具参考性。

​iftop​​ 必须以足够权限运行才能监控接口的所有网络流量,大多数系统中需以 root 身份执行。

官方文档参考:​​iftop​

界面显示

顶部是带宽条形图,可通过 ​​-m​​ 参数调整刻度范围。
中间部分列出每对主机之间在 2秒、10秒、40秒 内的收发速率,箭头 ​​<=​​(接收)和 ​​=>​​(发送)指示数据流向。
底部显示各类统计信息,包括过滤后的总流量、40秒内的峰值流量,以及不同时间窗口的平均传输速率。

2.00Mb          4.00Mb          6.00Mb          8.00Mb    10.0Mb
└───────────────┴───────────────┴───────────────┴───────────────┴───────────────
foo.example.com  =>  bar.example.com      1Kb  500b   100b
                 <=                       2Mb    2Mb    2Mb

TX:             cum:   43.5MB   peak:   4.21Mb  rates:   4.15Mb  4.08Mb  4.00Mb
RX:                    1.46MB            192Kb            192Kb   162Kb   136Kb
TOTAL:                 45.0MB           4.38Mb           4.34Mb  4.24Mb  4.13Mb

常用选项

更多选项请查阅 ​​官方文档​​,以下是常见用法:

  1. ​iftop -nP​
  • ​-n​​:禁止主机名解析(加速启动,直接显示 IP)。
  • ​-P​​:显示端口号(默认隐藏端口)。
  1. ​iftop -B​
  • 以字节/秒(Byte/sec)为单位显示带宽速率(默认是比特/秒,Mb/s)。
  1. ​iftop -l​
  • 显示 IPv6 地址(默认仅 IPv4)。
  1. ​iftop -m 10M​
  • 指定带宽条形图的最大值为 10Mb/s(调整刻度范围)。
  1. ​iftop -i wlan0 -f "dst port 22" ​
  • ​-i​​:指定监控的网络接口(如 ​​wlan0​​、​​eth0​​)。
  • ​-f​​:使用过滤规则(如 ​​dst host 10.10.8.8​​ 目标主机、​​src port 443​​ 源端口、​​dst portrange 22-23​​ 目标端口范围、​​gateway 10.10.8.1​​ 网关)。

运行时操作

在 ​​iftop​​ 运行过程中,按下 ​​h​​ 可查看所有操作快捷键,例如:

  • ​p​​:切换是否显示端口号。
  • ​P​​:切换显示发送/接收速率的方向。
  • ​b​​:切换是否显示带宽条形图。
  • ​n​​:切换是否解析主机名。
  • ​!​​:执行Shell命令(不退出 ​​iftop​​)。
  • ​q​​:退出程序。

通过 ​​iftop​​,可以实时监控网络连接的流量分布、定位异常流量来源,尤其适合排查服务器带宽占用过高、网络攻击或异常连接等问题。结合过滤规则和快捷键操作,能更高效地分析复杂网络场景。