标签搜索

linux中常用带宽测量工具

mrui
2025-09-13 / 0 评论 / 10 阅读 / 正在检测是否收录...

公网测试工具:speedtest-cli

安装
# CentOS/RHEL系列
yum install epel-release
yum install python-pip
pip install speedtest-cli

# Ubuntu/Debian系列
apt update
# 安装 pipx
sudo apt install pipx
pipx ensurepath

# 安装应用
pipx install speedtest-cli
运行
speedtest-cli

mh2uhlfs.png

使用该命令会自动选择服务器进行测速。不过有时候自动选择的服务器不太理想,你可以手动指定。先看看附近有哪些服务器:

speedtest-cli --list | grep -i China
[root@node1 ~]# speedtest-cli --list | grep -i China
71313) 中国电信 (Xuzhou, China) [1301.96 km]
16204) JSQY - Suzhou (Suzhou, China) [1576.10 km]

选一个延迟比较低的:

speedtest-cli --server 71313

iperf3:内网测试工具

speedtest-cli虽然方便,但有个问题就是测试的是到公网的速度。如果想测试内网带宽,或者两台服务器之间的带宽,那就得用iperf3了。

安装iperf3
# CentOS/RHEL
yum install iperf3

# Ubuntu/Debian
apt install iperf3
测试

iperf3需要一台服务器做服务端,一台做客户端。

在服务端运行:

iperf3 -s

mh2vc0ex.png

在客户端运行:

 iperf3 -c 192.168.99.100

客户端结果
mh2vdpxg.png
服务端结果
mh2vf8nu.png

默认测试10秒钟,也可以指定时间:

iperf3 -c 服务端IP -t 30

测试UDP带宽:

iperf3 -c 192.168.99.100 -u -t 15

客户端结果
mh2vh0hy.png
服务端结果
mh2vhob4.png

仔细观察上面的测试结果可以看到,测试udp的速度时网速反而比tcp的要慢很多,而正常情况是udp速度要比tcp的块。出现这种状况的原因是iperf3 中 UDP ​默认带宽只有1Mbps,而TCP会自动尝试使用所有可用带宽。

解决这一现象的方案是测UDP时手动设置UDP带宽。

iperf3 -u -b 1G -l 1400 -c 192.168.99.100

客户端
mh2vtydv.png

服务端
mh2vunxy.png

wget/curl - 简单实用的下载测试

如果想快速测一下下载速度,不想装额外的工具,那wget和curl就够用了。

下载一个100MB的文件到/dev/null(相当于丢弃),然后显示下载速度。
wget :

wget -O /dev/null http://speedtest.tele2.net/100MB.zip

curl

curl -o /dev/null http://speedtest.tele2.net/100MB.zip
#查看更详细的信息
curl -o /dev/null -w "下载速度: %{speed_download} bytes/sec\n总时间: %{time_total}s\n" http://speedtest.tele2.net/100MB.zip

这种方法的好处是可以测试到特定服务器的速度,比如CDN节点或者合作伙伴的服务器。

nload - 实时监控网络流量

安装nload
# CentOS/RHEL
yum install nload

# Ubuntu/Debian
apt install nload
运行
nload

mh2w22un.png

它会显示一个实时的图表,显示当前的上传和下载速度。如果你有多个网卡,可以用左右箭头键切换。

iftop - 看看谁在占用带宽

iftop比nload更进一步,它不仅能显示总的流量,还能显示每个连接的流量情况。

安装
CentOS/RHEL
yum install iftop

# Ubuntu/Debian
apt install iftop
运行(需要root权限)
iftop

mh2w5x0d.png
iftop的界面有点像top命令,显示当前所有网络连接的流量情况。可以看到每个IP地址的上传下载速度,这对于排查网络问题特别有用。

nethogs - 进程级别的网络监控

安装
# CentOS/RHEL
yum install nethogs

# Ubuntu/Debian
apt install nethogs
运行(需要root权限)
nethogs

nethogs会显示每个进程的网络使用情况,包括进程名、PID、用户等信息。这对于排查哪个应用程序占用带宽特别有用。
mh2w9xeb.png

实用的测试技巧

选择合适的测试时间

网络带宽测试最好在不同时间段多测几次,因为网络状况会随时间变化。我一般会在早上、中午、晚上各测一次,这样能得到比较全面的数据。

注意测试方向

很多人只测下载速度,忽略了上传速度。但对于服务器来说,上传速度同样重要,特别是如果你的服务器需要向用户推送大量数据的话。

考虑并发连接

单线程测试得到的带宽可能不能反映真实情况。可以试试多线程测试:

iperf3 -c 服务端IP -P 4

这个命令会启动4个并行连接进行测试。

记录测试结果

把测试结果记录下来,建立一个基线。这样以后出现问题的时候,你就能快速判断是不是网络带宽的问题了。

如果测试结果不理想,可以按这个顺序排查:

  1. 先确认是不是测试方法的问题,换个工具再测一次
  2. 检查服务器的网卡配置,看看是不是限速了
  3. 联系网络管理员或者运营商,确认线路状况
  4. 检查防火墙和安全组设置,看看是不是有限制
0

评论 (0)

取消