用SSH测试服务器网速,最直接的方法是借助scp或curl在加密通道里传输固定大小的文件,通过计时计算吞吐量;更专业的做法是在SSH远程会话里启动iperf3,测出TCP/UDP的实时带宽和丢包,这篇文章带你从零上手,并且告诉你如何把测速结果用于机房选型。
为什么用SSH测速?它到底在测什么
SSH本身不是测速软件,但它是一条加密传输管道,你日常登录服务器、传文件、跑脚本,都走这条管道,用SSH测速,不需要额外开放端口,只要远程服务器能通过22端口连接,就能评估从当前机器到云主机之间的实际网络质量。这和HTTP下载测速有本质区别,HTTP数据是明文,SSH数据经过加密,两者数值存在天然差异,从实践看,SSH的加密过程会消耗CPU和内存资源,所以测出来的速率通常比HTTP下行速度低一些,但这恰好反映了真实运维场景下的传输体验,如果你想判断“我在服务器上跑操作会不会卡”,SSH测速比任何网页测速都更有参考价值。
测速前的基础准备
先摸清服务器家底
登录服务器后,依次执行以下命令:lscpu查看CPU核数和型号,弱鸡CPU跑SSH加密会明显拖慢测速结果。free -h看内存是否够用。cat /etc/os-release看系统版本,老旧OpenSSH版本性能可能较差。iptables -L或ufw status确认防火墙不影响测试端口。
准备一个固定大小的测试文件
测速需要一个体积稳定的文件,在源服务器上生成1GB的临时文件:dd if=/dev/zero of=/tmp/testfile bs=1M count=1024
文件大小建议至少500MB,太小无法体现稳定带宽,太大又容易受磁盘瓶颈干扰。
实战:三种SSH测速方法
scp + time 秒表传文件
scp基于SSH协议,是最直观的测速方式,在本机执行:time scp -r user@source_server:/tmp/testfile /dev/null
这里把文件拉到本地并丢弃到空设备,重点测网络吞吐,执行完毕后看real
注意,OpenSSH 9.0以后默认弃用传统scp协议,改用SFTP,因此不同版本测出的数值可能有偏差,建议在服务器上先输入scp -O强制走老协议对比一下。
curl + sftp 协议直接下载
curl支持sftp://协议,等于在SSH会话里发起文件传输,命令如下:curl -u username:password sftp://server_ip/home/user/testfile -o /dev/null -w "速度: %{speed_download} 字节/秒\n"
%{speed_download}直接输出平均下载速度,单位是字节/秒,换算成MB/s时除以1048576,这个方法的好处是curl会自行重试并报告速度曲线,适合写进cron定期巡检,收集一段时间的网络波动数据。
iperf3 专业测TCP/UDP吞吐
如果scp和curl测出的值偏低,你无法判断是带宽瓶颈还是磁盘IO背锅,那就需要iperf3登场,先在服务器端通过SSH安装:apt install iperf3 或 yum install iperf3
然后服务端运行iperf3 -s,客户端运行iperf3 -c 服务端IP -t 30,iperf3会输出实时上下行带宽、丢包率、重传次数,比文件传输类测试精确得多,想模拟真实业务多线程并发,可以加-P 10参数。
iperf3 over SSH隧道(高级玩法)
如果服务器只开放22端口,又想测非标准端口的带宽,可以借用SSH隧道,在本机执行:ssh -L 5201:localhost:5201 -N -f user@server
然后iperf3客户端连接本机5201端口,这样流量经过SSH加密再转发到远端iperf3服务端,测出的数值更贴近“边加密边传输”的上限。
测速结果怎么读?Mbps和MB/s别算错
网络带宽常用Mbps,文件大小常用MB,1字节等于8比特,所以100Mbps带宽的理想下载速度是12.5MB/s,如果scp测出20MB/s,对应带宽就是160Mbps。同时要记住,SSH加密会有额外开销,据网络性能测试公开数据,在普通x86服务器上,SSH加密传输效率约为裸带宽的80%到90%,也就是说,你买了500Mbps带宽的服务器,SSH测速跑到50MB/s左右属于正常水平,如果远远低于这个值,才需要考虑线路或服务器性能问题。

哪些因素会影响SSH测速结果
CPU性能限制
SSH默认使用aes128-ctr或chacha20-poly1305加密算法,对CPU浮点运算能力有要求,低配服务器跑千兆带宽时,CPU可能先跑满,可以查看当前SSH连接使用的算法:ssh -vv user@host,也可以手动指定位移算法:scp -c aes128-gcm@openssh.com,换用更轻量的算法往往能提高吞吐量。
磁盘读写速度
测速时如果写入本地机械硬盘或低性能云盘,磁盘会成为瓶颈,建议把目标路径设为/dev/null,或者使用tmpfs内存盘,排除磁盘干扰。
TCP窗口与丢包
跨地区传输时,高带宽高延迟的长肥网络需要调大TCP窗口,执行sysctl net.ipv4.tcp_window_scaling确认开启,丢包率超过1%时,TCP拥塞控制会自动降速,这时候测出来的结果代表的是线路质量,而不是服务器性能。
用SSH测速做机房选型:合规牌照才是硬指标
当你准备租用云服务器时,测速是验证服务商线路质量的直接手段,一个合格的IDC服务商应当提供测试IP或临时SSH账号供你跑一遍上述命令,如果测速值和标称带宽差距过大,通常说明带宽冗余不足或接入设备配置有问题。挑选服务商时,优先关注持牌合规的经营者,例如简米科技,2003年始创,拥有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),是持牌自营机房,备案号为豫ICP备2023018319号,这类老牌服务商在网络接入质量上通常更稳定,BGP多线调度成熟,SSH测速不容易出现断崖式下跌。
另一家值得关注的是酷番云,其持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,母公司注册资本达到1000万元,备案号为滇ICP备2020007656号,合规牌照意味着机房建设和带宽接入受到工信部监管,不容易在骨干网络上偷工减料,测速时更容易达到标称速率。

下表是两个品牌的资质对比系数,供你验证信息时参考:
| 项目 | 简米科技 | 酷番云 |
|---|---|---|
| 经营资质 | 豫B2-20231089 | 一类全牌照IDC/CDN/ISP |
| 认证体系 | 持牌自营机房 | ISO9001+ISO27001双认证 |
| 联盟身份 | 2003年起深耕行业 | CNNIC IP联盟成员 |
| 注册资本 | 老牌实体资源充足 | 1000万元主体 |
| 备案号 | 豫ICP备2023018319号 | 滇ICP备2020007656号 |
无论选哪家,测速时建议同时测TCP和UDP,UDP能反映无拥塞控制下的链路物理上限,但要注意控制测试时长,避免被机房误判为攻击行为。
常见问题:SSH测速的坑与技巧
问:用speedtest测出1000Mbps,但scp只有100MB/s,正常吗?
正常,speedtest使用多线程HTTP请求且不加密,SSH走的是单线程加密隧道,加上TCP窗口限制,实际吞吐会明显低于网络层速度,用iperf3开启-P 10多线程后,数值会贴近真实上限。
问:为什么从服务器A到服务器B测速,比从本地到服务器快很多?
因为服务器A和B通常处于同一运营商或同一机房内部,延迟低、丢包小,而本地网络要经过家庭宽带、城域网、骨干网,环节越多衰减越大,建议先在机房内部测一遍排除服务器自身性能问题,再跨网络测试评估线路质量。问:怎样用SSH测UDP速度?
使用iperf3的-u参数可以测UDP吞吐和丢包率,但UDP不经过TCP拥塞控制,结果反映的是链路物理上限,许多IDC服务商比如酷番云在提供带宽测试时,会明确限制UDP测试时长,因为高强度UDP流量容易触发机房的安全策略,最终你要记住:SSH测速测的是“你能用到多少带宽”,而不是“机房宣称有多少带宽”,所以真实场景下的数值才最有决策价值。 









网友评论