Linux如何使用命令行,或者脚本测试网速
目录
在Linux中测试网速,你可以根据具体场景(测试互联网出口带宽、内网传输速度或实时流量监控)选择不同的命令行工具。
下表汇总了几种常用方案:
| 测试场景/目的 | 推荐工具 | 核心安装与使用命令 | 关键特点说明 |
|---|---|---|---|
| 测试互联网下载/上传速度 | speedtest-cli | pip install speedtest-clispeedtest-cli 或 speedtest | 最常用,基于Speedtest.net服务器,结果直观反映外网带宽质量。 |
| 测量两点间最大带宽 (如内网) | iperf3 | sudo apt install iperf3服务端: iperf3 -s客户端: iperf3 -c <服务器IP> | 行业标准,需部署服务端与客户端,专为测量网络最大吞吐量设计。 |
| 监控实时流量 | nload | sudo apt install nloadnload | 实时监控网卡进出流量,不进行压力测试,用于观察实时流量。 |
| 综合网络探测 | mtr | sudo apt install mtrmtr -r <目标主机> | 结合ping与tracert,分析到目标主机的延迟和丢包情况。 |
🛠️ 详细使用方法与脚本示例
1. 测试互联网带宽:speedtest-cli
这是最简单直接的方法。如果尚未安装,可使用pip安装:pip install speedtest-cli(如无pip,可先安装python3-pip)。
- 基本测试:运行
speedtest或speedtest-cli,工具会自动选择最佳服务器进行测速,显示下载、上传速度和延迟。 - 指定服务器:运行
speedtest --list查看服务器列表,然后使用ID指定,如speedtest --server 12345。
2. 测量内网或点到点带宽:iperf3
这对于测量局域网内两台机器间的真实传输带宽(例如与NAS、服务器之间)至关重要。
- 在一台机器上启动服务端:
iperf3 -s - 在另一台机器上作为客户端测试:
iperf3 -c <服务端IP地址>- 添加
-R参数可测试反向速度(服务器发,客户端收)。 - 添加
-t 30可指定测试时长(如30秒)。 - 添加
-P 4可指定并行连接数以提升压力。
- 添加
3. 监控实时网络流量:nload
安装后直接运行 nload,它会显示所有网络接口的实时流量图。按左右方向键可切换网卡,按 q 退出。
4. 网络质量与路由跟踪:mtr
这是一个诊断网络问题的强大工具,可以持续探测到目标主机的路径,并统计每一跳的丢包率和延迟。
mtr google.com(交互式模式)mtr -r -c 10 google.com > mtr_report.txt(生成10次探测的报告并保存)
📜 自动化测速脚本示例
你可以将测速过程自动化,定期运行并记录结果。下面是一个使用 speedtest-cli 的简单bash脚本示例:
| |
将上述脚本保存为 speedtest_logger.sh,并赋予执行权限:
| |
然后你可以通过 cron 计划任务让它定期(例如每天凌晨)自动运行。
💡 核心建议
- 理解工具差异:
speedtest-cli测的是互联网出口带宽,iperf3测的是两点间的最大可用带宽。如果是排查内网传输慢的问题,iperf3的结果更具参考价值。 - 排除干扰:测速时尽量关闭其他正在占用网络带宽的应用程序。
- 多次测试:网络速度会有波动,多次测试取平均值会更准确。
如果你能告诉我你主要想测试的场景(例如:想了解家里的宽带实际速度、排查办公室内两台电脑之间的传输速度、还是监控服务器的实时流量),我可以给你更具体的建议。
Buy me a coffee
微信