iperf3 教學指南:在 Linux 與 Windows 上測試網路速度

10 分鐘閱讀 - 2026年5月7日

hero section cover

在 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.frar51an/iperf3-win-builds GitHub 儲存庫下載獨立執行檔。將其解壓縮至如 C:\iperf3,然後進行驗證:

cd C:\iperf3
iperf3.exe -v

若要在任何目錄下執行 iperf3,請透過「系統屬性>「進階」>「環境變數」,將該資料夾新增至系統 PATH 中。您還需要在 Windows Defender 防火牆中建立一則入站防火牆規則,允許 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 限制。

請確保您的防火牆允許所選埠號的流量通過。在採用 UFW 的 Ubuntu/Debian 系統上:

sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp   # if testing UDP

執行客戶端測試

基本 TCP 測試

iperf3 -c 192.168.1.10

此測試用於測量透過 TCP 傳輸的上傳頻寬,持續 10 秒。若要延長測試時間,請使用 -t:

iperf3 -c 192.168.1.10 -t 30

在 10 Gbps 或 25 Gbps 鏈路上,單一 TCP 資料流通常會因單核心 CPU 的限制而達到 3–5 Gbps 的上限。請使用並行資料流來使鏈路飽和:

iperf3 -c 192.168.1.10 -P 8

解讀結果

每條間隔行均顯示「傳輸量」(已傳送資料)與「位元率」(吞吐量)。針對 TCP,還需留意:

  • Retr(重傳次數)。數值過高表示封包遺失或擁塞。
  • Cwnd(擁塞視窗)。若數值過低或停滯不前,表示緩衝區或視窗大小限制正壓制吞吐量。

在未受干擾的 1 Gbps 連線中,扣除協定開銷後,預期吞吐量約為 940 Mbps。測試結束時會顯示發送方與接收方的摘要行。在穩定的網路環境下,這兩者數值應非常接近。

針對 UDP 測試(-u flag),輸出結果會額外顯示抖動(封包抵達時間變異)以及遺失/總數據報數量。對於 VoIP 等即時流量而言,抖動低於 1 毫秒且遺失率為 0% 為理想狀態。

實用旗標

標誌用途
-c <IP>連線至伺服器
-p <port>使用特定埠號(預設:5201)
-t <sec>測試持續時間(以秒為單位)(預設:10)
-i <sec>報告間隔
-P <num>並行串流
-uUDP 模式
-b <n>M目標頻寬(UDP;若未指定,預設為 1 Mbps)
-R反向模式(伺服器發送,客戶端接收)
-w <n>KTCP 視窗/套接字緩衝區大小
-JJSON 輸出
-Z零拷貝(在高速連線時可降低 CPU 負載)

進階測試

雙向測試

--bidir 標誌(iperf3 3.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 偵測」功能已停用。對於 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 緩衝區調校

首先計算頻寬-延遲積(BDP):頻寬 × RTT。一條 10 Gbps 鏈路搭配 50 ms RTT,其 BDP 為 62.5 MB。請將最大緩衝區設定為至少 BDP 的 2 倍。

將這些設定加入 /etc/sysctl.d/99-tcp-tuning.conf 並透過 sudo sysctl -p:

參數建議值(1–10 Gbps)
net.core.rmem_max134217728 (128 MB)
net.core.wmem_max134217728 (128 MB)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

請將 net.ipv4.tcp_moderate_rcvbuf 設定為 1,以便核心在這些範圍內進行自動調整。若 TCP 視窗大於 64 KB,請啟用 net.ipv4.tcp_window_scaling (設定為 1)以支援大於 64 KB 的 TCP 視窗。

您也可以將預設的 CUBIC 擁塞演算法切換為 Google 的 BBR。在存在一定程度封包遺失的高延遲連線中,BBR 始終能提供比 CUBIC 更高的吞吐量。

請在 -w iperf3 中的旗標來測試特定的緩衝區大小,但請注意此值不得超過核心的 rmem_maxwmem_max。千兆連線建議從 8 MB 開始測試,100 Mbps 連線則從 512 KB 開始。

若您正在配置專用伺服器並希望驗證網路效能,請在設定完成後以及任何網路變更後立即執行 iperf3 基準測試,以便及早發現效能退化。

影片推薦

博客

本周特色

更多文章
iperf3 教學指南:在 Linux 與 Windows 上測試網路速度

iperf3 教學指南:在 Linux 與 Windows 上測試網路速度

在 Linux 和 Windows 系統上安裝 iperf3、執行頻寬測試,並調整 TCP 緩衝區以獲得準確結果。涵蓋 UDP、雙向及 10GbE+ 測試

10 分鐘閱讀 - 2026年5月7日

更多文章