Linux如何使用命令行,或者脚本测试网速

在Linux中测试网速,你可以根据具体场景(测试互联网出口带宽、内网传输速度或实时流量监控)选择不同的命令行工具。

下表汇总了几种常用方案:

测试场景/目的推荐工具核心安装与使用命令关键特点说明
测试互联网下载/上传速度speedtest-clipip install speedtest-cli
speedtest-clispeedtest
最常用,基于Speedtest.net服务器,结果直观反映外网带宽质量。
测量两点间最大带宽 (如内网)iperf3sudo apt install iperf3
服务端iperf3 -s
客户端iperf3 -c <服务器IP>
行业标准,需部署服务端与客户端,专为测量网络最大吞吐量设计
监控实时流量nloadsudo apt install nload
nload
实时监控网卡进出流量,不进行压力测试,用于观察实时流量。
综合网络探测mtrsudo apt install mtr
mtr -r <目标主机>
结合pingtracert,分析到目标主机的延迟和丢包情况。

🛠️ 详细使用方法与脚本示例

1. 测试互联网带宽:speedtest-cli

这是最简单直接的方法。如果尚未安装,可使用pip安装:pip install speedtest-cli(如无pip,可先安装python3-pip)。

  • 基本测试:运行 speedtestspeedtest-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脚本示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash

# 定义日志文件路径
LOG_FILE="/var/log/speedtest.log"

# 执行测速,使用JSON格式输出以便解析,并追加到日志文件
# 注意:某些版本使用 `speedtest-cli --json`,新版可能使用 `speedtest --format=json`
echo "===== $(date) =====" >> $LOG_FILE
speedtest --format=json >> $LOG_FILE 2>&1
# 为了让日志更易读,可以添加一个空行
echo "" >> $LOG_FILE

将上述脚本保存为 speedtest_logger.sh,并赋予执行权限:

1
chmod +x speedtest_logger.sh

然后你可以通过 cron 计划任务让它定期(例如每天凌晨)自动运行。

💡 核心建议

  • 理解工具差异speedtest-cli 测的是互联网出口带宽iperf3 测的是两点间的最大可用带宽。如果是排查内网传输慢的问题,iperf3 的结果更具参考价值。
  • 排除干扰:测速时尽量关闭其他正在占用网络带宽的应用程序。
  • 多次测试:网络速度会有波动,多次测试取平均值会更准确。

如果你能告诉我你主要想测试的场景(例如:想了解家里的宽带实际速度、排查办公室内两台电脑之间的传输速度、还是监控服务器的实时流量),我可以给你更具体的建议。

Buy me a coffee
微信微信
0%