1. 前置准备:确认环境与权限
- 登录VPS(SSH)。示例:ssh root@your_vps_ip
- 确认有root或sudo权限,因为需要安装软件与查看网卡信息(ethtool)。
2. 安装必要工具
- Debian/Ubuntu:apt update && apt install -y iperf3 python3-pip ethtool mtr wget curl
- 安装 speedtest-cli:pip3 install speedtest-cli(或安装 Ookla 官方 CLI)。
3. 检查宿主机/虚拟化类型与网卡速率
- 查看虚拟化类型:systemd-detect-virt 或 cat /proc/cpuinfo
- 查看网卡速率与协商:ethtool eth0(或实际网卡名),关注 Speed、Duplex、Link detected。若 negotiated 低于期望,联系机房。
4. 基本流量监控与排除本地影响
- 查看实时接口速率:ip -s link show eth0 或 ifstat 1 3(需安装 ifstat)。
- 停止不必要进程,确保测试时CPU、磁盘I/O不成为瓶颈(top、iostat)。
5. 使用 speedtest-cli 做快速参考
- 命令:speedtest-cli --server SERVER_ID(可先运行 speedtest-cli --list 找最近服务器)。
- 优点:方便;缺点:单线程/服务器位置不同会有偏差,仅作参考。
6. 使用 iperf3 做准确的端到端 TCP 测试
- 原理:在目标测试服务器上运行 iperf3 -s,在VPS上作为客户端运行 iperf3 -c server_ip -P 10 -t 30。
- 推荐:并发流 -P 8~16,持续时间 -t 30,输出 JSON:iperf3 -c server_ip -P 10 -t 30 -J。并多次测试取平均。
7. 测试上行(VPS -> 目标)与下行(目标 -> VPS)的方法
- 下行(VPS 下载):在目标服务器运行 iperf3 -s,然后 VPS 执行 iperf3 -c server_ip -P 10(默认是测试下行到客户端)。
- 上行(VPS 上传):在 VPS 运行 iperf3 -s,在外部服务器运行 iperf3 -c vps_ip -P 10,或使用 iperf3 的 -R 反向测试:iperf3 -c server_ip -R。
8. 测试 UDP、丢包与抖动(延迟稳定性)
- UDP 测试:iperf3 -c server_ip -u -b 100M -t 30(指定带宽),查看丢包与 jitter。
- 结合 mtr/traceroute 分析路由跳数与丢包是哪一跳发生,mtr server_ip。
9. 用 curl/wget 做实际文件传输速率测试
- 下载测试:curl -o /dev/null -s -w '%{speed_download}\n' https://<大文件镜像>.iso(多次测试并取平均)。
- 上传测试:curl --upload-file smallfile.bin https://uploadserver/ -o /dev/null -s -w '%{speed_upload}\n'(需目标支持接收)。
10. 注意协议与开销(TCP、加密、MTU)
- TCP 有头部与确认开销;HTTPS/SSH 会有加密开销,可能降低速率。
- 检查 MTU:ip link show eth0;若存在分片或 PMTU 问题会影响吞吐,考虑调整 MTU 或联系机房。
11. 长期监控与统计(防止短时峰值误判)
- 安装 vnstat 或 iftop、nload 做长期流量统计:apt install vnstat;vnstat -l 实时监控。
- 在不同时间段重复测试(白天/凌晨/工作日/周末),记录并取中位数。
12. 判断瓶颈与常见异常排查流程
- 若本机 ethtool 显示 1Gbps,但 iperf3 只能到 100Mbps:检查虚拟化限速、hypervisor 策略或内核网络队列(txqueuelen)。
- 若到
香港机房内网速快但外网慢:使用 traceroute/mtr 判断出站链路哪一段拥塞,再与机房或上游运营商沟通。
13. 问:为什么我在 VPS 上跑 iperf3 与 speedtest 得到不同结果?
- 可能原因包括测试服务器位置不同、并发流数差异、协议(TCP vs UDP)、加密开销和机房对单连接限速。建议用 iperf3 并发多流(-P)与固定同一台测试服务器反复对比。
14. 答:如何确保测试结果更真实可靠?
- 关闭不必要服务、使用多流并多次测试、对比不同工具(iperf3、curl、speedtest),并记录时间段数据;同时检查 ethtool 链路速率与 MTU,排除宿主机限速。
15. 问:没有远端测试服务器怎么办?如何找香港或境外的 iperf3 服务器?
- 可使用公开的 iperf3 公共服务器列表(注意安全与可用性),也可租用另一台临时VPS作为对端(推荐同机房内另一节点或友商),或使用 speedtest 的指定香港节点进行比对。
16. 答:测试时遇到丢包高或延迟波动怎么办?
- 使用 mtr 定位是哪一跳丢包,结合 iperf3 UDP 测试确认丢包与抖动。若是链路末端(机房)问题,联系机房支持并提供 mtr/iperf3 日志;若在上游,记录时间段供运营商定位。
来源:如何测试香港机房vps宽带的真实上行下行速率