打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

如何使用iperf3对搬瓦工服务器进行调优:修订间差异

来自md5.pw
King留言 | 贡献
无编辑摘要
King留言 | 贡献
无编辑摘要
 
第22行: 第22行:
* 机器 B(客户端):你的本地电脑,或者另一台 VPS。
* 机器 B(客户端):你的本地电脑,或者另一台 VPS。


<blockquote>注意:请务必在服务商的全组或机器防火墙(ufw/firewalld/iptables)放行默认端口 5201。</blockquote>1. 在服务端(机器 A)运行:
<blockquote>注意:如果你在服务器上装了防火墙软件(ufw/firewalld/iptables),必须先放行默认端口 5201。</blockquote>1. 在服务端(机器 A)运行:
  '''iperf3''' -s
  '''iperf3''' -s
''此时屏幕会显示 <code>Server listening on 5201</code>,表示正在等待连接。''
''此时屏幕会显示 <code>Server listening on 5201</code>,表示正在等待连接。''
第30行: 第30行:
这就是最简单的测试,默认测试的是 客户端上传到服务端 的 TCP 带宽。
这就是最简单的测试,默认测试的是 客户端上传到服务端 的 TCP 带宽。


== 第三步:进阶参数详解(核心干货) ==
== 第三步:进阶参数详解(核心内容) ==
只有掌握了参数,才能针对性地进行测试。以下是我们平常比较常用的参数表:
只有掌握了参数,才能针对性地进行测试。以下是我们平常比较常用的参数表:
{| class="wikitable"
{| class="wikitable"
第56行: 第56行:
|<code>--reverse</code>
|<code>--reverse</code>
|反向模式。即测试服务端发送给客户端的速度(下载速度)。
|反向模式。即测试服务端发送给客户端的速度(下载速度)。
|**最常用!**测试 VPS 到本地的下载速度
|测试 VPS 到本地的下载速度
|-
|-
| -P
| -P
第112行: 第112行:
  '''iperf3''' -c <VPS_IP> -p 8080 -t 300
  '''iperf3''' -c <VPS_IP> -p 8080 -t 300


== 常见问题排查 (FAQ) ==
== 常见问题==


# Error: Connection refused
# Error: Connection refused

2026年2月3日 (二) 19:42的最新版本


什么是 iperf3?

iperf3 是目前运维人员最常用的网络带宽测量工具。它基于 C/S(客户端/服务端)架构,可以测试 TCP 和 UDP 带宽质量。它不仅能告诉你最大带宽是多少,还能报告丢包率(Packet Loss)和重传数(Retr),这些数据往往比单纯的“速度”更能反映线路的质量。

第一步:安装 iperf3

iperf3 属于轻量级工具,几乎所有主流 Linux 发行版的官方源都包含它。

Debian / Ubuntu 系统:

 apt update && apt upgrade -y
 apt install iperf3 -y

CentOS / AlmaLinux / Rocky 系统:

 yum install epel-release -y
 yum install iperf3 -y

第二步:基础用法

测试需要两台机器。假设:

  • 机器 A(服务端):IP 为 192.168.1.1(你需要测试的那台 VPS)
  • 机器 B(客户端):你的本地电脑,或者另一台 VPS。

注意:如果你在服务器上安装了防火墙软件(ufw/firewalld/iptables),必须先放行默认端口 5201。

1. 在服务端(机器 A)运行:

iperf3 -s

此时屏幕会显示 Server listening on 5201,表示正在等待连接。

2. 在客户端(机器 B)运行:

iperf3 -c 192.168.1.1

这就是最简单的测试,默认测试的是 客户端上传到服务端 的 TCP 带宽。

第三步:进阶参数详解(核心内容)

只有掌握了参数,才能针对性地进行测试。以下是我们平常比较常用的参数表:

参数 完整写法 作用解释 适用场景
-s --server 服务端模式,表示这台机器作为接收端。 部署在 VPS 上
-c --client 客户端模式,后接服务端 IP。 本地或其他测试机
-p --port 指定端口。默认是 5201。 当默认端口被占用或防火墙限制时使用
-R --reverse 反向模式。即测试服务端发送给客户端的速度(下载速度)。 测试 VPS 到本地的下载速度
-P --parallel 多线程并发。后接数字,如 -P 4 测试大带宽(1G+)或单线程跑不满时
-t --time 测试时长。单位秒,默认 10 秒。 需要观察长时间网络稳定性时
-u --udp UDP 模式。测试 UDP 而非 TCP。 测试流媒体、游戏线路的丢包和抖动
-4 --version4 强制使用 IPv4。 双栈机器排查特定协议问题
-6 --version6 强制使用 IPv6。 测试 IPv6 连通性和速度

第四步:实战场景演练

光看参数可能有点晕,下面列举几个最常用的测试命令组合。

场景一:我想测 VPS 到我本地的下载速度(最常用)

默认的 -c 是测试上传(你发给 VPS)。但我们通常更关心 VPS 发给我们的速度(下载)。这时必须加上 -R

# 在本地电脑终端输入
iperf3 -c <VPS_IP> -R

场景二:单线程跑不满,我想测最大带宽潜力

对于跨洋线路或者高延迟线路,单线程 TCP 往往会被 TCP 拥塞控制限制,无法跑满 1Gbps 或 10Gbps 的物理端口。这时我们需要开启多线程并发。

 # 开启 4 个线程进行反向测试
iperf3 -c <VPS_IP> -R -P 4

注:如果多线程能跑满,但单线程很慢,说明线路带宽充足但延迟或丢包导致单连接性能不佳。

场景三:测试线路质量(丢包与抖动)

速度快不代表线路好。看视频卡不卡,游戏跳不跳 ping,主要看 UDP 表现。

 # 限制带宽为 100M(因为 UDP 没有拥塞控制,不限速可能把口子堵死),测试 UDP
iperf3 -c <VPS_IP> -u -b 100M

重点观察输出结果中的:

  • Jitter:抖动值,越小越好(<5ms 为佳)。
  • Lost/Total:丢包率,0% 最好。如果超过 1% 可能会明显感觉卡顿。

场景四:特定端口与长时测试

有时候为了绕过运营商对特定端口的干扰,或者想看晚高峰 5 分钟内的持续表现:

 # 连接服务端的 8080 端口,持续测试 300 秒
iperf3 -c <VPS_IP> -p 8080 -t 300

常见问题:

  1. Error: Connection refused
    • 原因:服务端没开 iperf3,或者防火墙没放行端口。
    • 解决:检查服务端是否运行了 iperf3 -s,并检查安全组/防火墙设置。
  2. Retr 列的数值很高
    • 原因:Retr 代表 TCP 重传。如果你在测试结果中看到 Retr 数值一直在增加,说明线路存在丢包,TCP 正在通过重传数据来补救。
    • 结论:哪怕最终速度跑满了,High Retr 也意味着线路质量较差,晚高峰可能会炸。

最后附上:TCP调试参数 https://omnitt.com/

自己根据搬瓦工服务器和家里运营商情况调整网络数值,然后获取优化后的内核配置。使用以上iperf3命令,对TCP传输进行测试,尽可能地拉高带宽并且降低重传数。提升服务器的使用体验。