如何使用iperf3對搬瓦工服務器進行調優
更多語言
更多操作
什麼是 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)
- Error: Connection refused
- 原因:服務端沒開 iperf3,或者防火牆沒放行端口。
- 解決:檢查服務端是否運行了
iperf3 -s,並檢查安全組/防火牆設置。
- Retr 列的數值很高
- 原因:Retr 代表 TCP 重傳。如果你在測試結果中看到 Retr 數值一直在增加,說明線路存在丟包,TCP 正在通過重傳數據來補救。
- 結論:哪怕最終速度跑滿了,High Retr 也意味着線路質量較差,晚高峰可能會炸。
最後附上:TCP調試參數 https://omnitt.com/
自己根據搬瓦工服務器和家裡運營商情況調整網絡數值,然後獲取優化後的內核配置。使用以上iperf命令,進行測試,儘可能地拉高帶寬並且降低重傳數。提升服務器的使用體驗。 index.php?title=Category:500 常見應用指南 — Application Guides