wget如何显示进度和平均速度?

wget 在下载文件时会自动显示进度条、已下载量、剩余时间以及实时计算的平均下载速度。

带宽是衡量网络性能的关键指标,直接影响文件传输速度、视频流畅度、在线游戏体验等,在 Linux 系统上,有多种强大且灵活的工具可以帮助你精确测量网络带宽,本文将详细介绍几种常用且可靠的方法,涵盖从简单快速测试到专业级精准测量的不同场景。

理解带宽测试类型

使用 wget 会显示进度和平均速度)
(图片来源网络,侵权删除)

在开始之前,了解两种主要的带宽测试类型很重要:

  1. 公网带宽测试: 测量你的 Linux 主机连接到互联网(公网)的实际下载和上传速度,这通常是你从 ISP(互联网服务提供商)购买的带宽套餐的速度,常用工具如 speedtest-cli
  2. 内网/局域网带宽测试: 测量你的 Linux 主机与同一局域网(LAN)内另一台设备(如另一台服务器、NAS、路由器)之间的传输速度,这有助于诊断局域网瓶颈、评估网络设备(交换机、网卡)性能或服务器间传输能力,常用工具如 iperf3iperf

使用 speedtest-cli 测试公网带宽 (简单直观)

speedtest-cli 是流行的 Speedtest.net 网站的命令行版本,由 Ookla 提供,是测试互联网连接(下载/上传)速度的行业标准工具之一。

  1. 安装 speedtest-cli

    • 基于 Debian/Ubuntu 的系统:
      sudo apt update
      sudo apt install speedtest-cli
    • 基于 RHEL/CentOS/Fedora 的系统:
      # RHEL/CentOS 7/8 (需启用 EPEL 仓库) / Fedora:
      sudo yum install speedtest-cli  # 或使用 `dnf` 代替 `yum`
    • 使用 Python pip (通用方法):
      pip install speedtest-cli  # 可能需要 `pip3` 和 `sudo`
  2. 运行测试:
    最简单的命令即可开始测试:

    speedtest-cli

    程序会自动选择距离你最近的 Speedtest 服务器,并输出下载速度、上传速度和延迟(Ping)的结果。

    使用 wget 会显示进度和平均速度)
    (图片来源网络,侵权删除)
  3. 常用选项:

    • --simple: 仅输出简洁的 Ping、下载、上传速度。
    • --bytes: 以字节/秒 (Bytes/s) 而不是比特/秒 (bits/s) 显示速度,注意:1 Byte = 8 bits。
    • --share: 测试完成后生成一个 Speedtest.net 的结果图片链接,方便分享。
    • --server [ID]: 指定要测试的服务器 ID,运行 speedtest-cli --list 查看可用服务器列表及其 ID。
    • --source [IP]: 如果主机有多个 IP 地址,指定源 IP 进行测试。
  4. 结果解读:
    输出结果会明确显示:

    • Ping: 延迟,单位毫秒 (ms),越低越好。
    • Download: 下载速度,默认单位 Mbit/s (兆比特每秒)。
    • Upload: 上传速度,默认单位 Mbit/s (兆比特每秒)。

    优点: 使用广泛认可的测试平台,结果直观,易于理解,测试公网速度的首选。
    缺点: 依赖于 Speedtest.net 的服务器和网络状况,不能直接测试局域网内部速度。

使用 iperf3 / iperf 测试内网/局域网带宽 (专业精准)

iperf3 (或它的前身 iperf) 是网络性能测试的黄金标准工具,特别擅长测量两个端点之间的最大可用带宽,它采用客户端-服务器模式工作。

场景: 测试 Server A 和 Server B 之间的带宽。

使用 wget 会显示进度和平均速度)
(图片来源网络,侵权删除)
  1. 安装 iperf3

    • 在 Server A (作为 iperf 服务器端) 和 Server B (作为 iperf 客户端) 上都需要安装:
      • 基于 Debian/Ubuntu:
        sudo apt update
        sudo apt install iperf3
      • 基于 RHEL/CentOS/Fedora:
        sudo yum install iperf3  # 或使用 `dnf`
  2. 启动 iperf3 服务器端:
    Server A 上运行:

    iperf3 -s
    • -s 表示以服务器模式运行。
    • 默认监听 TCP 端口 5201,使用 -p [port] 指定其他端口(需确保防火墙允许该端口)。
  3. 在客户端发起测试:
    Server B 上运行:

    iperf3 -c [Server_A的IP地址]
    • -c [IP] 表示以客户端模式运行,并连接到指定 IP 的服务器。
  4. 理解输出:
    测试完成后,客户端会输出类似以下的结果摘要:

    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec    0             sender
    [  5]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec                  receiver
    • Transfer: 在测试间隔 (Interval) 内传输的数据总量。
    • Bitrate: 平均带宽速率,这是最关键的结果,单位通常是 bits/sec (比特每秒) 或根据数据量自动调整 (Gbits/sec, Mbits/sec)。
    • Retr: 重传次数(TCP 测试中),高重传可能表示网络不稳定。
  5. 常用选项 (客户端):

    • -t [秒数]: 设置测试时长(默认 10 秒)。-t 30 测试 30 秒。
    • -P [并行数]: 使用多个并行连接流进行测试(模拟多线程下载)。-P 4 使用 4 个连接,这有助于发现单流无法达到的更高带宽(常见于高带宽链路)。
    • -R / --reverse: 反转测试方向,默认是客户端发送数据(测上传),服务器接收。-R 让服务器发送数据,客户端接收(测下载)。非常重要! 明确你想测的是从客户端到服务器(上传)还是从服务器到客户端(下载)。
    • -u: 使用 UDP 协议代替 TCP,UDP 测试能测量最大吞吐量、丢包率和抖动(延迟变化),常用于 VoIP、视频流等场景的评估,需要配合 -b 指定目标带宽 (如 -b 100M 表示 100Mbps)。
    • -p [端口]: 指定服务器监听的端口(如果服务器端更改了默认端口)。
    • -i [秒数]: 设置带宽报告输出的间隔时间(默认 1 秒)。

    优点: 非常精准,可控性强(时长、协议、方向、并行流),是测试局域网、数据中心内部网络、点对点连接带宽的行业标准。
    缺点: 需要两端配合安装和配置,对新手来说命令行选项稍显复杂。

使用系统内置工具进行快速检查

Linux 本身提供了一些工具可以实时查看网络接口的流量速率,虽然不是严格的“带宽测试”,但对于快速检查当前活动或初步判断瓶颈很有用。

  1. nload (推荐):
    一个简洁、实时的控制台网络流量监控工具,按接口显示入站 (Incoming) 和出站 (Outgoing) 的实时速率(bps)和总数据量。

    • 安装:
      # Debian/Ubuntu
      sudo apt install nload
      # RHEL/CentOS (EPEL) / Fedora
      sudo yum install nload
    • 使用:
      nload  # 显示所有接口
      nload eth0  # 指定监控 eth0 接口

      按左右方向键切换接口,按 q 退出。

  2. iftop
    类似 top 命令,实时显示网络连接的带宽使用情况(按主机对或端口对排序)。

    • 安装:
      # Debian/Ubuntu
      sudo apt install iftop
      # RHEL/CentOS (EPEL) / Fedora
      sudo yum install iftop
    • 使用:
      sudo iftop  # 需要 root 权限
      sudo iftop -i eth0  # 指定接口

      界面显示当前活动的连接及其实时速率,按 P 切换端口显示,按 T 切换显示累计/实时流量,按 q 退出。

  3. ip 命令 + watch
    利用内核统计信息。

    • 查看特定接口 (如 eth0) 的统计:
      ip -s link show eth0
    • 结合 watch 命令进行动态刷新(每 1 秒):
      watch -n 1 "ip -s link show eth0"

      关注 RX (接收) 和 TX (发送) 部分的 bytes 计数,通过计算两次刷新之间字节数的差值除以时间间隔,可以估算出瞬时速率(需要手动计算)。

    优点: 无需额外安装(ip/watch),或安装简单(nload/iftop),实时性强。
    缺点: 显示的是当前实际流量,并非链路的最大承载能力(带宽),受限于当前应用的网络活动。

使用 wgetcurl 进行简单下载测试

虽然不是专业的带宽测试工具,但通过从已知的大文件源(如大型开源镜像站、云存储)下载文件,可以粗略估计下载速度。

# 使用 curl (需要 -o /dev/null 丢弃输出,并用 -w 格式化输出速度)
curl -o /dev/null -w 'Download speed: %{speed_download} bytes/secn' http://example.com/largefile.iso

注意: 结果受限于源服务器的上传带宽、网络拥塞程度、本地磁盘 I/O(如果保存文件)等因素,只能作为参考,不如 speedtest-cliiperf3 准确和稳定。

选择哪种方法?

  • 想知道你的互联网套餐速度?speedtest-cli
  • 要测试办公室/家里两台电脑或电脑与 NAS 之间的传输速度?iperf3
  • 想实时看看哪个程序或连接在占用网络?nloadiftop
  • 快速粗略估计下载速度?wgetcurl 下载大文件。

测试注意事项与最佳实践

  1. 关闭无关应用: 测试前关闭可能占用带宽的程序(如云同步、在线视频、大文件下载/上传、其他用户的流量),确保测试结果反映的是网络链路本身的能力。
  2. 有线连接优先: 对于需要准确性的测试(尤其是 iperf3),尽量使用有线以太网 (Ethernet) 连接,Wi-Fi 信号强度、干扰、协议限制会极大影响结果稳定性。
  3. 多次测试取平均: 网络状况可能有波动,进行 3-5 次测试取平均值结果更可靠。
  4. 明确测试方向: 使用 iperf3 时,务必清楚 -R 参数的作用,明确你是在测上传 (Upload) 还是下载 (Download)。
  5. 考虑协议开销: 工具报告的速率通常是应用层速率,实际线路上传输的数据还包含 TCP/IP 包头等开销(大约 2-5%),物理链路的最大理论速率(如 1Gbps)会略高于实际可用的应用层带宽。
  6. 防火墙设置: 使用 iperf3 时,确保服务器端的防火墙开放了指定的监听端口(默认 5201/TCP 或 5201/UDP)。
  7. MTU 设置: 局域网内两端设备的 MTU 设置不一致可能导致性能下降,确保一致(通常默认 1500 即可)。
  8. 硬件能力: 确保测试机器的 CPU、内存、网卡本身不是瓶颈,测试高带宽(如 10Gbps+)时,需要足够性能的硬件支持。
  9. 结果单位: 注意工具输出速度的单位是 bits per second (bps, Kbps, Mbps, Gbps) 还是 Bytes per second (B/s, KB/s, MB/s, GB/s),1 Byte/s = 8 bits/s,网络带宽通常以 bits/s 为单位销售和讨论。

其他有用工具

  • mtr (traceroute + ping): 诊断网络路径和延迟问题,有助于理解带宽瓶颈发生在哪里。
  • ethtool: 查看和配置网卡参数(如速度、双工模式),确认网卡协商速率是否正确(如 ethtool eth0)。
  • vnstat: 轻量级的网络流量监控守护进程,记录接口的长期流量统计(小时/天/月)。
  • bmon: 另一个功能丰富的实时网络带宽监控和调试工具。

安全提示:

  • 从官方仓库或项目官网下载工具,避免使用来源不明的脚本或二进制文件。
  • 运行 iperf3 服务器时,如果暴露在公网,请使用 -p 更改默认端口并确保防火墙严格限制访问来源,避免被滥用,测试完成后及时停止服务器端。

通过熟练掌握以上工具和方法,你将能够有效地诊断 Linux 系统的网络带宽性能,无论是评估互联网连接质量,还是优化内部网络架构,都能做到心中有数。


引用说明:

  • iperf3 项目官网: https://software.es.net/iperf/ (ESnet)
  • speedtest-cli 项目仓库: https://github.com/speedtest-cli/speedtest-cli (Ookla Speedtest 命令行客户端)
  • nload 项目信息: 通常通过系统包管理器 (apt, yum, dnf) 安装,项目主页可查找。
  • iftop 项目信息: 通常通过系统包管理器 (apt, yum, dnf) 安装,项目主页可查找。
  • Linux ip 命令手册页 (man ip)
  • RFCs (定义 TCP/UDP/IP 协议): https://www.rfc-editor.org/ (RFC 793 – TCP, RFC 768 – UDP)

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4288.html

(0)
酷番叔酷番叔
上一篇 2025年6月22日 23:53
下一篇 2025年6月12日 18:08

相关推荐

  • 根目录为何是系统起点?

    根目录是文件系统的最高层级起点,所有其他目录和文件都从这里开始分支,它是路径的起点符号(如 / 或 \),代表整个存储结构的唯一入口和基础。

    2025年6月19日
    1400
  • 怎样在Linux虚拟机轻松进入桌面环境?

    前期准备安装虚拟化软件VMware Workstation(官网下载)VirtualBox(官网下载)二者均提供免费版本,安装时需启用虚拟化支持(在BIOS中开启Intel VT-x/AMD-V),准备Linux镜像推荐发行版:Ubuntu(自带桌面)、CentOS(需手动安装桌面)从官方渠道下载ISO:Ubu……

    2025年7月13日
    700
  • 为什么你的Linux文件结构总是混乱?

    在Linux系统中,文件结构是操作系统的核心骨架,它决定了文件、目录和设备的组织方式,无论您是系统管理员、开发者还是普通用户,理解如何查看文件结构都至关重要——它能帮助您高效管理系统资源、排查故障或部署应用,下面将详细介绍多种查看方法,从基础命令到高级工具,均附带实用示例,Linux采用层级树形结构,以根目录……

    2025年7月5日
    900
  • Linux软件装在哪?秒查所有安装位置

    通过包管理器查询(推荐)适用于通过 apt、yum、dpkg、rpm 等安装的软件,Debian/Ubuntu (APT/Dpkg)查询已安装软件的所有文件路径:dpkg -L 软件名# 示例:dpkg -L nginx查找软件包安装的二进制文件位置:dpkg -S 软件名# 示例:dpkg -S nginxR……

    2025年7月5日
    1400
  • 如何检查系统防火墙服务异常?

    根据防火墙工具选择查看方式Linux有多种防火墙管理工具,需先确认系统使用的工具:若显示 active (running) 表示对应工具已启用(如 firewalld、ufw),具体查看方法firewalld(CentOS/RHEL/Fedora)查看运行状态:sudo systemctl status fir……

    2025年7月7日
    700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信