iperf3 教學:測試 Linux 與 Windows 上的網路速度
10 分鐘閱讀 - 2026年5月7日

在 Linux 和 Windows 上安裝 iperf3、執行頻寬測試並調整 TCP 緩衝區,以獲得精確的結果。涵蓋 UDP、雙向和 10GbE+ 測試
iperf3 教學:在 Linux 和 Windows 上測量網路效能
iperf3是一個命令列工具,用來測量兩台機器之間的網路頻寬,抖動和封包丟失。它使用客戶端伺服器模式:一個機器聆聽,另一個機器傳送流量,您就可以得到精確的吞吐量數字。本指南涵蓋安裝、基本和進階測試,以及如何調整系統以獲得高速連線上的精確結果。
安裝 iperf3
Debian / Ubuntu
sudo apt update
sudo apt install iperf3
使用 iperf3--version 確認安裝。在伺服器和用戶端機器上安裝。
Fedora / CentOS / Rocky / Alma
在 Fedora 22+ 或 CentOS 8+、Rocky 或 AlmaLinux 上:
sudo dnf install iperf3
在 CentOS 7 上,請改用yum。如果找不到套件,請先啟用EPEL套件庫:
sudo yum install epel-release
sudo yum install iperf3
如果您的防火牆已啟用,請開啟 5201 連接埠:
sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload
Windows
從 iperf.fr或ar51an/iperf3-win-buildsGitHub repo 下載獨立執行檔。解壓縮到C:\iperf3 之類的資料夾,然後驗證:
cd C:\iperf3
iperf3.exe -v
若要從任何目錄執行 iperf3,請透過「系統內容」>「進階」>「環境變數」將資料夾新增至系統 PATH。您還需要在 Windows Defender Firewall 中建立允許 5201 埠 TCP 的入站防火牆規則。
設定伺服器
以下列方式啟動伺服器
iperf3 -s
預設會在 TCP 埠 5201 聆聽。要在有記錄的情況下於背景執行:
iperf3 -s -D --logfile /var/log/iperf3.log
使用ss -tulpn | grep 5201 確認正在執行。
如果您的網路封鎖了 5201 連接埠,請使用-p選擇不同的連接埠。若要綁定到特定介面,請使用-B:
iperf3 -s -B 192.168.1.10
對於一次性測試,iperf3-s -1會處理單一客戶端連線,然後離開。在高頻寬連結 (40 Gbps 以上) 上,在不同連接埠上執行多個伺服器實體,以應付單執行緒 CPU 的限制。
確保您的防火牆允許所選連接埠的流量。在 Ubuntu/Debian 上使用UFW:
sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp # if testing UDP
執行用戶端測試
基本 TCP 測試
iperf3 -c 192.168.1.10
這會測量 10 秒內透過 TCP 上傳的頻寬。使用-t 來延長時間:
iperf3 -c 192.168.1.10 -t 30
在 10 Gbps 或 25 Gbps 的連結上,由於單核心 CPU 的限制,單一 TCP 串流的最高速率通常為 3-5 Gbps。使用平行串流使連線達到飽和:
iperf3 -c 192.168.1.10 -P 8
讀取結果
每個間隔線顯示傳輸量(傳送的資料) 和比特率(吞吐量)。對於 TCP,還要觀看
- Retr(重傳)。數字高代表封包遺失或壅塞。
- Cwnd(擁塞視窗)。如果低或卡住,表示緩衝區或視窗大小限制限制了吞吐量。
在乾淨的 1 Gbps 連線上,扣除通訊協定開銷後,預期約為 940 Mbps。測試以傳送者和接收者摘要線結束。在穩定的網路中,這些資料應該會很接近。
對於 UDP 測試(-u標誌),輸出會加入抖動 (封包到達方差) 和遺失/總數據通訊。抖動低於 1 毫秒和 0% 損失是 VoIP 等即時流量的理想選擇。
有用的旗標
| 旗標 | 用途 |
|---|---|
-c <IP | 連線至伺服器 |
-p <連接埠 | 使用特定連接埠(預設:5201) |
-t <sec | 以秒為單位的測試持續時間 (預設值:10) |
-i <sec | 報告間隔 |
-P <數目 | 平行串流 |
-u | UDP 模式 |
-b <n>M | 目標頻寬 (UDP;若省略,預設為 1 Mbps) |
-R | 反向模式 (伺服器傳送,用戶端接收) |
-w <n>K | TCP 視窗 / 套接字緩衝區大小 |
-J | JSON 輸出 |
-Z | Zerocopy (在快速連結上可減少 CPU) |
進階測試
雙向測試
--bidir標誌 (iperf33.7以上) 可同時測試上傳與下載:
iperf3 -c 192.168.1.10 --bidir
這兩個連線都源自用戶端,因此可穿透 NAT 而無需開啟額外連接埠。如果雙向測試的結果遠低於單向測試,您的路由器或纜線數據機可能在全雙工流量方面有問題。
反向模式
-R標誌會翻轉資料流,讓伺服器傳送而用戶端接收。這可以在不交換角色的情況下測量下載速度:
iperf3 -c 192.168.1.10 -t 30 -i 5 -R
正向和反向結果之間的巨大差異會顯示路徑不對稱、擁塞或緩衝器配置錯誤。
UDP 測試
UDP 測試會顯示抖動和封包遺失,而 TCP 會將這些隱藏在重傳中。請務必使用-b 設定目標頻寬,因為 iperf3 預設 UDP 為 1 Mbps:
iperf3 -c 192.168.1.10 -u -b 1G
模擬 VoIP 流量 (100 通話、200 字節封包):
iperf3 -c 192.168.1.10 -u -b 8M -l 200
品質基準:抖動低於 5 毫秒對 VoIP 來說是好的,超過 30 毫秒會導致聽覺問題。封包丟失率高於 0.1%,即時媒體品質會明顯下降。
調整與疑難排解
常見問題
千兆位元連線上只有 100 Mbps?使用ethtool eth0 檢查您的實體介面速度。自動協商有時會失敗,並將連結降至較低的速度。
MSS 顯示乙太網路上有 536 位元組?路徑 MTU Discovery 可能已停用。1,500 位元組 MTU 的預設 MSS 為 1,460 位元組。測試時請使用-m來檢查。536 位元組的 MSS 會浪費頻寬並增加開銷。
快速連結上的 CPU 已經到達上限?使用-Z(zerocopy) 減少 CPU 負載。對於 40 Gbps 以上,在不同連接埠上執行多個伺服器實體,並將它們分散到不同的 CPU 核心。
結果不一致?使用-O 3 刪除TCP 擠塞視窗上升的最初幾秒鐘。在測試執行之間留出 30 秒以清除網路緩衝區。
單一串流比平行串流加起來還要慢?如果一個串流獲得 200 Mbps,但八個串流加起來卻達到 1.6 Gbps,則 TCP 視窗或作業系統緩衝區限制了單一串流。請在下方調整緩衝區。
TCP 緩衝區調整
首先計算頻寬-延遲乘積 (Bandwidth-Delay Product):頻寬 x RTT。10 Gbps 連線的 RTT 為 50 ms,BDP 為 62.5 MB。設定您的最大緩衝至少為 BDP 的 2 倍。
將這些加入/etc/sysctl.d/99-tcp-tuning.conf並使用sudo sysctl -p 套用:
| 參數 | 建議 (1-10 Gbps) |
|---|---|
net.core.rmem_max | 134217728 (128 MB) |
net.core.wmem_max | 134217728 (128 MB) |
net.ipv4.tcp_rmem | 4096 131072 134217728 |
net.ipv4.tcp_wmem | 4096 131072 134217728 |
net.core.default_qdisc | fq |
net.ipv4.tcp_congestion_control | bbr |
將net.ipv4.tcp_moderate_rcvbuf設為 1,以便核心在這些範圍內自動調整。對於大於 64 KB 的 TCP 視窗,啟用net.ipv4.tcp_window_scaling(設為 1)。
您也可以從預設的CUBIC壅塞演算法切換到 Google 的BBR。在有一些封包遺失的高延遲連結上,BBR 的吞吐量一直比 CUBIC 高。
使用 iperf3 中的-w標記測試特定的緩衝區大小,但請注意不能超過核心的rmem_max或wmem _max。千兆位元連線以 8 MB 開始,100 Mbps 則以 512 KB 開始。
如果您正在配置專用伺服器,並想要驗證網路效能,請在設定後和任何網路變更後立即執行 iperf3 基線測試,以便及早發現問題。
視訊建議

iperf3 教學:測試 Linux 與 Windows 上的網路速度
在 Linux 和 Windows 上安裝 iperf3、執行頻寬測試並調整 TCP 緩衝區,以獲得精確的結果。涵蓋 UDP、雙向和 10GbE+ 測試
10 分鐘閱讀 - 2026年5月7日
ZFS 快照:如何建立、還原與自動化
10 分鐘閱讀 - 2026年5月5日