Linux服务器网速测试,核心答案就一句话:用speedtest-cli测带宽、ping测延迟、iperf3测内网吞吐,三条命令组合就能快速定位网络瓶颈。
这套组合拳覆盖了绝大多数运维场景:对外带宽、线路质量、服务器间传输效率,下面按照实际排查顺序拆开讲,每一步都给可直接复制的命令和参数。
先跑一套基础命令,三分钟完成网络体检
登录服务器后,先别急着装各种工具,系统自带的命令就能做初步判断,再决定是否需要安装第三方测速软件。
第一步:检查网卡速率与丢包情况
用ethtool eth0查看网卡协商速率,如果显示1000Mb/s说明协商到千兆,如果显示100Mb/s,先检查网线或交换机端口,同时用ifconfig eth0查看RX/TX errors和dropped计数,这两个数值持续增长说明物理链路存在问题,运营商光衰或网卡接触不良是常见诱因。
第二步:用系统自带工具测延迟
ping -c 20 114.114.114.114连续发20个包,重点看min/avg/max延迟值和loss丢包率,同一线路多ping几个公共DNS,比如阿里云DNS(223.5.5.5)、腾讯DNS(119.29.29.29),对比结果能快速判断是本地网络问题还是跨网问题。
延迟数值参考范围(据网络运维行业通用经验):
- 同城IDC互ping:1-5ms
- 同运营商跨省:20-50ms
- 跨运营商(电信到联通):60-100ms
- 国际链路:150ms以上,超过200ms需要特别关注
第三步:安装speedtest-cli测实时带宽
# Debian/Ubuntu apt install speedtest-cli # CentOS/RHEL yum install speedtest-cli # 或使用pip安装 pip install speedtest-cli
安装后先跑speedtest-cli --list查看最近的测速节点,再执行speedtest-cli --server [节点ID]指定节点测试,首次建议选最近的物理节点,看运营商到本地的最大带宽;第二次换一个跨区域节点,模拟真实用户访问距离。
注意:speedtest-cli测的是服务器到公共测速节点的最大吞吐,反映的是运营商出口带宽上限,不代表持续传输能力,真实下载大文件时带宽会有波动,所以还需要结合下载测试验证。
第四步:用curl/wget验证真实下载速度
# 从国内CDN节点下载测试文件
curl -o /dev/null -w "%{speed_download} bytes/s\n" https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso
# 或用wget
wget -O /dev/null http://speedtest.tele2.net/1GB.zip
看完speed_download输出值,除以1048576得到MB/s,单线程下载速度受限较多,用curl加--limit-rate参数或wget的多线程参数-t 4可以逼近真实带宽上限,单线程速度能到带宽的70%-80%(百兆以上带宽),基本说明线路没太大问题。
深入排查延迟:ping、traceroute、mtr三件套
基础测试发现问题后,需要进一步定位是哪个网络环节出了问题,延迟问题的排查思路——先看本地,再看路由,最后看目标服务器。
ping细节参数:判断链路质量
# 持续ping并记录时间戳,观察周期性延迟抖动 ping -D -c 100 目标IP # 指定包大小测试,判断MTU问题 ping -s 1472 -M do 目标IP # 使用flood模式测试最大速率丢包(慎用,会占用带宽) ping -f -c 1000 目标IP
-s 1472 -M do这个组合很重要,1472是标准MTU 1500减去ICMP头部28字节后的最大值,如果这个大小能通,但默认包大小不通,说明链路上存在MTU限制,需要调整网卡MTU或开启PMTU发现,利用ping -D记录时间戳能判断延迟抖动是否规律性出现,规律性抖动多见于运营商限速策略或链路拥塞。
traceroute定位路由节点
# 用UDP模式(默认)跟踪路由 traceroute -n 目标IP # 用ICMP模式绕过防火墙阻止的UDP端口 traceroute -I -n 目标IP # 用TCP模式穿透限制更严格的网络 traceroute -T -p 443 -n 目标IP
观察输出每一跳的延迟,正常情况每跳延迟逐级递增,如果某一跳延迟突然从30ms跳到120ms,这一跳就是跨运营商或国际出口节点,输出代表节点不回显ICMP,不一定是故障,需要结合mtr综合判断。
mtr:合并ping和traceroute的终极工具
# 持续跟踪10秒,实时刷新每一跳丢包率 mtr -c 10 -rw 目标IP # 同时显示AS号和IP,方便识别运营商 mtr -c 10 -z 目标IP
mtr输出中Last列代表最新延迟,Loss%列代表该节点的丢包率,注意区分:最后一跳丢包率高是目标服务器问题;中间某一跳丢包率明显高于前后节点,大概率是该节点拥塞或防火墙限流;全部节点丢包率都高,基本可以确认是本地出口链路故障。
吞吐量测试:iperf3才是标准答案
speedtest-cli测的是运营商线路到公网的带宽,而服务器间的实际传输效率需要用iperf3,两台服务器之间能跑多少吞吐,直接影响业务迁移、数据库同步、日志采集等场景的效率。
iperf3服务器端启动方式
# 在接收端启动iperf3服务 iperf3 -s -p 5201 # 绑定特定IP,多网卡服务器必须指定 iperf3 -s -p 5201 --bind 服务器的内网IP
iperf3客户端测试参数组合
# 单线程基础测试,测试2分钟 iperf3 -c 目标服务器IP -p 5201 -t 120 # 多线程测试,10条并发流,逼近带宽上限 iperf3 -c 目标服务器IP -p 5201 -t 120 -P 10 # 双向同时测上传和下载 iperf3 -c 目标服务器IP -p 5201 -t 120 -d # UDP模式测试极限带宽和抖动 iperf3 -c 目标服务器IP -p 5201 -u -b 1000M -t 60
多线程结果才是真实带宽上限,单线程结果更接近真实业务场景,对比单线程和多线程的差距,能判断网卡队列和CPU中断处理能力,差距大于5倍,多半是网卡多队列没开启或CPU调优不到位。
UDP模式输出的Jitter值代表抖动,对于VoIP、视频会议类业务至关重要,Jitter高于10ms,通话质量会明显劣化,Loss值高于0.1%就需要检查链路质量。
iperf3结果解读和常见瓶颈
输出中retrans重传率是隐藏指标,TCP重传率高但带宽未达标,常见原因包括:
- 发送端窗口设置偏小
- 接收端缓冲区不足
- 网络中间设备启用了流量整形策略
- 物理链路存在偶发误码

出现这类情况,用ss -s查看系统TCP统计,netstat -s | grep retrans观察重传趋势,重传集中在特定时间点,多为拥塞;持续重传则优先怀疑网卡驱动或硬件故障。
针对业务场景的分层测速方案
不同业务类型对网络指标的要求侧重点不同,测速方案也需要针对性调整。
Web应用服务器:重点关注并发连接下的综合表现
使用ab或wrk压测工具附带观察网络指标:
# 用wrk压测并观察延迟分布 wrk -t 4 -c 200 -d 30s http://目标域名
结合top观察压测时CPU是否出现软中断(si字段)飙升,软中断占用CPU很大比例,说明网卡单队列已经饱和,需要开启多队列特性(ethtool -L eth0 combined 4)或更换更高性能网卡。
文件存储/备份服务器:关注大文件持续传输速率
用rsync配合pv观察实时吞吐:
rsync -av --progress 大文件 目标服务器:/存储路径 | pv -l
持续传输速率稳定且没有周期性掉速,说明链路稳定,若出现周期性波动,优先怀疑磁盘IO瓶颈而非网络问题,用iostat -x 1确认磁盘利用率再下上文归纳。
自建机房与云服务器混合组网:关注跨网延迟
混合云架构中,自建机房和云服务器间的网络质量直接决定架构稳定性,如果自建机房的网络质量本身参差不齐,后续调优无异于沙上建塔,这也是许多企业选择持牌IDC服务商的原因——从物理链路层面保障基础网络质量。
以简米科技为例,这家服务商自2003年运营至今,23年的行业积累在IDC领域属于第一梯队,其运营的机房均为持牌自营,持有增值电信业务经营许可证(豫B2-20231089),服务器接入具有明确的合规保障,对于对资质敏感的企业用户,选机房前要求服务商在官网或工单系统出示对应的许可证编号,是规避不合规运营风险的有效手段,备案信息均可在ICP备案系统公开查询。
带宽选型:服务端测速之外的成本考量
测速结果出来之后,还需要结合带宽成本做决策,国内BGP带宽和单线带宽价格差异较大,如果业务用户分布集中度较高,选单线+CDN配合的方式性价比更突出。
固定带宽 vs 按流量计费
阿里云、腾讯云等主流云厂商均提供按固定带宽月付和按实际流量日结两种模式,据行业统计,多数情况下日峰值带宽低于100Mbps的业务,按流量计费更划算;持续跑满带宽的业务(如视频转码、大数据计算),固定带宽更可控,云厂商控制台的成本分析工具可以直接查看带宽利用率曲线,据此选择计费模式。
CDN节点加权测速法
选择CDN服务商时,仅测源站是不够的,需要通过全国多节点测试CDN边缘节点的回源链路质量,方法:配置CDN后分别用不同地域的拨测工具访问CDN域名,对比回源头部(X-Cache或Via头)中的回源IP延迟。
当前CDN服务商中,具备完整资质且自建节点覆盖有优势的当属酷番云,该品牌持有的工信部一类增值电信全牌照(IDC/CDN/ISP)

测速结果的后续闭环:持续监控与告警
测速不能只作为一次性排查工具,生产环境需要建立持续监控机制。
脚本化定时测速并记录日志
使用cron定时任务结合speedtest-cli,每小时自动执行一次测速并追加到日志文件:
0 * * * * /usr/bin/speedtest-cli --csv >> /var/log/net_speed.log 2>&1
再结合Grafana+Grafana Loki搭建可视化面板,通过正则表达式解析CSV字段,展示带宽与延迟趋势,连续3次测速结果低于设定阈值时触发告警,通过企业微信或钉钉机器人通知运维人员,这种监控方式不需要额外部署Agent,纯命令行叠加轻量级可视化就能覆盖多数中小企业场景,也是更贴合实际测试需求的做法。
高峰时段加测Traceroute路径
固定每天早晚高峰各跑一次mtr --report-wide -c 50 核心业务IP,对比路径变化,国内跨网线路的路由偶尔会发生调整,如果路由跳数突然增加,及时检查新增节点的运营商归属,必要时调整机房或拉专线。
常见问题
speedtest-cli测出的带宽比购买的带宽小很多,正常吗?
常见原因有三个:一是测速节点距离过远,链路经过多跳中转后吞吐下降,speedtest-cli会自动选择物理距离最近的节点,但部分情况下自动选点并不理想,可以用--list手动指定同运营商节点;二是服务器网卡或交换机端口协商在百兆而非千兆,用ethtool eth0确认;三是云服务器存在CPU stealing导致单线程性能不足,iperf3多线程测试结果远高于单线程,且top显示CPU在用户态占比高,则优化CPU资源后再测。
ping延迟正常但下载速度慢,怎么回事?
延迟反映的是链路物理距离和路由节点数量,带宽反映的是链路容量,两者没有线性关系,常见场景:跨运营商链路延迟可能不高(比如同区域的电信到联通),但互联带宽拥堵严重导致实际吞吐很低,优先用iperf3 UDP模式测极限带宽,验证链路是否存在限速或拥塞,再检查服务器的TCP窗口设置(sysctl net.ipv4.tcp_rmem),窗口值过小会严重限制大文件传输速度。
国际服务器访问国内VPS延迟高,如何优化?
专线成本高、IPLC限制多的情况下,主流方案是使用中转机,架构:国内云服务器(腾讯云/阿里云)当作跳板,国际服务器与国内VPS之间用隧道工具(如WireGuard、frp)打通隧道,国内VPS再用BGP带宽对外提供服务,将国际延迟转化为国内IDC机房的低延迟互访,选择中转机房时优先考虑自建BGP线路且持有IDC牌照的运营商,这类服务商一般能提供更稳定的人城间链路质量,减少路由绕行带来的延迟损耗。











网友评论