本篇介紹如何使用 iPerf3 這個網路速度測試工具,在各種作業系統與手機上檢測網路的頻寬。
iPerf3 是一個網路頻寬測試指令工具,支援 IPv4 與 IPv6 網路位址與 TCP、UDP、SCTP 傳輸協定,可在 Windows、Mac OS X、Linux、FreeBSD 與手機等各種平台使用,是一個簡單又實用的小工具。
安裝 iPerf3
iPerf3 本身其實只是一個以 C++ 所開發的小程式,在 iPerf3 的官方網站上有提供各種平台的 iPerf3 預先編譯版本,下載下來之後不需要安裝,解壓縮後即可使用。
Debian/Ubuntu Linux
在 Debian 或 Ubuntu Linux 中,可以使用 apt 安裝:
sudo apt-get install iperf3
CentOS Linux
CentOS Linux 中可用 yum 安裝:
sudo yum install epel-release sudo yum install iperf3
自行編譯安裝
對於沒有提供預先編譯版本的平台(例如樹莓派),也可以自己下載原始碼來編譯安裝:
tar zxvf iperf-3.1.3-source.tar.gz
cd iperf-3.1.3/
./configure
sudo make install
接著將 /usr/local/lib
加入 LD_LIBRARY_PATH
之中:
export LD_LIBRARY_PATH=/usr/local/lib
再測試一下:
iperf3
若可以執行,就表示安裝成功了。
測試網路頻寬
一般在使用 iPerf3 測試時,要同時在 server 端與 client 端都各執行一個 iPerf3 程式,讓它們互相傳送資料進行測試,首先啟動 server 端的 iperf3
:
# Server 端 iperf3 -s
接著在 client 端執行:
# Client 端 iperf3 -c SERVER_IP
其中 SERVER_IP
要換成 server 的 IP 位址或是主機名稱,在測試時 server 端與 client 端都會出現測試的數據,以下是測試的結果。
公用伺服器
如果自己手上沒有可用的伺服器,也可以使用公用的伺服器來測試,使用方式都相同:
# 使用公用伺服器 iperf3 -c debit.k-net.fr
測試結果如下:
不管在哪一種平台上,iPerf3 的使用方式都相同,這是在 Windows 命令提示自元中使用 iPerf3 的畫面。
Android 與 iOS 手機上也有支援 iperf3
的 app 可以使用,可讓手機當成 client 或 server,用法也都相同。
iPerf3 進階指令
iPerf3 所提供的選項非常多,以下介紹一些常用的範例。
測試時間
-t
參數可以指定傳輸測試的持續時間,而 -i
可以指定輸出數據的間隔時間:
# 測試 20 秒,每隔 4 秒輸出測試數據 iperf3 -c SERVER_IP -t 20 -i 4
儲存測試結果
--logfile
參數可以將輸出的測試結果報表或是錯誤訊息儲存至檔案中:
# 將輸出訊息儲存至 output.txt 檔案中 iperf3 -c SERVER_IP --logfile output.txt
指定連接埠
iPerf3 預設會使用的連接埠(port)是 5201
,若要自行指定連接埠,可以使用 -p
參數:
# 使用 12345 這個連接埠的 server iperf3 -s -p 12345 # 使用 12345 這個連接埠的 client iperf3 -c SERVER_IP -p 12345
JSON 格式輸出
若要使用程式讀取 iPerf3 的測試結果,可將輸出格式改為 JSON 會更方便。
# 使用 JSON 格式輸出 iperf3 -c SERVER_IP -J
多條連線
-P
參數可以指定同時使用幾條連線進行測試:
# 同時使用 2 條連線測試 iperf3 -c SERVER_IP -P 2
UDP 傳輸協定
若要測試 UDP 傳輸協定的效能,可以使用 -u
參數:
# 使用 UDP 傳輸協定 iperf3 -c SERVER_IP -u
反向傳輸
iPerf3 預設會測試上傳的速度(由 client 傳送資料,而 server 負責接收)若要測試下載的速度(由 server 傳送資料,而 client 負責接收),則可以使用 -R
參數:
# 測試反向傳輸(下載) iperf3 -c SERVER_IP -R
IPv4 與 IPv6
-4
與 -6
可以指定只使用 IPv4 或 IPv6:
# 只使用 IPv4 iperf3 -c SERVER_IP -4 # 只使用 IPv6 iperf3 -c SERVER_IP -6
自訂傳送檔案
我們可以使用 -f
自訂用來測試傳送的檔案:
# 使用 YOUR_FILE 這個檔案來測試傳送速度 iperf3 -c SERVER_IP -F YOUR_FILE