DigitalOcean Droplet 之间的带宽如何测试才准确?

来源:DB2教程作者:陈远山头衔:网络博主
导读:本期聚焦于陈远山创作的《DigitalOcean Droplet 之间的带宽如何测试才准确?》,敬请观看详情。想知道两台 DigitalOcean Droplet 之间实际能跑多少带宽,不能只看控制台里的套餐标称值。同一数据中心内的实例默认会通过 VPC 私有网络通信,这条链路延迟低、通常不额外计费,但吞吐量仍受实例规格和云防火墙策略影响;跨数据中心则必须经过公网,结果会随路径拥塞和双方公网配额变化。本文以 iperf3 为主要工具,说明如何判断测试流量是否真正走私有地址、怎样在服务端放行测试端口、客户端如何执行 TCP 和 UDP 测试,以及怎样从重传、丢包和抖动数据中判断带宽瓶颈。按照这些步骤可以得到接近业务真实情况的结果,避免把公网波动误判为内网性能不足。

测两台 DigitalOcean Droplet 之间的带宽,最容易出错的地方不是工具本身,而是没有确认测试流量到底走了哪条链路。比如两个实例都在同一个区域、同一个 VPC 下,测试时应使用 10.x 的私有地址;如果仍用公网 IP 互测,结果会受到公网配额和外部路径波动的影响,反映不出内网真实的吞吐能力。

DigitalOcean Droplet 之间的带宽如何测试才准确?

先确认测试链路是私有网络还是公网

DigitalOcean 在同一数据中心内会为启用 Private Networking 的 Droplet 分配一个私有 IPv4 地址,一般落在 10.x 网段。私有网络流量不占用 Droplet 的公网带宽池,也不经过公共互联网,因此延迟通常在 0.5ms 以内,适合数据库复制、缓存同步和内部服务调用。创建 Droplet 时如果已经启用了 VPC 网络,系统会在面板中显示私有地址,也可以在系统内通过 ip addr 或 ip -4 addr show eth1 查看。

如果实例是后来加入 VPC,或者不确定网卡是否拿到了私有地址,可以通过 DigitalOcean 的 metadata 服务查询。下面这个命令会返回当前实例的私有 IPv4 地址,建议在两台机器上分别执行并记录。

curl http://169.254.169.254/metadata/v1/interfaces/private/0/ipv4/address

确认之后,先在两台 Droplet 上用 ping 对方私有IP 做个基础连通性检查。如果 ping 不通,不要急着怀疑内核参数,先检查 DigitalOcean Cloud Firewall 是否放行了私有网络流量。云防火墙默认规则可能只放行 22、80、443 等常见端口,测试用的 5201 端口需要额外添加一条入站规则。临时测试时,建议只对私有网络来源开放该端口,不要对公网全部开放,避免带宽测试端口暴露在互联网上。

安装 iperf3 并启动服务端

iperf3 是目前 Linux 上最常用的带宽测试工具,支持 TCP、UDP、多并发流和双向测试。Ubuntu 或 Debian 系统可以用包管理器直接安装,CentOS 或 RHEL 可以先启用 EPEL 源再安装。安装完成后不需要复杂编译,二进制文件会直接放到系统路径中。

sudo apt update
sudo apt install -y iperf3

在一台作为服务端的 Droplet 上启动 iperf3。默认监听 5201 端口,前台运行即可,测试结束后可以通过 Ctrl+C 退出。使用 -s 表示 server 模式,-p 用来指定端口,端口号可以自定义,但客户端启动时要保持一致。

iperf3 -s -p 5201

如果希望服务端在后台持续运行,可以使用 nohup 或写成 systemd service。临时测试用前台运行更直观,可以看到每次客户端接入时的握手信息。需要注意 iperf3 的服务端和客户端版本最好一致,不同大版本之间可能出现参数不兼容的情况。可以用 iperf3 -v 查看版本,必要时通过源码或官方包统一升级。

客户端执行 TCP 带宽测试

客户端推荐先做 TCP 测试,因为大多数业务流量基于 TCP,结果更贴近真实传输表现。下面的命令中,-c 后面接服务端私有 IP,-t 30 表示测试持续 30 秒,-i 5 表示每 5 秒输出一次中间结果。默认方向是客户端发送数据到服务端,也就是通常说的上传方向。

iperf3 -c 10.116.0.5 -p 5201 -t 30 -i 5

执行后终端会打印类似下面的结果,重点看 Interval、Transfer、Bitrate 和 Retr 这几列。Bitrate 是当前时间片的平均吞吐量,Retr 是 TCP 重传次数。如果内网链路健康,重传应该接近 0,吞吐量会比较稳定地贴近实例规格上限;如果出现周期性掉速或重传持续增加,说明链路存在丢包、CPU 瓶颈或云防火墙会话限制。

[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-5.00   sec  1.08 GBytes  1.86 Gbits/sec    0   1.18 MBytes
[  5]   5.00-10.00  sec  1.09 GBytes  1.87 Gbits/sec    0   1.20 MBytes
[  5]  10.00-15.00 sec  1.08 GBytes  1.85 Gbits/sec    0   1.19 MBytes
[  5]  15.00-20.00 sec  1.09 GBytes  1.87 Gbits/sec    0   1.19 MBytes
[  5]  20.00-25.00 sec  1.09 GBytes  1.88 Gbits/sec    0   1.20 MBytes
[  5]  25.00-30.00 sec  1.09 GBytes  1.87 Gbits/sec    0   1.19 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-30.00  sec  6.52 GBytes  1.87 Gbits/sec    0             sender
[  5]   0.00-30.00  sec  6.52 GBytes  1.87 Gbits/sec                  receiver

如果需要验证反方向吞吐量,可以加上 -R,让客户端变为接收方,服务端向客户端发送数据。也可以使用 --bidir 同时跑双向流量,但双向测试会叠加两个方向的负载,结果需要分开看。为了找到最大单流性能,先用单流测试;若要测总带宽上限,可以增加 -P 10 并发 10 个流,观察多流聚合后的总吞吐量。

用 UDP 测试丢包和抖动

TCP 因为存在拥塞控制和重传机制,即使链路有少量丢包,也能维持传输并自动降速,看起来只是一个吞吐量数字变化,不容易直接看出丢包率。UDP 测试则不同,iperf3 会按照指定速率持续发送数据包,不关心是否到达,最终统计丢包率和抖动。这个数据对排查视频会议、语音通话、实时游戏流量很有用。

iperf3 -c 10.116.0.5 -u -b 1000M -t 30 -i 5

命令中的 -u 表示 UDP 模式,-b 1000M 表示目标发送速率为 1000 Mbit/s。测试结束后,终端会给出 Packet Loss 和 Jitter 两项指标。同区域私有网络内,如果链路没有过载,丢包率应该为 0%,抖动也通常在 0.1ms 以下。如果发现 UDP 丢包明显,先降低发送速率再测,确认是链路本身问题还是实例网卡或 CPU 达到了处理上限。

UDP 测试时不要一上来就填很大的速率。如果 Droplet 是小型实例,共享网络性能有限,发送端可能因为 CPU 或包队列瓶颈产生人为丢包。建议从 200M 或 500M 开始逐步上调,每次观察丢包率变化。对比同区域私有网络和跨区域公网两条路径时,UDP 抖动数据通常能更直观地展示公网路径的不稳定性。

结果解读与常见误区

拿到 TCP 和 UDP 的数据后,第一步要确认的是测试 IP 是否真的是私有地址。如果客户端使用了公网 IP,即使两台机器在同一个机房,流量也可能通过公网出口绕一圈。这个错误经常发生在只复制了面板上的公网地址、没有查看私有网段的情况下。此时测出的延迟可能从 0.3ms 变成几毫秒甚至几十毫秒,带宽也会受到公网限速影响。

第二个常见误区是把 iperf3 单流结果当成实例最大带宽。单流 TCP 的吞吐量受发送窗口、CPU 单核处理能力和网络时延共同影响,高延迟链路上单流性能通常偏低。要测试总带宽,建议使用多流,例如 -P 8 或 -P 16,将多个并发连接聚合后的结果作为参考。多流不是作弊,它更接近真实业务中多线程、多连接同时传输的场景。

如果同区域私有网络测试结果远低于预期,可以从三个方面排查:一是云防火墙是否对私有网络做了限速或丢包;二是实例规格是否较低,小型 Droplet 的包转发能力有限;三是测试期间是否有备份、快照或磁盘密集型任务抢占 CPU。把这些因素排除后,再用相同的 iperf3 参数复测,结果通常会稳定在一个合理区间。通过这套方法,可以比较准确地判断两台 Droplet 之间的真实可用带宽。

DigitalOcean Droplet内网带宽测试iperf3修改时间:2026-10-06 20:20:13

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/1006/66572.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。