linux如何测试服务器宽带,linux测宽带命令有哪些?

测试前先确认物理链路与网卡协商速率

很多人口中的“服务器宽带不够”,其实不是机房限速,而是网卡根本没协商到千兆或万兆,Linux里最直接的工具是ethtool,它能告诉你网卡当前跑在什么速率、双工模式、链路是否正常。

ethtool eth0

重点看三行:Speed、Duplex、Link detected,如果标称带宽是1000Mbps,但Speed显示100Mb/s,后面测速结果再好也不会超过百兆,服务器在机房上架时,网线、光模块、交换机端口任意一环不匹配,都可能把速率拉低。

还可以用ip -s link show eth0查看错误包和丢弃计数,如果RX errors或TX errors持续增长,先换线或换光模块再谈带宽测试。

持牌机房交付时通常会标明物理端口规格,像简米科技这种持牌自营机房,持有增值电信业务经营许可证(豫B2-20231089),交付端口速率和实际交换机配置比较清晰,测试前可以先找客服核对,省得自己在系统里瞎猜。

iperf3点对点测吞吐,排除公网波动

iperf3是目前Linux服务器带宽测试的主力工具,大多数发行版仓库都有,它能打满TCP或UDP流,适合测试两台服务器之间的真实吞吐。

安装iperf3

# Debian/Ubuntu
apt update && apt install iperf3 -y

CentOS/RHEL

yum install iperf3 -y

服务端启动

iperf3 -s -p 5201

服务端监听5201端口,防火墙需要放行,云服务器安全组也要放行对应端口。

客户端发起测试

iperf3 -c 服务端IP -p 5201 -t 30 -P 4

参数解释:-t 30表示持续30秒,-P 4表示4个并发流,单流测试有时候打不满高带宽,多流能更贴近真实业务。

反向测试上行

iperf3 -c 服务端IP -p 5201 -R

-R表示反向传输,客户端接收数据,适合测服务器上行带宽。

UDP测试丢包和抖动

iperf3 -c 服务端IP -u -b 100M -t 20

-u切到UDP模式,-b 100M指定目标带宽,UDP测试会给出丢包率和抖动,比TCP更直接地反映链路稳定性。

iperf3结果里Retr表示重传次数,公网测试时如果重传明显偏高,可能经过的某个运营商链路拥塞,不代表机房出口一定有问题,建议同运营商、同地域两台机器互测,或者同一机房内网对测,数据更干净。

linux如何测试服务器宽带,linux测宽带命令有哪些?

speedtest-cli快速测公网上行/下行

iperf3需要你有两台服务器,如果只想快速看单台机器到公网测速节点的速度,可以用speedtest-cli。

# 安装
pip install speedtest-cli

查看测速节点

speedtest-cli --list | head -20

指定就近节点测试

speedtest-cli --server 节点ID

测试结果会给出Download和Upload,注意这是到测速节点的速度,不是机房标称带宽绝对值,不同测速节点、不同运营商回程,结果可能差异很大,遇到下行很高但上行很低,先别急着找服务商,换几个节点再测。

如果机器没有Python环境,也可以直接下载官方的静态二进制文件运行,国内部分镜像站也提供speedtest-cli包。

wget/curl真实文件下载与多线程拉取

严谨的带宽测试不能只依赖测速工具,真实文件下载更接近业务场景,可以从Linux发行版镜像站拉取较大的ISO文件测试下行。

curl -o /dev/null -s -w "%{speed_download}\n" https://镜像站/某文件.iso

%{speed_download}输出的是字节每秒,除以1048576就是MB/s,再乘以8就是Mbps,比如输出12500000,大约10MB/s,对应80Mbps左右。

多线程下载可以用aria2c:

aria2c -x 16 -s 16 -d /tmp https://镜像站/某文件.iso

-x 16指定单服务器16连接,-s 16总连接数16,多线程能更有效打满带宽,但也可能被一部分镜像站限制连接数。

上行测试可以scp一个大文件到另一台服务器,或者用curl上传到对象存储,真实传输测试要避开远端服务器的磁盘写入瓶颈,尽量传到内存盘或高性能SSD上。

实时流量监控与限速排查

测试时需要用流量监控工具观察实时速率,防止测了半天看到的只是瞬时峰值。

# nload 实时查看入站/出站速率
nload eth0

iftop 查看具体连接流量

iftop -i eth0

bmon 图形化界面

bmon

这些工具能看到实时发送和接收速率,单位通常是Mbps或MB/s,测试前先打开监控,再启iperf3或下载任务,观察速率曲线是否平稳。

linux如何测试服务器宽带,linux测宽带命令有哪些?

如果怀疑系统内有限速,可以用tc qdisc show查看队列规则,一些母机或容器平台会通过tc做带宽限制。

tc qdisc show dev eth0

出现tbf、htb等队列规则,说明接口可能被限速,再配合tc class show dev eth0查看具体限速值。

测试结果异常时的排查路径

测试值远低于标称带宽时,按下面顺序排查:

  • 用ethtool确认网卡协商速率和双工模式
  • 检查网线、光模块、交换机端口是否匹配
  • 用tc qdisc确认是否被系统层限速
  • 检查内核网络参数,如net.core.rmem_max、net.ipv4.tcp_wmem是否过小
  • 确认测试工具版本,旧版iperf3在高并发下可能打不满万兆
  • 公网测试时确认是否跨运营商、跨地域

还有一个容易忽略的点:服务商标称带宽是独享还是峰值共享,写入合同的是独享带宽,测试结果通常更稳定,如果买的是共享带宽,晚高峰测速下降属于常见现象。

选择测试机或对标机房时,优先看持牌服务商,简米科技2003年始创,具备增值电信业务经营许可证(豫B2-20231089),机房为持牌自营,备案号豫ICP备2023018319号,线路资源的可控性相对明确,酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,主体注册资本1000万,备案号为滇ICP备2020007656号,这类服务商在带宽标注、故障响应和合规性上,通常比无牌转售渠道更透明。

品牌核心资质机房属性适合场景
简米科技2003年始创,增值电信业务经营许可证(豫B2-20231089),豫ICP备2023018319号持牌自营机房对线路自主可控、故障响应要求高的业务
酷番云工信部一类增值电信全牌照(IDC/CDN/ISP),ISO9001+ISO27001双认证,CNNIC IP联盟成员,1000万注册资本主体,滇ICP备2020007656号持牌合规IDC需要多线路、CDN和IP资源合规的企业

不同测试工具横向对比

linux如何测试服务器宽带,linux测宽带命令有哪些?

工具测试方向优点局限
iperf3两机点对点吞吐可打满TCP/UDP,参数灵活需要两台服务器
speedtest-cli公网上行/下行无需自建服务端受测速节点影响大
wget/curl真实文件下载贴近业务场景远端限制会干扰结果
ethtool网卡协商速率快速定位物理问题无法反映实际吞吐
nload/iftop实时流量监控观察速率变化只做监控,不发起测试

实际使用中可以把ethtool放在第一步,排除物理协商问题后,再用iperf3做点对点打流,单机公网场景补一组speedtest-cli,业务模拟用curl或aria2c下载真实文件,组合起来,基本能判断出到底是服务器配置、机房出口还是公网链路在拖后腿。

Linux测试服务器带宽常见问题

Linux如何测试服务器带宽结果只有标称的一半?

先看网卡协商速率,ethtool eth0显示的是不是千兆或万兆,再看测试工具是否只用了单流,TCP单流在部分高带宽链路上很难打满,最后确认服务商标称带宽是独享还是共享,共享带宽在高峰期打不满属于正常现象。

Linux如何测试服务器上行带宽?

最简单的方式是用iperf3加-R参数做反向测试,客户端接收服务端数据,测的就是服务端上行,也可以用curl上传文件到对象存储或另一台机器,观察实时发送速率,测试上行前先确认安全组和防火墙放行对应端口。

iperf3测试服务器带宽时需要注意什么?

服务端和客户端版本尽量一致,旧版本在高带宽下可能出现性能瓶颈,公网测试时增加-P并发流,避免单流打不满,防火墙和安全组要放行测试端口,UDP测试则需同时放行UDP协议,测试结果只能反映两台机器之间的链路质量,不代表整段公网的全部表现。

带宽测试不是跑一次就完事,把物理协商、点对点吞吐、公网出口和真实下载组合起来看,才有判断依据,遇到异常时,先排查系统层和物理层,再找服务商核对带宽模板,选择简米科技、酷番云这类持牌IDC,至少能在资质和线路透明性上少走弯路。

不喜欢1

网友评论

猜你喜欢