iperf3 チュートリアル:Linux および Windows でのネットワーク速度の測定

10分で読めます - 2026年5月7日

hero section cover

LinuxおよびWindowsで正確な結果を得るには、iperf3をインストールし、帯域幅テストを実行し、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 または GitHub リポジトリ ar51an/iperf3-win-builds からスタンドアロンの実行ファイルをダウンロードしてください。それを 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

1回限りのテストの場合は、 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のようなリアルタイムトラフィックには、ジッターが1 ms未満で損失率が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が再送信によって隠してしまうジッターやパケットロスが明らかになります。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 (ゼロコピー)を使用してCPU負荷を軽減してください。40 Gbps以上の場合は、異なるポートで複数のサーバーインスタンスを実行し、それらをCPUコアに分散させてください。

結果にばらつきがある? -O 3 を使用して、TCP輻輳ウィンドウが拡大する最初の数秒間を除外してください。ネットワークバッファをクリアするために、テスト実行の間隔を30秒空けてください。

単一ストリームの速度が、並列ストリームの合計速度よりも大幅に遅いですか? 1つのストリームが200 Mbpsしか出ないのに、8つのストリームを合わせると1.6 Gbpsに達する場合、TCPウィンドウまたはOSバッファが単一ストリームの速度を制限しています。以下のバッファを調整してください。

TCPバッファの調整

まず、帯域幅遅延積(BDP):帯域幅 × RTT を計算します。RTT が 50 ms の 10 Gbps リンクの場合、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 に設定したままにすると、カーネルはこれらの範囲内で自動調整を行います。64 KB を超える TCP ウィンドウに対しては、 net.ipv4.tcp_window_scaling (1に設定)して、64 KBを超えるTCPウィンドウを有効にします。

また、デフォルトの CUBIC 輻輳アルゴリズムから Google の BBR に切り替えることもできます。パケット損失が多少ある高遅延のリンクでは、BBR は CUBIC よりも一貫して高いスループットを実現します。

特定のバッファサイズをテストするには、iperf3の -w フラグを使用して特定のバッファサイズをテストできますが、これはカーネルの rmem_max または wmem_maxを超えることはできません。ギガビット回線では 8 MB、100 Mbps 回線では 512 KB から始めてください。

専用サーバーをプロビジョニングし、ネットワークパフォーマンスを検証したい場合は、セットアップ直後およびネットワークの変更後に iperf3 のベースラインテストを実行し、パフォーマンスの低下を早期に検出してください。

おすすめの動画

ブログ

今週の特集

その他の記事
iperf3 チュートリアル:Linux および Windows でのネットワーク速度の測定

iperf3 チュートリアル:Linux および Windows でのネットワーク速度の測定

LinuxおよびWindowsで正確な結果を得るには、iperf3をインストールし、帯域幅テストを実行し、TCPバッファを調整してください。UDP、双方向、および10GbE以上のテストについて解説しています。

10分で読めます - 2026年5月7日

その他の記事
background image

ご質問またはカスタムソリューションが必要ですか?

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開