ネットワークの速度が遅いと感じたことはありませんか?オンライン会議中に映像が途切れたり、大容量ファイルのダウンロードに時間がかかったりすると、作業効率が大きく下がってしまいます。そんな時、ネットワークのどこに問題があるのかを特定するために役立つのが「iperf3」というツールです。
本記事では、iperf3の基本的な使い方から、より詳細な測定を行うためのオプション、さらには測定結果の読み解き方まで、分かりやすく解説します。iperf3を使いこなして、あなたのネットワーク環境を最適化するための第一歩を踏み出しましょう。
iperf3とは?ネットワーク性能を測る強力なツール

iperf3は、IPネットワーク上での最大帯域幅を測定するために設計された、オープンソースのコマンドラインツールです。2台の機器間でデータを送受信し、その間のネットワーク性能を詳細に分析できます。Windows、Linux、macOSなど、主要なオペレーティングシステムで利用できるため、様々な環境でのネットワーク診断に活用されています。
iperf3でできること
iperf3を使えば、ネットワークのスループット(データ転送速度)を正確に測定できます。例えば、LANケーブルやWi-Fiルーターを新しくした際に、その性能が期待通りに出ているかを確認するのに役立ちます。また、TCPとUDPの両方のプロトコルに対応しているため、Web閲覧やファイル転送で使われるTCP通信の性能だけでなく、動画ストリーミングやVoIPで重要なUDP通信のパケットロスやジッター(揺らぎ)も測定可能です。
さらに、測定時間や並列ストリーム数、帯域幅の制限など、様々なオプションを設定することで、より詳細なテストシナリオを構築できます。これにより、ネットワークのボトルネックを特定したり、特定のアプリケーションが利用する帯域幅をシミュレートしたりすることも可能です。
iperf2との違いとiperf3を選ぶ理由
iperfには、iperf2とiperf3という2つの主要なバージョンが存在します。iperf3は、iperf2を基にゼロから再実装された新しいバージョンであり、互換性はありません。
iperf3の主な特徴とiperf2との違いは以下の通りです。
- シンプルなコードベース: iperf3はより小さくシンプルなコードベースで開発されており、他のプログラムから機能を利用しやすいライブラリ版も含まれています。
- JSON出力: 測定結果をJSON形式で出力するオプションがあり、プログラムによる解析やグラフ化が容易です。
- SCTPサポート: TCPやUDPに加えて、SCTPプロトコルでの測定も可能です。
- シングルクライアント接続: iperf3のサーバーは、一度に1つのクライアント接続のみを処理します。
iperf3は、現代のネットワーク環境に合わせた機能強化がされており、特に自動化されたテストや詳細なデータ解析を行う場合に優れた選択肢となるでしょう。
iperf3のインストール方法:主要OSごとの手順

iperf3を使い始めるには、まず測定を行う2台の機器それぞれにiperf3をインストールする必要があります。ここでは、主要なオペレーティングシステムごとのインストール方法を解説します。
Windowsへのインストール
Windowsでは、iperf3は通常、実行ファイルをダウンロードして使用します。インストール作業は不要で、ダウンロードしたファイルを解凍するだけで利用できます。
- iperf3の公式サイトや信頼できるダウンロードサイト(例: iperf.fr、TechSpotなど)から、Windows版の最新バイナリ(通常はzipファイル)をダウンロードします。
- ダウンロードしたzipファイルを任意の場所に解凍します。例えば、
C:iperf3のようなフォルダを作成して解凍すると良いでしょう。 - コマンドプロンプトまたはPowerShellを起動し、解凍したiperf3のフォルダに移動します。
iperf3.exe -vと入力して、バージョン情報が表示されれば準備完了です。
なお、GUIでiperf3を起動できるツールも存在します。
Linux(Ubuntu/CentOSなど)へのインストール
多くのLinuxディストリビューションでは、パッケージマネージャーを使って簡単にiperf3をインストールできます。
Ubuntu/Debian系の場合
ターミナルを開き、以下のコマンドを実行します。
sudo apt install iperf3
インストールが完了したら、iperf3 -vでバージョンを確認しましょう。
CentOS/Red Hat系の場合
ターミナルを開き、以下のコマンドを実行します。
sudo yum install iperf3
または、新しいバージョンではdnfを使用します。
sudo dnf install iperf3
インストール後にiperf3 -vでバージョンを確認してください。
macOSへのインストール
macOSでは、HomebrewまたはMacPortsといったパッケージマネージャーを利用するのが一般的で、手軽にインストールできます。
Homebrewを使用する場合
Homebrewがインストールされていない場合は、先にHomebrewをインストールしてください。その後、ターミナルを開き、以下のコマンドを実行します。
brew install iperf3
インストールが完了したら、iperf3 -vでバージョンを確認しましょう。
MacPortsを使用する場合
MacPortsがインストールされていない場合は、先にMacPortsをインストールしてください。その後、ターミナルを開き、以下のコマンドを実行します。
sudo port install iperf3
インストール後にiperf3 -vでバージョンを確認してください。
iperf3の基本的な使い方:サーバー・クライアント設定と測定

iperf3は、ネットワークの帯域幅を測定するために、サーバーとクライアントの2つのモードで動作します。一方の機器をサーバーとして起動し、もう一方の機器をクライアントとして接続することで、その間の通信性能を測定します。ここでは、基本的な設定と測定方法を解説します。
サーバーモードの起動方法
まず、測定対象となるネットワークの一方の機器をサーバーとして起動します。サーバーは、クライアントからの接続を待ち受ける役割を担います。
コマンドプロンプトまたはターミナルを開き、以下のコマンドを実行します。
iperf3 -s
このコマンドを実行すると、iperf3はデフォルトでTCPポート5201番で接続を待ち受けます。 Server listening on 5201のようなメッセージが表示されれば、サーバーは正常に起動しています。
注意点:サーバーを起動する機器のファイアウォールで、TCPポート5201番(または指定したポート)の通信を許可しておく必要があります。許可されていない場合、クライアントからの接続がブロックされてしまいます。
クライアントモードでのTCP測定
サーバーが起動したら、もう一方の機器をクライアントとして起動し、サーバーに接続して測定を開始します。デフォルトではTCPプロトコルで測定が行われます。
クライアント側のコマンドプロンプトまたはターミナルを開き、以下のコマンドを実行します。
iperf3 -c <サーバーのIPアドレス>
<サーバーのIPアドレス>の部分には、サーバーとして起動した機器のIPアドレスを入力してください。例えば、サーバーのIPアドレスが192.168.1.100であれば、iperf3 -c 192.168.1.100と入力します。
クライアントがサーバーに接続すると、自動的にデータ転送が開始され、測定結果がリアルタイムで表示されます。デフォルトの測定時間は10秒です。
UDPでのネットワーク測定
iperf3は、TCPだけでなくUDPプロトコルでの測定も可能です。UDPは、動画ストリーミングやVoIPなど、リアルタイム性が重視される通信でよく使われます。UDP測定では、帯域幅に加えてパケットロスやジッター(パケットの到着間隔のばらつき)も測定できます。
UDPで測定を行うには、クライアント側で-uオプションを追加します。
iperf3 -c <サーバーのIPアドレス> -u
UDP測定では、デフォルトで1Mbpsの帯域幅でデータを送信します。より高い帯域幅でテストしたい場合は、-bオプションでビットレートを指定できます。例えば、100Mbpsでテストする場合は以下のようになります。
iperf3 -c <サーバーのIPアドレス> -u -b 100M
UDP測定では、サーバー側で特別なオプションは不要です。
測定結果の読み解き方
iperf3の測定結果は、通常、以下のような形式で表示されます。
[ ID] Interval Transfer Bandwidth
0.00-10.00 sec 1.12 GBytes 961 Mbits/sec
- ID: 測定ストリームの識別子です。
- Interval: 測定が行われた時間間隔です。デフォルトでは1秒ごとにレポートが表示されます。
- Transfer: その時間間隔で転送されたデータの総量です。
- Bandwidth: その時間間隔での平均帯域幅(データ転送速度)です。これがネットワークのスループットを示します。
UDP測定の場合、さらに以下の項目が表示されます。
- Jitter: パケットの到着間隔のばらつき(揺らぎ)を示します。値が小さいほど安定しています。
- Lost/Total Datagrams: 送信されたパケットのうち、失われたパケットの数と総パケット数です。パケットロス率を把握できます。
これらの結果を参考に、ネットワークの性能が期待通りか、どこにボトルネックがあるのかを判断できます。例えば、TCPの帯域幅が低い場合は、回線速度や機器の性能が原因かもしれません。UDPでパケットロスやジッターが大きい場合は、無線LANの電波状況やネットワーク機器の負荷が考えられます。
iperf3の便利なオプション:より詳細な測定のために

iperf3には、基本的な測定だけでなく、より詳細なネットワーク診断を行うための様々なオプションが用意されています。これらのオプションを使いこなすことで、特定の状況を再現したり、問題の原因を深く掘り下げたりすることが可能です。
- 並列ストリームでスループットを高める(-Pオプション)
- 測定時間を指定する(-tオプション)
- 帯域幅を制限してテストする(-bオプション)
- リバースモードで双方向測定(-Rオプション)
- JSON形式で結果を出力する(-Jオプション)
- 特定のポート番号を使用する(-pオプション)
並列ストリームでスループットを高める(-Pオプション)
デフォルトでは、iperf3は単一のTCPストリームで測定を行います。しかし、実際のネットワーク通信では複数の接続が同時に行われることが多く、単一ストリームではネットワークの最大性能を測りきれない場合があります。-Pオプションを使うと、複数の並列ストリームでデータを転送し、より現実的なスループットを測定できます。
例えば、4つの並列ストリームでTCP測定を行うには、クライアント側で以下のコマンドを実行します。
iperf3 -c <サーバーのIPアドレス> -P 4
このオプションは、特に高速なネットワーク環境で、ネットワークアダプターやCPUの処理能力がボトルネックになっていないかを確認するのに役立ちます。
測定時間を指定する(-tオプション)
デフォルトの測定時間は10秒ですが、より長時間の安定性を確認したい場合や、短時間でサッと確認したい場合には、-tオプションで測定時間を秒単位で指定できます。
例えば、30秒間測定を行うには、クライアント側で以下のコマンドを実行します。
iperf3 -c <サーバーのIPアドレス> -t 30
長時間の測定は、ネットワークの安定性や、時間帯による性能の変化を把握するのに有効です。
帯域幅を制限してテストする(-bオプション)
UDP測定では、-bオプションで送信する帯域幅を指定できます。これは、特定のアプリケーションが利用する帯域幅をシミュレートしたり、ネットワーク機器が特定の帯域幅でどのように動作するかを確認したりする際に便利です。
例えば、UDPで50Mbpsの帯域幅を生成するには、クライアント側で以下のコマンドを実行します。
iperf3 -c <サーバーのIPアドレス> -u -b 50M
TCP測定の場合、-bオプションは目標帯域幅を設定しますが、ネットワークの実際の最大帯域幅がそれよりも低い場合は、指定した帯域幅に達しないことがあります。
リバースモードで双方向測定(-Rオプション)
通常、iperf3のクライアントはデータを送信し、サーバーはデータを受信します。しかし、-R(リバース)オプションを使うと、サーバーがデータを送信し、クライアントがデータを受信するモードに切り替わります。これにより、ダウンロード方向の帯域幅を測定できます。
クライアント側でリバースモードで測定を行うには、以下のコマンドを実行します。
iperf3 -c <サーバーのIPアドレス> -R
アップロードとダウンロードの両方向の性能を個別に確認したい場合に有効な方法です。
JSON形式で結果を出力する(-Jオプション)
iperf3の測定結果は、デフォルトでは人間が読みやすいテキスト形式で表示されます。しかし、-J(JSON)オプションを使うと、結果をJSON形式で出力できます。これは、測定結果を他のツールで解析したり、スクリプトで自動処理したりする場合に非常に便利です。
JSON形式で結果を出力するには、クライアント側で以下のコマンドを実行します。
iperf3 -c <サーバーのIPアドレス> -J
この出力をファイルにリダイレクトすることで、後からデータ分析を行うことも可能です。
特定のポート番号を使用する(-pオプション)
iperf3はデフォルトでTCP/UDPの5201番ポートを使用しますが、ファイアウォールの設定や他のアプリケーションとの競合により、別のポートを使用したい場合があります。-pオプションを使うと、サーバーとクライアントの両方で任意のポート番号を指定できます。
例えば、サーバーをポート6001で待ち受けさせ、クライアントもポート6001に接続するには、それぞれ以下のコマンドを実行します。
サーバー側:
iperf3 -s -p 6001
クライアント側:
iperf3 -c <サーバーのIPアドレス> -p 6001
このオプションは、特定のポートでの通信性能をテストしたい場合に役立ちます。
iperf3を使った応用的な測定シナリオ

iperf3の基本的な使い方やオプションを理解したら、さらに応用的な測定シナリオに挑戦してみましょう。これにより、より複雑なネットワーク環境での性能評価やトラブルシューティングが可能になります。
IPv6アドレスでのネットワーク測定
現代のネットワークではIPv4とIPv6が共存しており、IPv6環境でのネットワーク性能も重要です。iperf3はIPv6にネイティブで対応しており、-6オプション(または--version6)を使うことでIPv6アドレスでの測定が可能です。
例えば、IPv6アドレス2001:db8::1のサーバーに対してIPv6で測定を行うには、クライアント側で以下のコマンドを実行します。
iperf3 -c 2001:db8::1 -6
サーバー側もIPv6アドレスで待ち受けるように設定できます。 IPv4とIPv6のどちらか一方に限定したい場合は、-4(IPv4のみ)または-6(IPv6のみ)オプションを使用します。
IPv4とIPv6の性能を比較することで、どちらのプロトコル経路に問題があるのかを特定する手がかりになります。
複数のクライアントからの同時測定
iperf3のサーバーは、デフォルトでは一度に1つのクライアント接続しか処理できません。しかし、複数のクライアントから同時に測定を行いたい場合は、サーバーをデーモンモードで起動し、複数のクライアンスから接続を試みることで、擬似的に同時測定を行うことができます。
ただし、iperf3の設計上、サーバーはシングルクライアント接続が基本であるため、厳密な同時多クライアント測定には限界があります。より高度なマルチクライアントテストが必要な場合は、iperf3の代替ツールや、専用のネットワークテストソリューションを検討することも一つの方法です。
iperf3測定時のトラブルシューティングと解決策

iperf3を使ってネットワーク測定を行う際、期待通りの結果が得られないことや、接続がうまくいかないことがあります。ここでは、よくあるトラブルとその解決策を解説します。
ファイアウォールの設定を確認する
iperf3の測定で最も多いトラブルの一つが、ファイアウォールによる通信のブロックです。iperf3はデフォルトでTCP/UDPの5201番ポートを使用するため、サーバーとして起動する機器のファイアウォールでこのポートが開放されている必要があります。
解決策:
- サーバー側のOSのファイアウォール設定を確認し、TCP/UDPの5201番ポート(または
-pオプションで指定したポート)からのインバウンド接続を許可します。 - ネットワーク機器(ルーターなど)にファイアウォール機能がある場合も、同様にポートの開放が必要か確認してください。
- 一時的にファイアウォールを無効にしてテストを行い、問題が解決するかどうかを確認するのも有効な方法です。ただし、テスト後は必ずファイアウォールを元に戻しましょう。
サーバーが正しく起動しているか確認する
クライアントからサーバーに接続できない場合、そもそもサーバーが正しく起動していない可能性があります。
解決策:
- サーバー側のコマンドプロンプトやターミナルで、
iperf3 -sコマンドがエラーなく実行され、Server listening on 5201のようなメッセージが表示されているか確認します。 - もしエラーが表示されている場合は、そのエラーメッセージを参考に問題解決にあたります。
- サーバープロセスがバックグラウンドで動作しているか確認するには、Linuxであれば
ps aux | grep iperf3などのコマンドでプロセスを確認できます。
ネットワーク経路の問題を特定する
ファイアウォールやサーバーの起動に問題がないにもかかわらず、測定結果が低い場合や接続が不安定な場合は、ネットワーク経路自体に問題がある可能性があります。
解決策:
- ケーブルやポートの確認: 使用しているLANケーブルが正しく接続されているか、または損傷していないかを確認します。また、ネットワークスイッチやルーターのポートが正常に機能しているかも確認しましょう。
- Wi-Fi環境の確認: 無線LANを使用している場合、電波干渉や距離、障害物などが原因で性能が低下することがあります。クライアント機器をアクセスポイントに近づけてテストしたり、異なる周波数帯(2.4GHz/5GHz)で試したりしてみましょう。
- 中間機器のバイパス: 可能であれば、間に挟まっているスイッチやルーターを一時的に外し、2台の機器を直接接続してテストすることで、問題が中間機器にあるのかどうかを切り分けられます。
- 他のネットワークツールとの併用:
pingコマンドで遅延やパケットロスを確認したり、traceroute(Windowsではtracert)で通信経路を確認したりすることで、問題の箇所を特定する手がかりが得られます。
よくある質問

- iperf3はどこからダウンロードできますか?
- iperf3で遅延(レイテンシ)は測定できますか?
- iperf3の測定結果が安定しないのはなぜですか?
- iperf3の代わりに使えるツールはありますか?
- iperf3は無料で使えますか?
iperf3はどこからダウンロードできますか?
iperf3は、公式ウェブサイト(iperf.fr)や、GitHubのリポジトリ(esnet/iperf)からダウンロードできます。 Windows版は、SourceForgeなどのサイトでバイナリが提供されていることもあります。 LinuxやmacOSでは、パッケージマネージャー(apt, yum, brewなど)を使って簡単にインストールできます。
iperf3で遅延(レイテンシ)は測定できますか?
iperf3は主に帯域幅(スループット)の測定ツールですが、UDPモードで測定を行うと、ジッター(Jitter)の値をレポートします。 ジッターはパケットの到着間隔のばらつきを示すため、間接的にネットワークの安定性や遅延の変動を把握するのに役立ちます。厳密なレイテンシ(片道遅延や往復遅延)を測定するには、pingやmtrといった別のツールの方が適しています。
iperf3の測定結果が安定しないのはなぜですか?
iperf3の測定結果が安定しない場合、いくつかの原因が考えられます。ネットワークの混雑状況、Wi-Fiの電波干渉、CPUやメモリのリソース不足、またはバックグラウンドで動作している他のアプリケーションなどが影響している可能性があります。
安定した結果を得るためには、測定中は他のネットワーク利用を控え、測定機器のリソースに余裕を持たせることが大切です。また、複数回測定を行い、平均値や最小値、最大値を確認することも有効な方法です。
iperf3の代わりに使えるツールはありますか?
iperf3の代替ツールとしては、以下のようなものがあります。
- netperf: iperfと同様にネットワーク性能を測定するツールで、より詳細なレイテンシやトランザクションレートのテストに適しています。
- ttcp: シンプルなTCP/UDPスループットテスターですが、iperf3に比べて機能は限定的です。
- speedtest-cli: Speedtest.netのコマンドライン版で、主にインターネット回線の速度測定に利用されます。ローカルネットワーク内の測定には不向きです。
- xfr: iperf3のモダンな代替ツールとして開発されており、ライブTUI(ターミナルユーザーインターフェース)やマルチクライアントサーバー、QUICサポートなどの特徴があります。
- ntttcp: Microsoftが提供するスループットツールで、Windows環境に最適化されています。
iperf3は無料で使えますか?
はい、iperf3は無料で利用できるオープンソースソフトウェアです。BSDライセンスの下でリリースされており、誰でも自由にダウンロード、使用、配布、改変が可能です。
まとめ
- iperf3はIPネットワークの最大帯域幅を測定するコマンドラインツールです。
- Windows、Linux、macOSなど多様なOSで利用できます。
- サーバーとクライアントの2つのモードで動作し、両機器にインストールが必要です。
- 基本的な使い方は
iperf3 -s(サーバー)とiperf3 -c <IPアドレス>(クライアント)です。 - TCPとUDPの両プロトコルで測定でき、UDPではパケットロスやジッターも確認できます。
-P(並列ストリーム)、-t(測定時間)、-b(帯域幅制限)などのオプションで詳細なテストが可能です。-Rオプションでリバースモード(サーバー送信、クライアント受信)での測定も行えます。-Jオプションで測定結果をJSON形式で出力し、データ解析に活用できます。-pオプションでデフォルト以外のポート番号を指定できます。- IPv6環境での測定には
-6オプションを使用します。 - 測定がうまくいかない場合は、ファイアウォールの設定やサーバーの起動状況を確認しましょう。
- ネットワーク経路の問題は、ケーブルやWi-Fi環境、中間機器の確認で特定できます。
- iperf3は無料で利用できるオープンソースソフトウェアです。
- 厳密なレイテンシ測定には
pingなどの他のツールが適しています。 - iperf2とは互換性がなく、iperf3は新しい機能が追加されています。
- 代替ツールにはnetperfやxfrなどがあります。
