在 Linux 系统中,实时查看带宽占用可以通过以下工具实现。这些工具可以动态显示当前网络接口的流量情况(按秒刷新),帮助你快速定位网络瓶颈。
1. 使用 iftop
(按连接实时显示)
安装与运行
sudo apt install iftop # Ubuntu/Debian
sudo yum install iftop # CentOS/RHEL
# 运行(需 root 权限)
sudo iftop -i eth0 # 替换 `eth0` 为你的网卡名
界面说明
- 顶部箭头:表示流量方向(
=>
发送,<=
接收)。 - 中间列表:实时连接流量(按带宽排序)。
- 底部统计:
TX
:发送速率。RX
:接收速率。TOTAL
:总速率。
快捷键:
P
:暂停/继续刷新。n
:切换显示IP/主机名。q
:退出。
2. 使用 nload
(分接口实时监控)
安装与运行
sudo apt install nload # Ubuntu/Debian
sudo yum install nload # CentOS/RHEL
# 运行
nload eth0 # 指定网卡名
界面说明
- 上半部分:接收速率(Incoming)。
- 下半部分:发送速率(Outgoing)。
- 动态曲线图:直观展示流量波动。
参数:
> nload -u K # 以 KB/s 为单位显示
> ```
---
### **3. 使用 `bmon`(图形化多功能监控)**
#### **安装与运行**
```bash
sudo apt install bmon # Ubuntu/Debian
sudo yum install bmon # CentOS/RHEL
# 运行
bmon -p eth0 # 指定网卡名
界面说明
- 支持多网卡同时监控。
- 提供文本图形和详细数据。
4. 使用 /proc/net/dev + watch
(原生命令组合)
通过读取系统文件并定时刷新:
watch -n1 "cat /proc/net/dev | grep eth0"
输出示例:
eth0: 12345678 567890 0 0 0 0 0 98765432 1234567 0 0 0 0 0
列说明:
- 第2列 (
12345678
):接收字节数。 - 第10列 (
98765432
):发送字节数。
计算瞬时流量时,可以手动记录两次数据的差值除以时间间隔。
5. IPTraf (高级交互式监控)
适合需要分析协议类型或端口的场景:
sudo apt install iptraf-ng # Ubuntu/Debian
sudo iptraf-ng # CentOS/RHEL可能需要从EPEL安装
功能包括:
- TCP/UDP流量统计。
- LAN/WAN接口分析。
❗️注意事项❓
[root权限]
大部分工具需要管理员权限才能捕获网络数据包。[选择正确的网卡]
通过以下命令确认实际使用的网卡名称:ip a | grep "state UP" # "UP"状态的接口是活跃的
[单位换算]
默认单位可能是比特/秒(bits/s)或字节/秒(Bytes/s),注意区分:1 Byte =8 bits,
1 Mbps=1024Kbps=128KB/s
[容器环境]
如果服务器跑在Docker/K8s中,需监控宿主机的虚拟网卡(如docker、calico等)。
📌推荐场景📌
需求 | 推荐工具 |
---|---|
快速查看总带宽 | nload |
分析具体连接的流量 | iftop |
长期记录+历史查询 | vnstat+sar |
如果需要更专业的解决方案,建议部署Prometheus+Grafana进行可视化监控。
内容由零声教学AI助手提供,问题来源于学员提问