iperfは、2台の間に実際にデータを流して、ネットワークの実効速度を測る道具です。今はiperf3が主流で、受ける側で「iperf3 -s」、送る側で「iperf3 -c 相手」と打つと、TCPで10秒間測ります。結果で読むのはreceiverの行の値です。
この記事でわかること
- iperf3のサーバーとクライアントの打ち方(Windows・Linux)
- 結果のsender・receiver・Retrの読み方
- 1Gbpsの回線で941Mbps前後になる理由
- -P・-R・–bidir・-u・-bなどよく使うオプション
- 速度が出ないときの区間ごとの切り分け方
一次情報: ESnet「Invoking iperf3」(参照)/ESnet「iperf3(GitHub)」(参照)/RFC 7323「TCP Extensions for High Performance」(参照)※2026年10月時点
回線の速さを数字で測って示す仕事は、クラウドや拠点間の通信が増えるほど求められています。これから伸びるネットワークの仕事と縮む仕事は、別の記事で整理しました。
iperfとは?2台の間の実効速度を測る道具
iperfとは、2台のコンピュータの間で実際にデータを流し、1秒あたりに運べた量(スループット)を測る道具です。片方がデータを受ける「サーバー」、もう片方が送る「クライアント」になります。
インターネットの速度測定サイトは、自分の端末と測定サイトの間を測ります。iperfは、測る2点を自分で選べるのが違いです。「同じスイッチの中」「ルーターをまたいだ先」「VPNの向こう」と区間を変えて測れるので、遅い場所を絞り込めます。
iperf2とiperf3は別物
iperfには、古くからあるiperf(iperf2)と、作り直されたiperf3の2種類があるので注意してください。ESnetの資料には、iperf3は元のiperfと互換性がないとはっきり書かれています。両側で同じ版を使うのが前提です。
| 項目 | iperf2 | iperf3 |
|---|---|---|
| コマンド名 | iperf | iperf3 |
| 既定のポート | 5001 | 5201 |
| 相手との互換 | iperf2同士 | iperf3同士 |
この記事では、今よく使われるiperf3で説明します。
iperf3の使い方|サーバーとクライアントで打つ
測る前に、両方の端末へiperf3を入れておきます。LinuxならRHEL系は「sudo dnf install iperf3」、Ubuntu・Debian系は「sudo apt install iperf3」です。Windowsは、iperf3.exeを入手して任意のフォルダに置き、そのフォルダで打ちます。
- 受ける側でiperf3 -sを打ち、待ち受けを始める
- 受ける側のファイアウォールでTCPの5201番を許可する(UDPで測るならUDPの5201番も)
- 送る側でiperf3 -c 相手のアドレスを打つ
- 10秒たつと、1秒ごとの値と合計が表示される
- 終わったら受ける側をCtrl+Cで止め、許可した5201番を閉じる
iperf3 -s (受ける側)
iperf3 -c 192.0.2.10 (送る側)
iperf3 -c 192.0.2.10 -R (受ける側から送らせる)
アドレスは説明用の値です。ESnetの資料のとおり、既定では送る側がクライアント、受ける側がサーバーになります。-Rを付けると向きが逆になり、サーバーからクライアントへ流す形です。
iperf3の結果の見方|receiverの行を読む
TCPで測ると、1秒ごとの行が並んだ後に、区切り線をはさんで合計の2行が出ます。
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec 0 sender
[ 5] 0.00-10.04 sec 1.09 GBytes 934 Mbits/sec receiver
| 列 | 意味 | 読み方 |
|---|---|---|
| Interval | 測った時間帯(秒) | 合計の行は全体の時間 |
| Transfer | 運べたデータ量 | GBytesはバイト単位 |
| Bitrate | 1秒あたりの量 | Mbits/secはビット単位。回線の速度と比べるのはこちら |
| Retr | TCPの再送の回数 | 多いと、途中で取りこぼしが起きている |
| sender/receiver | 送った側/受けた側の集計 | 実際に届いた量はreceiver |
報告に使うのはreceiverの行です。senderは「送り出した量」なので、途中で失われたぶんも含みます。Retrが毎秒のように増えるなら、帯域の不足より、どこかでパケットが落ちていることを疑います。
1Gbpsの回線で941Mbps前後になる理由
1Gbpsのリンクで測っても、iperf3の結果は1000Mbpsにはなりません。イーサネットとIP・TCPのヘッダーが、データと一緒に回線を使うためです。
| 項目 | バイト数 |
|---|---|
| 回線上の1フレーム(MTU 1500+ヘッダー14+FCS 4+プリアンブル8+フレーム間隔12) | 1538 |
| 1フレームで運べるデータ(1500−IP 20−TCP 20−タイムスタンプ12) | 1448 |
| 割合(1448÷1538) | 約94.1% |
1000Mbpsに94.1%を掛けると、約941Mbpsです。RFC 7323のタイムスタンプは10バイトで、詰め物を入れて12バイトを使います。これを使わない通信なら1フレーム1460バイトになり、約949Mbpsが上限です。1Gbpsで930〜940Mbps台が出ていれば、ほぼ上限まで出ていると判断できます。
iperf3のよく使うオプション
オプションはクライアント側に付けるものがほとんどです。サーバー側は「-s」と、番号を変える「-p」くらいで足ります。
| オプション | 意味 | 使う場面 |
|---|---|---|
| -t 秒 | 測る時間(既定10秒) | 長めに測って平均を見る |
| -P 数 | 同時に流す本数 | 1本では出ないときの比較 |
| -R | 向きを逆にする | 下り方向を測る |
| –bidir | 上りと下りを同時に測る | 双方向の通信を再現する |
| -u | UDPで測る | 損失と揺らぎを見る |
| -b 速度 | 送る速さの目標 | UDPでは毎回指定する |
| -w 大きさ | ソケットのバッファ(ウィンドウ) | 遅延の大きい区間 |
| -O 秒 | 最初の数秒を集計から外す | TCPの立ち上がりを除く |
| -p 番号 | 使うポート | 5201番が使えないとき |
| -J | 結果をJSONで出す | 記録やスクリプトに使う |
UDPは-bを付けないと1Mbpsしか流れない
ESnetの資料によると、-bの既定はUDPで1Mbit/sec、TCPでは上限なしです。-uだけで測ると1Mbps前後の結果になり、「回線が遅い」と誤解しやすいので注意してください。
iperf3 -c 192.0.2.10 -u -b 500M
UDPの結果には、Jitter(到着の揺らぎ)とLost/Total(失われた数/送った数)が出ます。音声やビデオ会議の品質を見るときは、速さよりこの2つが手がかりです。
速度が出ないときの切り分け|区間ごとに測る
「遅い」と言われたときは、測る区間を近いところから順に広げていきます。どこで値が落ちるかで、原因のある区間が分かります。
近い区間から順に測り、値が落ちた区間を見る
- 同じ時間帯に、同じオプションで測って比べる
- 1同じスイッチにつないだ2台ここで出なければ、端末のNICやケーブル、CPUを疑う
- 2ルーターやファイアウォールをまたいだ2台1より落ちれば、その機器の処理能力や設定を見る
- 3拠点間・VPNの向こうの2台落ちるなら回線の帯域、遅延、MTUを見る
1本で遅く、-P 4で伸びるなら、回線より1本あたりのウィンドウが足りていない可能性が高い。
図:iperf3は区間を変えて比べると、遅い場所を絞り込める
| 結果の傾向 | 起きていそうなこと | 確かめること |
|---|---|---|
| 1本だと遅く、-P 4だと伸びる | 遅延に対してウィンドウが小さい | -wを大きくして1本で測り直す |
| Retrが多い | 途中でパケットが落ちている | インターフェースのエラー、混雑、MTU |
| 片方向だけ遅い(-Rで差が出る) | 上りと下りで経路か設定が違う | 回線の契約、片方向のシェーピング |
| UDPでLostが多い | 送る速さが区間の上限を超えている | -bを下げて、落ちない速さを探す |
1本のTCPが運べる量は、おおよそ「ウィンドウの大きさ÷往復時間」で頭打ちになります。たとえば64KBのウィンドウで往復10ミリ秒なら、65,536×8÷0.01で約52Mbpsです。遠い拠点ほど、回線が太くても1本では出にくくなります。
よくある質問
Windowsでiperf3を使うにはどうすればいいですか?
iperf3.exeを入手してフォルダに置き、コマンドプロンプトでそのフォルダへ移動して「iperf3 -s」や「iperf3 -c 相手」と打ちます。サーバー側にする場合は、Windowsのファイアウォールで5201番の受信を許可してください。会社のPCでは、ソフトを入れてよいかを先に確かめておくと安心です。
「unable to connect to server」と表示されます
相手の5201番につながっていません。相手側で「iperf3 -s」が動いているか、ファイアウォールで5201番を許可しているかを確かめます。片方がiperf2、片方がiperf3という組み合わせでも、つながりません。
iperf3の結果が速度測定サイトと違います
測っている区間が違うためです。速度測定サイトはインターネット上のサーバーまで、iperf3は自分で選んだ2台の間を測ります。社内の区間が速いのにサイトの値が遅いなら、問題はインターネット側の区間にあります。
本番のネットワークでiperf3を流してもいいですか?
iperf3は、その区間の帯域を目いっぱい使う道具です。業務時間に流すと、ほかの利用者の通信が遅くなるおそれがあります。時間帯と測る区間を決め、ネットワークの管理者の許可を取ってから測るのが基本です。
TCPとUDPは、どちらで測ればいいですか?
回線やファイル転送の速さを見るならTCP、音声や映像のように損失と揺らぎが効く通信を見るならUDPです。UDPで測るときは-bで速さを指定し、Lostが出始める手前の値を探します。
まとめ
- iperf3は、受ける側で「iperf3 -s」、送る側で「iperf3 -c 相手」。既定はTCPで10秒
- iperf2とiperf3は互換がない。既定のポートは5201番
- 読むのはreceiverの行。Retrが多ければ途中の取りこぼしを疑う
- 1Gbpsで941Mbps前後はヘッダーのぶん。ほぼ上限まで出ている
- UDPは-bを付ける。遅いときは区間を近い順に広げて比べる
数字で「この区間がこれだけ遅い」と示せれば、回線の増速や機器の入れ替えの相談が具体的に進むでしょう。原因がMTUやパケットの取りこぼしに見えたら、pingのサイズ指定やtcpdumpで中身を確かめる段階に進みます。
帯域の設計や拠点間の通信の改善まで任される人は、CCNPの領域の仕事に近づいていきます。CCNP取得後の転職先と年収を、求人の傾向から比べた記事です。
免責事項
※本記事はiperf3の公式資料・RFCなどの公開情報をもとに整理したものです。コマンドの表示や挙動、測定の結果は、OSやソフトのバージョン・機器・環境によって変わる場合があります。業務で使う環境では、所属先のルールと各製品の最新資料をあわせてご確認ください。

