Linux查看网络接口带宽常用命令

在管理和监控网络性能时,查看网络接口的带宽使用情况是一个基本且重要的任务。Linux 提供了一些强大的工具来帮助我们完成这项任务,例如 dstatiftopvnstatnloadiptraf-ng。本文将介绍如何使用这些工具来检查和监控网络接口的带宽使用情况。

使用 dstat 监控带宽

dstat 是一个强大的系统资源统计工具,它可以同时显示 CPU、内存、磁盘、网络等多个系统资源的实时使用情况。使用 dstat,你可以详细了解每个网络接口的带宽使用情况。

安装 dstat

如果你的系统尚未安装 dstat,可以使用以下命令来安装: 对于 Debian/Ubuntu 系统:

1sudo apt-get install dstat

对于 RHEL/CentOS 系统:

1sudo yum install dstat

使用 dstat 监控特定网络接口

我们可以使用以下命令来监控特定接口(如 eth1)的带宽使用情况:

1dstat -fn -N eth1
  • -f:显示文件系统统计信息,包括文件读写次数和读写字节数。
  • -n:显示网络信息统计,给出网络接口的传输速率(收发字节数/包数)。
  • -N eth1:只显示指定网络接口 eth1的统计信息。

运行上述命令后,你将看到类似以下输出:

1--net/eth1-
2 recv  send
3   0     0
4 909k  39M
5 934k  39M

这里 recv 表示接收流量,send 表示发送流量。单位为字节,可以直观地看到每秒的带宽使用情况。

使用 dstat 监控所有网络接口

如果我们希望监控所有网络接口,可以使用以下命令

1dstat -fn

运行上述命令后,我们将看到所有网络接口的带宽使用情况:

1net/eth0----net/eth1----
2 recv  send: recv  send
3   0     0 :   0     0
4 12k   21k : 917k  39M

dstat 会实时显示每个接口的接收和发送流量,有助于全面了解网络的状态。

使用 iftop 监控带宽

iftop 是另一个网络监控工具,它可以显示实时的网络流量,类似于 top 命令查看系统资源使用情况。

安装 iftop

如果你的系统尚未安装 iftop,可以使用以下命令来安装:

  • 对于 Debian/Ubuntu 系统:
1    sudo apt-get install iftop
  • 对于 RHEL/CentOS 系统:
1	sudo yum install epel-release
2	sudo yum install iftop

使用 iftop 监控特定网络接口

要监控 eth1 接口的网络流量,可以使用以下命令:

1iftop -i eth0

运行上述命令后,我们将进入一个交互式界面,显示当前活动的主机和它们之间的网络流量,如下所示:

 1
 2Listening on eth0
 3                                                                   1.60Kb        3.20Kb        4.80Kb         6.40Kb        8.00Kb
 4
 5192.168.1.100         =>    192.168.1.1          0.00Kb        0.00Kb        0.12Kb
 6                         <=                                    0.00Kb        0.00Kb        0.36Kb
 7....
 8
 9Totals:                6.00Kb        4.00Kb        3.52Kb       2.90Kb       2.20Kb
10
11Peak rate:         12.00Kb
12
13TX: cum:  34.00Kb      peak:  6.08Kb       rates:  6.00Kb  4.00Kb  3.52Kb
14RX: cum:  16.60Kb     peak:  3.10Kb       rates:  2.90Kb  2.20Kb  1.95Kb

iftop 界面中,我们可以看到每个 IP 地址之间的流量以及总流量。顶部显示了流出的流量(TX, Transmission)和流入的流量(RX, Reception)的总量和当前的速率。

  • Totals显示所有连接的总流量。

    • 6.00Kb 4.00Kb 3.52Kb 对应最近 2 秒、10 秒和 40 秒的总流量。
  • Peak rate 表示监听期间的最大传输速率,此处为 12.00Kb/s

  • TX (发送)

    • cum: 34.00Kb 表示发送的总量。
    • peak: 6.08Kb 表示发送的峰值速率。
    • rates: 6.00Kb 4.00Kb 3.52Kb 表示最近 2 秒、10 秒和 40 秒的发送速率。
  • RX (接收)

    • cum: 16.60Kb 表示接收的总量。
    • peak: 3.10Kb 表示接收的峰值速率。
    • rates: 2.90Kb 2.20Kb 1.95Kb 表示最近 2 秒、10 秒和 40 秒的接收速率。

使用 vnstat 监控带宽

vnstat 是一个基于控制台的网络流量监控工具,它使用后台守护进程来记录所选界面的带宽使用情况。

安装 vnstat

如果你的系统尚未安装 vnstat,可以使用以下命令来安装:

  • 对于 Debian/Ubuntu 系统:
1sudo apt-get install vnstat
  • 对于 RHEL/CentOS 系统:
1  sudo yum install vnstat

使用 vnstat 查看网络流量

安装完成后,使用以下命令初始化 vnstat

1sudo vnstat -u -i eth1

然后,我们可以使用以下命令来查看每日和每月的流量统计信息:

1vnstat -d
  • -d 选项表示按日显示统计信息。
  • 显示了每日的网络流量统计。
1vnstat -m
  • -m 选项表示按月显示统计信息。
  • 显示了每月的网络流量统计。

输出示例:

 1 # vnstat -d
 2
 3 eth1  /  daily
 4
 5         day         rx      |     tx      |    total    |   avg. rate
 6     ------------------------+-------------+-------------+---------------
 7     01/15/2025    93.80 MiB |    3.15 GiB |    3.24 GiB |  314.80 kbit/s
 8     01/17/2025     2.56 MiB |  132.17 MiB |  134.73 MiB |   19.97 kbit/s
 9     ------------------------+-------------+-------------+---------------
10     estimated         3 MiB |     206 MiB |     209 MiB |
11# vnstat -m
12
13 eth1  /  monthly
14
15       month        rx      |     tx      |    total    |   avg. rate
16    ------------------------+-------------+-------------+---------------
17      Jan '25     96.36 MiB |    3.28 GiB |    3.37 GiB |   20.09 kbit/s
18    ------------------------+-------------+-------------+---------------
19    estimated       182 MiB |    6.23 GiB |    6.41 GiB |

使用 nload 监控带宽

nload 是另一个用于查看实时网络流量和带宽使用情况的工具。

安装 nload

如果你的系统尚未安装 nload,可以使用以下命令来安装:

  • 对于 Debian/Ubuntu 系统:
1sudo apt-get install nload
  • 对于 RHEL/CentOS 系统:
1sudo yum install nload

使用 nload 查看实时带宽

要查看特定接口(如 eth1)的流量,可以使用以下命令:

1nload eth0

运行上述命令后,我们将看到一个实时更新的界面,显示入站和出站流量的图形和数值表示。

 1Device eth0 [192.168.1.100] (1/2):
 2
 3Incoming:
 4Curr:  25.55 kBit/s
 5Avg:    14.25 kBit/s
 6Min:     0.00 kBit/s
 7Max:    50.00 kBit/s
 8Ttl:     120.75 MByte
 9
10[Graphical representation of incoming traffic here]
11
12Outgoing:
13Curr:   2.45 kBit/s
14Avg:    1.10 kBit/s
15Min:    0.00 kBit/s
16Max:    5.00 kBit/s
17Ttl:     20.25 MByte
18
19[Graphical representation of outgoing traffic here]
  • Device eth0: 表示当前监控的网络接口是 eth0
  • [192.168.1.100]: 这是 eth0 接口的 IP 地址。
  • (1/2): 表示这是被监控的两个接口中的第一个,显示的当前接口。

Incoming(进入流量)

上半部分是进入流量的显示:

  • Curr: 当前的进入流量速率(25.55 kBit/s)。
  • Avg: 平均进入流量速率(14.25 kBit/s)。
  • Min: 最小进入流量速率(0.00 kBit/s)。
  • Max: 最大进入流量速率(50.00 kBit/s)。
  • Ttl: 总进入流量(120.75 MByte)。

Outgoing(传出流量)

下半部分是传出流量的显示:

  • Curr: 当前的传出流量速率(2.45 kBit/s)。
  • Avg: 平均传出流量速率(1.10 kBit/s)。
  • Min: 最小传出流量速率(0.00 kBit/s)。
  • Max: 最大传出流量速率(5.00 kBit/s)。
  • Ttl: 总传出流量(20.25 MByte)。

在实际的 nload 输出中,这些数值的左侧会有一组字符 # 或其他符号,组成图形表示实时的流量变化趋势。这些图形显示更直观地帮助我们查看流量模式和变化。

使用 iptraf-ng 监控带宽

iptraf-ng 是一个交互式、基于控制台的 IP 层网络流量监控工具。

安装 iptraf-ng

如果你的系统尚未安装 iptraf-ng,可以使用以下命令来安装:

  • 对于 Debian/Ubuntu 系统:
1sudo apt-get install iptraf-ng
  • 对于 RHEL/CentOS 系统:
1  sudo yum install iptraf-ng

使用 iptraf-ng 监控网络流量

启动 iptraf-ng,可以通过以下命令进入交互式界面:

1sudo iptraf-ng

在这里,我们可以选择不同的监控选项,如实时监控指定接口的流量、查看 TCP/UDP 连接详情等。

主菜单选项

  1. IP traffic monitor (IP 流量监控)

    • 这个选项用于监控实时的 IP 数据包流量。它可以显示当前通过网络接口的每个 IP 地址之间的通信,包括每个连接的传输速率。
  2. General interface statistics (常规接口统计)

    • 这个选项用于显示选定网络接口的常规统计信息。这包括数据包数量、字节数和错误统计数据等,可以帮助用户全面了解接口的使用情况。
  3. Detailed interface statistics (详细接口统计)

    • 这个选项提供更详细的接口统计信息,包括各种数据包类型的数量(如 TCP/UDP/IP 等),以及更多的协议分析。这对于深入分析接口流量非常有帮助。
  4. Statistical breakdowns (统计细分)

    • 这个选项用于查看基于各种标准的统计细分,例如端口号、传输协议或数据包大小。这有助于用户了解不同类型流量的分布情况。
  5. LAN station monitor (局域网监控)

    • 这个选项允许监控局域网内的各个设备,显示每个设备的流量统计数据。这对于了解局域网内的流量分布和各个设备的行为非常有用。
  6. Filters (过滤器)

    • 这个选项可以配置各种过滤器,用于选择性地监控或忽略特定的流量。用户可以设置基于 IP 地址、端口号和协议的过滤规则。
  7. Configure (配置)

    • 这个选项允许用户更改 iptraf-ng 的各种配置参数,例如日志记录选项、屏幕刷新率、颜色设置等。
  8. About (关于)

    • 这个选项显示关于 iptraf-ng 的信息,例如版本号、作者等。
  9. Exit (退出)

    • 这个选项用于退出 iptraf-ng 程序。

总结

通过使用 dstatiftopvnstatnloadiptraf-ng,我们可以详细了解网络接口的带宽使用情况。这些工具不仅易于使用,还提供了实时、详细的网络流量信息,帮助我们更好地监控和管理网络性能。希望本文能帮助你更高效地利用这些工具来处理网络相关的任务。