当前位置:首页 > Linux > 正文

linux如何查看网络带宽

Linux系统中,可以使用 iftopnloadbmon等工具查看网络带宽。

Linux 系统中,有多种方法可以查看网络带宽的使用情况,以下是一些常用的方法和工具,以及它们的详细使用说明。

使用 iftop 工具

iftop 是一个实时查看网络带宽使用情况的工具,它类似于 top 命令,但专门用于网络接口,要使用 iftop,首先需要安装它。

安装 iftop

在基于 Debian 的系统(如 Ubuntu)上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install iftop

在基于 Red Hat 的系统(如 CentOS)上,可以使用以下命令安装:

sudo yum install iftop

使用 iftop

安装完成后,可以直接运行 iftop 命令:

sudo iftop

iftop 会显示当前网络接口的实时带宽使用情况,包括发送和接收的数据量、连接的源和目标地址等信息,默认情况下,iftop 会监控所有的网络接口,但你可以通过 -i 选项指定特定的接口,

sudo iftop -i eth0

使用 nload 工具

nload 是另一个实时监控网络带宽的工具,它提供了一个图形化的界面,可以直观地查看网络流量。

安装 nload

在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install nload

在基于 Red Hat 的系统上,可以使用以下命令安装:

sudo yum install nload

使用 nload

安装完成后,可以直接运行 nload 命令:

sudo nload

nload 会显示当前网络接口的实时带宽使用情况,并且可以通过快捷键切换不同的网络接口,你可以通过 -i 选项指定特定的接口,

sudo nload -i eth0

使用 vnstat 工具

vnstat 是一个网络流量监控工具,它可以记录和统计网络接口的流量数据,并生成图表。

安装 vnstat

在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install vnstat

在基于 Red Hat 的系统上,可以使用以下命令安装:

sudo yum install vnstat

使用 vnstat

安装完成后,可以通过以下命令查看网络接口的流量统计信息:

vnstat

vnstat 会显示当前网络接口的流量统计信息,包括总流量、平均流量、最大流量等,你可以通过 -i 选项指定特定的接口,

vnstat -i eth0

使用 bmon 工具

bmon 是一个简单的带宽监控工具,它可以实时显示网络接口的带宽使用情况。

linux如何查看网络带宽  第1张

安装 bmon

在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install bmon

在基于 Red Hat 的系统上,可以使用以下命令安装:

sudo yum install bmon

使用 bmon

安装完成后,可以直接运行 bmon 命令:

sudo bmon

bmon 会显示当前网络接口的实时带宽使用情况,并且可以通过快捷键切换不同的网络接口,你可以通过 -i 选项指定特定的接口,

sudo bmon -i eth0

使用 iptablesawk 脚本

如果你不想安装额外的工具,也可以使用 iptablesawk 脚本来监控网络带宽,以下是一个简单的示例脚本:

#!/bin/bash
# 清除已有的规则
sudo iptables -F
sudo iptables -X
# 添加规则,记录所有流量
sudo iptables -A INPUT -j ACCEPT
sudo iptables -A FORWARD -j ACCEPT
sudo iptables -A OUTPUT -j ACCEPT
# 记录流量
sudo iptables -I INPUT -j LOG --log-prefix "INPUT: " --log-level 4
sudo iptables -I FORWARD -j LOG --log-prefix "FORWARD: " --log-level 4
sudo iptables -I OUTPUT -j LOG --log-prefix "OUTPUT: " --log-level 4
# 监控日志文件
tail -f /var/log/messages | awk '/INPUT|FORWARD|OUTPUT/ {print $0}'

这个脚本会清除已有的 iptables 规则,并添加新的规则来记录所有流量,它会监控 /var/log/messages 文件,并输出相关的日志信息。

使用 sar 工具

sarsysstat 包中的一个工具,它可以收集和报告系统的各种性能数据,包括网络带宽。

安装 sysstat

在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install sysstat

在基于 Red Hat 的系统上,可以使用以下命令安装:

sudo yum install sysstat

使用 sar

安装完成后,可以通过以下命令查看网络接口的流量统计信息:

sar -n DEV 1 1

这个命令会显示当前网络接口的流量统计信息,包括接收和发送的数据量、包数等,你可以通过 -i 选项指定特定的接口,

sar -n DEV 1 1 -i eth0

使用 nethogs 工具

nethogs 是一个按进程显示网络带宽使用情况的工具,它可以帮助你了解哪些进程在消耗网络带宽。

安装 nethogs

在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install nethogs

在基于 Red Hat 的系统上,可以使用以下命令安装:

sudo yum install nethogs

使用 nethogs

安装完成后,可以直接运行 nethogs 命令:

sudo nethogs

nethogs 会显示当前系统中每个进程的网络带宽使用情况,包括发送和接收的数据量,你可以通过 -i 选项指定特定的接口,

sudo nethogs -i eth0

使用 ifstat 工具

ifstatnet-tools 包中的一个工具,它可以实时显示网络接口的流量统计信息。

安装 net-tools

在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install net-tools

在基于 Red Hat 的系统上,可以使用以下命令安装:

sudo yum install net-tools

使用 ifstat

安装完成后,可以直接运行 ifstat 命令:

sudo ifstat

ifstat 会显示当前网络接口的实时流量统计信息,包括接收和发送的数据量、包数等,你可以通过 -i 选项指定特定的接口,

sudo ifstat -i eth0

使用 ip 命令和 awk 脚本

如果你不想安装额外的工具,也可以使用 ip 命令和 awk 脚本来监控网络带宽,以下是一个简单的示例脚本:

#!/bin/bash
# 获取网络接口的名称
interface=$(ip link show | grep 'state UP' | awk '{print $2}' | tr -d ':')
# 获取初始流量数据
rx_before=$(cat /sys/class/net/$interface/statistics/rx_bytes)
tx_before=$(cat /sys/class/net/$interface/statistics/tx_bytes)
# 等待一段时间
sleep 1
# 获取结束流量数据
rx_after=$(cat /sys/class/net/$interface/statistics/rx_bytes)
tx_after=$(cat /sys/class/net/$interface/statistics/tx_bytes)
# 计算流量差值
rx_diff=$((rx_after rx_before))
tx_diff=$((tx_after tx_before))
# 输出结果
echo "Received: $rx_diff bytes"
echo "Transmitted: $tx_diff bytes"

这个脚本会获取指定网络接口的初始流量数据,等待一段时间后再获取结束流量数据,然后计算两者的差值,输出接收和发送的数据量,你可以通过修改脚本中的 interface 变量来指定不同的网络接口。

使用 collectl 工具

collectl 是一个强大的系统性能监控工具,它可以收集和报告系统的各种性能数据,包括网络带宽。

安装 collectl

在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install collectl

在基于 Red Hat 的系统上,可以使用以下命令安装:

sudo yum install collectl

使用 collectl

安装完成后,可以通过以下命令启动 collectl

sudo collectl -s D -i 1

这个命令会每秒收集一次网络接口的流量统计信息,并输出到终端,你可以通过 -i 选项指定时间间隔,

sudo collectl -s D -i 5

在 Linux 系统中,查看网络带宽的方法有很多,从简单的命令行工具到复杂的图形化界面工具,都可以满足不同的需求,你可以根据自己的实际情况选择合适的工具和方法来监控网络带宽的使用情况,以下是这些工具的简要归纳:

工具 描述 安装命令(Debian) 安装命令(Red Hat)
iftop 实时查看网络带宽使用情况 sudo apt-get install iftop sudo yum install iftop
nload 图形化界面实时监控网络带宽 sudo apt-get install nload sudo yum install nload
vnstat 记录和统计网络流量数据 sudo apt-get install vnstat sudo yum install vnstat
bmon 简单的带宽监控工具 sudo apt-get install bmon sudo yum install bmon
sar 收集和报告系统性能数据 sudo apt-get install sysstat sudo yum install sysstat
nethogs 按进程显示网络带宽使用情况 sudo apt-get install nethogs sudo yum install nethogs
ifstat 实时显示网络接口的流量统计信息 sudo apt-get install net-tools sudo yum install net-tools
collectl 强大的系统性能监控工具 sudo apt-get install collectl sudo yum install collectl

FAQs

Q1: 如果我不想安装额外的工具,有什么方法可以查看网络带宽?

A1: 你可以使用 iptablesawk 脚本来监控网络带宽,清除已有的 iptables 规则,并添加新的规则来记录所有流量,监控 /var/log/messages 文件,并输出相关的日志信息,这种方法不需要安装额外的工具,但需要一定的脚本编写能力。

Q2: iftopnload 有什么区别?

A2: iftopnload 都是实时监控网络带宽的工具,但它们有一些区别。iftop 提供了一个类似于 top 命令的文本界面,可以显示连接的源和目标地址等信息,适合需要详细分析网络连接的情况。

0