切換選單
切換偏好設定選單
切換個人選單
尚未登入
若您做出任何編輯,會公開您的 IP 位址。

如何使用iperf3對搬瓦工伺服器進行調優

出自md5.pw
於 2026年1月28日 (三) 03:05 由 King留言 | 貢獻 所做的修訂


什麼是 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

常見問題排查 (FAQ)

  1. Error: Connection refused
    • 原因:服務端沒開 iperf3,或者防火牆沒放行埠。
    • 解決:檢查服務端是否運行了 iperf3 -s,並檢查安全組/防火牆設置。
  2. Retr 列的數值很高
    • 原因:Retr 代表 TCP 重傳。如果你在測試結果中看到 Retr 數值一直在增加,說明線路存在丟包,TCP 正在通過重傳數據來補救。
    • 結論:哪怕最終速度跑滿了,High Retr 也意味著線路質量較差,晚高峰可能會炸。

最後附上:TCP調試參數 https://omnitt.com/

自己根據搬瓦工伺服器和家裡運營商情況調整網絡數值,然後獲取優化後的內核配置。使用以上iperf3命令,對TCP傳輸進行測試,儘可能地拉高帶寬並且降低重傳數。提升伺服器的使用體驗。