面对服务器网络卡顿或需要评估带宽时,如何在命令行环境下快速有效地测试网速?本文将系统梳理从快速应答到深度排查的完整命令行测速方案,涵盖常用工具与实战技巧。
一、什么是命令行网络测速?
在 Linux 系统中,命令行网络测速指的是利用终端工具对网络连接的带宽、延迟、丢包率等关键性能指标进行量化和评估的过程。其核心目的是检查网络质量、定位瓶颈或验证带宽配置。

二、五大测速方法与实战命令
根据不同的应用场景,可以选择以下工具进行针对性的测试。
1. 速测:快速获取公网带宽(speedtest-cli)
此方法通过连接公共测速服务器,快速获取上下行带宽及延迟,适合需要立即汇报结果的场景。
# 简洁模式,输出下载、上传、延迟三行数据
speedtest-cli --simple
# 获取完整测速报告
speedtest-cli
# 以字节为单位显示带宽速率
speedtest-cli --bytes
2. 对测:测量两点间真实带宽(iperf3)
如需测试两台服务器间的实际传输带宽(如数据中心内网),iperf3 是专业选择。它需要一端作为服务器,另一端作为客户端进行测试,支持 TCP/UDP 及多线程。
# 在服务端启动监听(默认端口5201)
iperf3 -s
# 在客户端测试到服务端的下载速度
iperf3 -c <服务器IP地址>
# 测试客户端到服务端的上传速度(-R 反向测试)
iperf3 -c <服务器IP地址> -R

3. 监控:实时观测网络流量(iftop / nload)
当网络出现卡顿,需要查看实时流量分布时,可视化工具非常有效。
- iftop:类似 top 命令,分连接显示实时流量。
- nload:通过动态柱状图直观显示网卡进出速度。
# 监控所有网络连接的实时流量(需sudo)
sudo iftop
# 监控指定网卡(如eth0)
sudo iftop -i eth0
# 使用nload查看简洁的动态流量图
nload eth0

4. 探路:诊断网络路径与质量(mtr)
网络慢不一定是带宽问题,可能是中间路由节点存在高延迟或丢包。mtr 结合了 ping 和 traceroute 的功能,持续探测路径并生成统计报告。
# 对目标进行动态路径分析
mtr www.baidu.com
# 以报告模式运行10次后停止,结果输出到文件
mtr -r -c 10 www.baidu.com > network_report.txt
# 不解析主机名,加快显示速度
mtr -n www.baidu.com
5. 记录:长期流量统计与趋势分析(vnStat)
对于服务器运维,了解历史流量趋势至关重要。vnStat 是一个后台守护进程,持续记录流量数据并生成日、月报表。
# 查看实时流量速率
vnstat -l
# 查看今日流量使用详情
vnstat -d
# 查看本月流量汇总
vnstat -m

三、系统化网络诊断流程
一次完整的 网络诊断 应遵循由内及外的排查逻辑,而非单一测速。
- 检查本地配置:确认网卡 IP、路由是否正确。
ip addr show
ip route show
- 测试内网连通性:ping 网关,排除内网问题。
ping -c 4 <网关IP>
- 检查 DNS 解析:确认域名解析正常。
nslookup www.baidu.com
- 执行带宽测试:根据需求,使用
speedtest-cli(公网)或 iperf3(内网)进行最终带宽验证。
四、工具安装指南
不同 Linux 发行版的安装命令如下:
-
Debian/Ubuntu:
sudo apt update
sudo apt install speedtest-cli iperf3 iftop nload vnstat mtr
-
RHEL/CentOS/Rocky Linux:
sudo yum install epel-release
sudo yum install iperf3 iftop nload vnstat mtr
# speedtest-cli 需通过pip安装
sudo pip3 install speedtest-cli
-
通用 Python 安装(speedtest-cli):
sudo pip3 install speedtest-cli
总结
掌握命令行测速是服务器 运维排查 的基础技能。从 speedtest-cli 的快速响应,到 iperf3 的精准对测,再到 mtr、vnStat 的深度诊断,不同工具应对不同场景。关键在于理解网络分层原理,在遇到问题时能快速选取合适工具并解读其数据背后的含义。
|