iperf3 チュートリアル:LinuxとWindowsでネットワーク速度をテストする
10分で読めます - 2026年5月7日

iperf3をインストールし、帯域幅テストを実行し、LinuxとWindowsで正確な結果を得るためにTCPバッファを調整する。UDP、双方向、10GbE+のテストをカバー。
iperf3 チュートリアル:Linux および Windows でのネットワークパフォーマンス測定
iperf3は、2台のマシン間のネットワーク帯域幅、ジッター、パケットロスを測定するためのコマンドラインツールです。これはクライアント・サーバーモデルを採用しており、一方のマシンが受信を待機し、もう一方のマシンがトラフィックを送信することで、正確なスループット値を算出します。本ガイドでは、インストール方法、基本および高度なテスト、そして高速回線において正確な結果を得るためのシステム調整方法について解説します。
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-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
これは、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 flag)では、出力にジッター(パケット到着のばらつき)および損失データグラム数/総データグラム数が追加されます。VoIPのようなリアルタイムトラフィックには、ジッター1ms未満かつ損失0%が理想的です。
便利なフラグ
| フラグ | 目的 |
|---|---|
-c <IP> | サーバーに接続 |
-p <port> | 特定のポートを使用する(デフォルト:5201) |
-t <sec> | テスト時間(秒単位)(デフォルト:10) |
-i <sec> | レポート間隔 |
-P <num> | 並列ストリーム |
-u | UDPモード |
-b <n>M | ターゲット帯域幅(UDP;省略した場合はデフォルトで 1 Mbps) |
-R | リバースモード(サーバーが送信、クライアントが受信) |
-w <n>K | TCPウィンドウ/ソケットバッファサイズ |
-J | JSON出力 |
-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が再送信によって隠蔽してしまうジッターやパケットロスが明らかになります。iperf3はUDPのデフォルト速度が1 Mbpsであるため、必ず -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 ms未満のジッターはVoIPに適しており、30 msを超えると音声に問題が生じます。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秒空けてください。
単一ストリームが、並列ストリームの合計よりも大幅に遅いですか?1つのストリームが200 Mbpsしか出ないのに、8つのストリームを合わせると1.6 Gbpsに達する場合、TCPウィンドウまたはOSバッファが単一ストリームのボトルネックになっています。以下のバッファを調整してください。
TCPバッファの調整
まず、帯域幅遅延積(BDP)を計算します:帯域幅 × 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に設定)して、64 KBを超えるTCPウィンドウを有効にします。
また、デフォルトの CUBIC 輻輳アルゴリズムから Google の BBR に切り替えることもできます。パケット損失がある高遅延のリンクでは、BBR は CUBIC よりも一貫して高いスループットを実現します。
特定のバッファサイズをテストするには、iperf3の -w フラグを使用して特定のバッファサイズをテストできますが、これはカーネルの rmem_max または wmem_maxを超えることはできません。ギガビット回線では8MB、100Mbps回線では512KBから始めてください。
専用サーバーをプロビジョニングし、ネットワークパフォーマンスを検証したい場合は、セットアップ直後およびネットワーク変更後に iperf3 ベースラインテストを実行して、パフォーマンスの低下を早期に発見してください。
おすすめの動画
パワフルで無制限のVPSが重要な理由
信頼できるパフォーマンスと無制限のトラフィックが必要ですか?強力な無制限VPSは、使用量の制限を心配することなく、必要なスピード、スケーラビリティ、帯域幅を提供します。
3分で読めます - 2025年5月9日
Linuxでストレージ容量を最適化する方法
15分で読めます - 2026年5月22日

ご質問またはカスタムソリューションが必要ですか?
柔軟なオプション
グローバル・リーチ
即時展開
柔軟なオプション
グローバル・リーチ
即時展開