Linux iperf コマンド
iperf は、TCP と UDP の帯域幅性能を測定するための専門的なネットワーク性能テストツールです。帯域幅、遅延ジッター、パケットロスなどのネットワーク性能指標を報告できます。
iperf の主な特徴:
- TCP と UDP のテストをサポート
- TCP ウィンドウサイズや UDP 帯域幅などのさまざまなパラメータを調整可能
- 双方向テスト(アップロードとダウンロードの同時実行)をサポート
- クロスプラットフォーム対応(Linux、Windows、macOS など)
iperf のインストール
Linux システムへのインストール
ほとんどの Linux ディストリビューションでは、パッケージマネージャーを使ってインストールできます:
例
# Debian/Ubuntu
sudo apt-get install iperf3
# CentOS/RHEL
sudo yum install iperf3
# Fedora
sudo dnf install iperf3
# Arch Linux
sudo pacman -S iperf3
sudo apt-get install iperf3
# CentOS/RHEL
sudo yum install iperf3
# Fedora
sudo dnf install iperf3
# Arch Linux
sudo pacman -S iperf3
Windows へのインストール
ダウンロードはiperf 公式サイトからプリコンパイル済みのバイナリファイルをダウンロードできます。
基本的な使用方法
iperf はクライアント・サーバーモードで動作します。1台のマシンでサーバーを実行し、別のマシンをクライアントとして接続テストする必要があります。
iperf サーバーを起動する
iperf3 -s
デフォルトでは 5201 ポートをリッスンし、-pパラメータで他のポートを指定できます:
iperf3 -s -p 5001
クライアント接続テスト
iperf3 -c
例として、192.168.1.100 への帯域幅をテストする場合:
iperf3 -c 192.168.1.100
よく使うパラメータの説明
共通パラメータ
| パラメータ | 説明 |
|---|---|
-p |
ポート番号を指定 |
-t |
テスト時間(秒)、デフォルトは 10 秒 |
-i |
間隔時間(秒)ごとに結果を報告 |
-f |
表示単位(Kbits, Mbits, KBytes, MBytes) |
-V |
バージョン情報を表示して終了 |
-h |
ヘルプ情報を表示 |
サーバー側パラメータ
| パラメータ | 説明 |
|---|---|
-s |
サーバーモードで実行 |
-D |
デーモンモードで実行 |
クライアント側パラメータ
| パラメータ | 説明 |
|---|---|
-c |
クライアントモードで実行し、サーバーアドレスを指定 |
-u |
TCP ではなく UDP プロトコルを使用 |
-b |
目標帯域幅を設定(UDP モード) |
-w |
TCP ウィンドウサイズを設定 |
-P |
並列接続数 |
-R |
逆方向テスト(サーバーが送信、クライアントが受信) |
実際の応用例
1. 基本的な TCP 帯域幅テスト
サーバー側:
iperf3 -s
クライアント側:
iperf3 -c 192.168.1.100
出力例:
[ ID] Interval Transfer Bitrate [ 4] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec
2. UDP 帯域幅テスト
サーバー側:
iperf3 -s
クライアント側(100Mbps UDP テスト):
iperf3 -c 192.168.1.100 -u -b 100M
3. マルチスレッドテスト
4 つの並列接続を使用:
iperf3 -c 192.168.1.100 -P 4
4. 双方向同時テスト
サーバー側:
iperf3 -s
クライアント側:
iperf3 -c 192.168.1.100 --bidir
5. 長時間テスト(60秒)
iperf3 -c 192.168.1.100 -t 60
結果の解釈
iperf のテスト結果には通常、以下の情報が含まれます:
- Interval:テスト時間区間
- Transfer:転送データ量
- Bitrate:帯域幅(ビットレート)
- Retr:TCP 再送回数(TCP のみ)
- Jitter:ジッター(UDP のみ)
- Lost/Total Datagrams:パケットロス率(UDP のみ)
ネットワーク品質の評価について:
- TCP テストは最大利用可能帯域幅の測定に適しています
- UDP テストはジッターとパケットロス率を測定でき、リアルタイムアプリケーション(VoIP、ビデオ会議など)にとってより重要です
高度な使い方
1. TCP ウィンドウサイズの設定
iperf3 -c 192.168.1.100 -w 256K
2. 特定のポートのテスト
例
# サーバー
iperf3 -s -p 5001
# クライアント
iperf3 -c 192.168.1.100 -p 5001
iperf3 -s -p 5001
# クライアント
iperf3 -c 192.168.1.100 -p 5001
3. ファイルへの出力
iperf3 -c 192.168.1.100 --logfile result.txt
4. JSON 形式での出力
iperf3 -c 192.168.1.100 -J
よくある問題と対処法
1. 接続が拒否される
確認事項:
- サーバー側で iperf が起動している
- ファイアウォールが iperf のポート(デフォルト 5201)を許可している
- クライアントが正しい IP とポートを使用している
2. 帯域幅テストの結果が期待をはるかに下回る
考えられる原因:
- ネットワークにボトルネックがある(スイッチやルーターの制限)
- ネットワークカードの設定問題(デュプレックスモード、速度を確認)
- システムリソース不足(CPU、メモリ使用率が高い)
3. UDP テストのパケットロス率が高い
推奨事項:
- UDP 帯域幅の目標値を下げる
- ネットワーク機器の QoS 設定を確認する
- 異なる時間帯のネットワーク状態をテストする
実際の適用シナリオ
- ネットワーク機器の検収:新しく導入したネットワーク機器の性能を検証する
- 帯域幅監視:定期的にネットワーク帯域幅の変化をテストする
- 障害調査:ネットワーク性能の問題を特定する
- QoS 検証:サービス品質ポリシーの効果をテストする
- 無線ネットワークテスト:WiFi 信号の強度と安定性を評価する
まとめ
iperf はネットワークエンジニア必携の帯域幅テストツールです。この記事を通じて、以下の内容を習得できたはずです:
- iperf の基本的な動作原理
- サーバーとクライアントの起動方法
- よく使うパラメータと使用例
- テスト結果の分析方法
- よくある問題の解決方法
実際のネットワーク環境でテストを多く練習し、さまざまなパラメータの組み合わせによる効果をよく理解しておくことをお勧めします。そうすることで、必要な際にネットワーク性能を迅速かつ正確に評価できます。
その他の拡張
Linux コマンド大全