iperfの使い方|iperf3で帯域を測る手順

iperfの使い方

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の主な違い
項目iperf2iperf3
コマンド名iperfiperf3
既定のポート50015201
相手との互換iperf2同士iperf3同士

この記事では、今よく使われるiperf3で説明します。

iperf3の使い方|サーバーとクライアントで打つ

測る前に、両方の端末へiperf3を入れておきます。LinuxならRHEL系は「sudo dnf install iperf3」、Ubuntu・Debian系は「sudo apt install iperf3」です。Windowsは、iperf3.exeを入手して任意のフォルダに置き、そのフォルダで打ちます。

  1. 受ける側でiperf3 -sを打ち、待ち受けを始める
  2. 受ける側のファイアウォールでTCPの5201番を許可する(UDPで測るならUDPの5201番も)
  3. 送る側でiperf3 -c 相手のアドレスを打つ
  4. 10秒たつと、1秒ごとの値と合計が表示される
  5. 終わったら受ける側を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
iperf3の結果の列と読み方
列意味読み方
Interval測った時間帯(秒)合計の行は全体の時間
Transfer運べたデータ量GBytesはバイト単位
Bitrate1秒あたりの量Mbits/secはビット単位。回線の速度と比べるのはこちら
RetrTCPの再送の回数多いと、途中で取りこぼしが起きている
sender/receiver送った側/受けた側の集計実際に届いた量はreceiver

報告に使うのはreceiverの行です。senderは「送り出した量」なので、途中で失われたぶんも含みます。Retrが毎秒のように増えるなら、帯域の不足より、どこかでパケットが落ちていることを疑います。

1Gbpsの回線で941Mbps前後になる理由

1Gbpsのリンクで測っても、iperf3の結果は1000Mbpsにはなりません。イーサネットとIP・TCPのヘッダーが、データと一緒に回線を使うためです。

1Gbpsのイーサネットで運べるTCPのデータ(MTU 1500)
項目バイト数
回線上の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」くらいで足ります。

iperf3のよく使うオプション(クライアント側)
オプション意味使う場面
-t 秒測る時間(既定10秒)長めに測って平均を見る
-P 数同時に流す本数1本では出ないときの比較
-R向きを逆にする下り方向を測る
–bidir上りと下りを同時に測る双方向の通信を再現する
-uUDPで測る損失と揺らぎを見る
-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取得後の転職先と年収を、求人の傾向から比べた記事です。

CCNP取得後の転職先と年収を見る


免責事項

※本記事はiperf3の公式資料・RFCなどの公開情報をもとに整理したものです。コマンドの表示や挙動、測定の結果は、OSやソフトのバージョン・機器・環境によって変わる場合があります。業務で使う環境では、所属先のルールと各製品の最新資料をあわせてご確認ください。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Tanabeです。新卒でSIerに入り、ネットワークの設計から構築、運用保守、クラウド移行まで10年やってきました。その間に転職を3回、CCNPも取りました。

正直に言うと、資格を取っても年収はすぐには上がりませんでした。1回目の転職は失敗、2回目でようやく150万円上がり、3回目で今の事業会社に落ち着いた。動いてみて分かったのは、資格の有無より「現場で何を任されてきたか」で評価が決まる、ということです。

エージェントの言葉を鵜呑みにして、危うく後悔しかけた経験もあります。だからこそ、自分がやらかした失敗をそのまま書いて、同じ回り道をしなくて済むように残しています。転職を考え始めた人が、条件で損をしないための材料にしてもらえたら嬉しいです。

目次