Linux中,可以使用
iftop
、nload
或bmon
等命令
Linux系统中,查看带宽占用是网络管理和性能优化的重要任务之一,以下是几种常用的方法和工具,帮助你详细监控和分析带宽使用情况。
使用 iftop
工具
iftop
是一个实时显示网络带宽使用情况的工具,类似于Windows系统中的Task Manager,但功能更为强大。
安装 iftop
:
sudo apt-get install iftop # 对于Debian/Ubuntu系统 sudo yum install iftop # 对于CentOS/RHEL系统
使用方法:
sudo iftop
界面说明:
- TX:发送流量
- RX:接收流量
- Cumm:累计流量
- Rates:当前速率
- Sum:总和
iftop
会实时显示网络接口的流量情况,包括哪些IP地址正在占用带宽,以及每个连接的上传和下载速度。
使用 nload
工具
nload
是一个简单的网络流量监控工具,可以实时显示网络接口的带宽使用情况。
安装 nload
:
sudo apt-get install nload # 对于Debian/Ubuntu系统 sudo yum install nload # 对于CentOS/RHEL系统
使用方法:
sudo nload
界面说明:
- Incoming:下载流量
- Outgoing:上传流量
- Total:总流量
- Current:当前速率
- Max:最大速率
- Average:平均速率
nload
提供了一个直观的图形界面,可以快速了解网络接口的带宽使用情况。
使用 vnstat
工具
vnstat
是一个网络流量监控工具,可以记录和显示网络接口的流量统计信息。
安装 vnstat
:
sudo apt-get install vnstat # 对于Debian/Ubuntu系统 sudo yum install vnstat # 对于CentOS/RHEL系统
启动 vnstat
服务:
sudo systemctl start vnstat sudo systemctl enable vnstat
查看流量统计信息:
vnstat -l # 实时显示流量 vnstat -h # 查看每小时流量统计 vnstat -d # 查看每天流量统计 vnstat -w # 查看每周流量统计 vnstat -m # 查看每月流量统计
界面说明:
- rx:接收流量
- tx:发送流量
- max:最大流量
- avg:平均流量
- cur:当前流量
vnstat
提供了详细的流量统计信息,适合长期监控和分析网络带宽使用情况。
使用 iptables
和 awk
脚本
如果你需要更详细的带宽使用情况,可以结合 iptables
和 awk
脚本来实现。
步骤:
-
创建一个新的链来记录流量:
sudo iptables -N MY_CHAIN sudo iptables -A FORWARD -j MY_CHAIN sudo iptables -A MY_CHAIN -j RETURN
-
创建一个脚本来记录流量:
sudo nano /usr/local/bin/bandwidth_monitor.sh
在脚本中添加以下内容:
#!/bin/bash while true; do sudo iptables -L MY_CHAIN -v -n --line-numbers | awk '/tcp/ {print $1, $3, $7, $8, $9}' >> /var/log/bandwidth.log sleep 1 done
保存并退出,然后赋予执行权限:
sudo chmod +x /usr/local/bin/bandwidth_monitor.sh
-
启动脚本:
sudo /usr/local/bin/bandwidth_monitor.sh &
-
查看日志文件:
tail -f /var/log/bandwidth.log
使用 bmon
工具
bmon
是一个简单的带宽监控工具,可以实时显示网络接口的带宽使用情况。
安装 bmon
:
sudo apt-get install bmon # 对于Debian/Ubuntu系统 sudo yum install bmon # 对于CentOS/RHEL系统
使用方法:
sudo bmon
界面说明:
- In:下载流量
- Out:上传流量
- Total:总流量
- Rate:当前速率
- Peak:峰值速率
- Avg:平均速率
bmon
提供了一个简洁的图形界面,可以快速了解网络接口的带宽使用情况。
使用 nethogs
工具
nethogs
是一个按进程显示网络带宽使用情况的工具,可以帮助你了解哪些进程在占用带宽。
安装 nethogs
:
sudo apt-get install nethogs # 对于Debian/Ubuntu系统 sudo yum install nethogs # 对于CentOS/RHEL系统
使用方法:
sudo nethogs
界面说明:
- PID:进程ID
- Program:进程名称
- Download:下载流量
- Upload:上传流量
- Total:总流量
nethogs
可以帮助你快速识别哪些进程在占用带宽,适合进行进程级别的带宽管理。
使用 sar
工具
sar
是 sysstat
包中的一个工具,可以用于监控系统资源的使用情况,包括网络带宽。
安装 sysstat
:
sudo apt-get install sysstat # 对于Debian/Ubuntu系统 sudo yum install sysstat # 对于CentOS/RHEL系统
查看网络带宽使用情况:
sar -n DEV 1 # 每秒显示一次网络接口的带宽使用情况
界面说明:
- IFACE:网络接口名称
- rxpck/s:每秒接收的数据包数
- txpck/s:每秒发送的数据包数
- rxbyt/s:每秒接收的字节数(下载速度)
- txbyt/s:每秒发送的字节数(上传速度)
- rxcmp/s:每秒接收的压缩数据包数
- txcmp/s:每秒发送的压缩数据包数
- rxmcst/s:每秒接收的多播数据包数
- %ifutil:接口利用率
sar
提供了详细的网络带宽使用情况,适合进行历史数据分析和性能调优。
使用 ip
命令查看网络接口状态
虽然 ip
命令不能直接显示带宽使用情况,但可以用来查看网络接口的状态和统计信息。
查看网络接口状态:
ip link show
查看网络接口统计信息:
ip -s link show
界面说明:
- RX:接收统计信息(数据包数、字节数、错误数等)
- TX:发送统计信息(数据包数、字节数、错误数等)
通过 ip
命令,你可以快速了解网络接口的基本状态和统计信息,但无法获取实时的带宽使用情况。
使用 collectl
工具
collectl
是一个性能监控工具,可以收集和显示系统的各种性能指标,包括网络带宽。
安装 collectl
:
sudo apt-get install collectl # 对于Debian/Ubuntu系统 sudo yum install collectl # 对于CentOS/RHEL系统
使用方法:
sudo collectl -sD -i eth0 # 监控eth0接口的下载速度 sudo collectl -sU -i eth0 # 监控eth0接口的上传速度
界面说明:
- Time:时间戳
- Value:当前速率或流量值
- Min:最小值
- Max:最大值
- Avg:平均值
- Cur:当前值
collectl
提供了灵活的性能监控功能,适合进行详细的带宽分析和调优。
使用 mtr
工具进行网络路径分析
mtr
是一个网络路径追踪工具,可以显示数据包从源到目的地的路径,并统计每个节点的延迟和丢包率,虽然 mtr
主要用于网络路径分析,但也可以间接帮助判断带宽问题。
安装 mtr
:
sudo apt-get install mtr # 对于Debian/Ubuntu系统 sudo yum install mtr # 对于CentOS/RHEL系统
使用方法:
mtr <目标IP或域名>
界面说明:
- Host:节点名称和IP地址
- Loss%:丢包率
- Last, Avg, Best, Wrst:最近一次、平均、最好、最差延迟(ms)
- Size:数据包大小(Bytes)
- Opinion:总体评价(好的、一般的、差的)
mtr
可以帮助你分析网络路径中的瓶颈和问题,间接判断带宽是否受限。
使用 iptables
和 iptraf
进行详细分析
iptraf
是一个实时网络监控工具,可以详细显示网络接口的流量情况,包括各个连接的上传和下载速度。
安装 iptraf
:
sudo apt-get install iptraf # 对于Debian/Ubuntu系统 sudo yum install iptraf # 对于CentOS/RHEL系统
使用方法:
sudo iptraf
界面说明:
- TCP/UDP:协议类型
- Local Address:本地IP地址和端口号
- Foreign Address:远程IP地址和端口号
- Tot Packets:总数据包数
- Tot Size:总字节数(流量)
- Rate (bps):当前速率(比特/秒)
- State:连接状态(ESTABLISHED、TIME_WAIT等)
- Elapsed:连接持续时间(秒)
- Activity:活动指示(->表示上传,<-表示下载,<->表示双向)
- From:数据来源(Local或Remote)
- To:数据去向(Local或Remote)
- Priority:优先级(数值越小优先级越高)
- Protocol Type:协议类型(TCP或UDP)
- Service Name:服务名称(如HTTP、HTTPS等)
各位小伙伴们,我刚刚为大家分享了有关linux如何查看带宽占用的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/10388.html