# Linux系统查看网络带宽命令有哪些
## 引言
在Linux系统管理和网络故障排查中,实时监控网络带宽使用情况是运维人员的基础技能。无论是服务器负载分析、网络瓶颈定位还是异常流量检测,都需要掌握专业的带宽监控工具。本文将详细介绍12种常用的Linux网络带宽监控命令,涵盖实时监控、历史统计、图形化展示等不同场景需求。
## 一、实时带宽监控工具
### 1. iftop - 交互式流量监控
iftop是类似于top命令的实时网络流量监控工具,可直观显示各个连接的带宽占用情况。
```bash
# 安装iftop
sudo apt install iftop # Debian/Ubuntu
sudo yum install iftop # CentOS/RHEL
# 基本使用
sudo iftop -i eth0
关键参数说明:
- -i 指定监控网卡
- -n 禁用主机名解析
- -P 显示端口号
- -B 以Byte为单位显示
输出解读:
191Mb 381Mb 572Mb
+------------+------------+-------------+
myhost.local => 192.168.1.1 1.2Mb 2.4Mb 3.6Mb
<= 800Kb 1.6Mb 2.4Mb
nload提供分窗口显示进出流量的ASCII图形化界面。
nload eth0 -u M
实用参数:
- -a 设置计算平均值的时间周期(秒)
- -t 屏幕刷新间隔(毫秒)
- -u h|b|k|m|g 单位自动转换
sudo bmon -p eth0 -o format:fmt='$(element:name) rx:$(attr:rx:rate) tx:$(attr:tx:rate)\n'
特色功能: - 支持多网卡同时监控 - 可显示原始数据包统计 - 提供HTML格式输出
# 安装并初始化数据库
sudo apt install vnstat
sudo vnstat -u -i eth0
# 查看统计
vnstat -l # 实时监控
vnstat -d # 每日统计
vnstat -m # 月度报告
数据存储位置:
/var/lib/vnstat/
sar -n DEV 1 3
输出示例:
14:30:01 IFACE rxpck/s txpck/s rxkB/s txkB/s
14:30:02 eth0 120.00 180.00 15.20 25.50
netstat -i 2
输出字段说明: - RX-OK: 成功接收包 - RX-ERR: 接收错误 - TX-OK: 成功发送包 - TX-ERR: 发送错误
sudo iptraf-ng -d eth0
功能特点: - TCP/UDP流量统计 - 按协议分类统计 - 连接状态监测
sudo tcptrack -i eth0
显示字段: - State: 连接状态 - Recv/s: 接收速率 - Send/s: 发送速率
tcpdump -i eth0 -w traffic.pcap
过滤特定流量:
tcpdump host 192.168.1.100 and port 80
sudo nethogs eth0
输出示例:
PID USER PROGRAM DEV SENT RECEIVED
1234 root /usr/bin/nginx eth0 2.3Mb 5.6Mb
安装配置流程:
# 安装基础组件
sudo apt install cacti rrdtool snmpd
# 通过Web界面配置
http://server_ip/cacti
关键配置步骤: 1. 安装Zabbix Server 2. 配置网络接口模板 3. 设置触发器告警阈值
| 工具名称 | 实时性 | 历史数据 | 图形化 | 学习曲线 |
|---|---|---|---|---|
| iftop | ★★★★★ | ★☆☆☆☆ | ★★☆☆☆ | ★★☆☆☆ |
| vnstat | ★★☆☆☆ | ★★★★★ | ★★★☆☆ | ★★☆☆☆ |
| Cacti | ★★★☆☆ | ★★★★★ | ★★★★★ | ★★★★☆ |
| Zabbix | ★★★★☆ | ★★★★★ | ★★★★★ | ★★★★★ |
#!/bin/bash
THRESHOLD=10 # Mbps
INTERVAL=5
while true; do
RX=$(ifconfig eth0 | grep "RX bytes" | awk '{print $6}' | cut -d: -f2)
sleep $INTERVAL
NEW_RX=$(ifconfig eth0 | grep "RX bytes" | awk '{print $6}' | cut -d: -f2)
SPEED=$(( (NEW_RX - RX) / INTERVAL * 8 / 1000000 ))
if [ $SPEED -gt $THRESHOLD ]; then
echo "$(date) - 带宽异常: ${SPEED}Mbps" | mail -s "带宽告警" admin@example.com
fi
done
docker stats --format "table {{.Container}}\t{{.NetIO}}"
kubectl top pod --containers
掌握这些网络带宽监控工具后,运维人员可以: 1. 快速定位网络瓶颈 2. 及时发现异常流量 3. 为容量规划提供数据支持 4. 优化网络服务质量
建议根据实际场景组合使用多种工具,如使用iftop进行实时排查,配合vnstat做长期趋势分析,再通过Zabbix实现自动化监控告警。
延伸学习: - 《Linux网络管理高级指南》 - Wireshark数据包分析实战 - 网络性能优化原理 “`
注:本文为示例文档,实际使用时请注意: 1. 部分命令需要root权限 2. 工具可用性取决于发行版 3. 生产环境建议测试后再部署 4. 详细参数请查阅各工具的man手册
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。