One IT Thing

IT業界を楽しむ為の学習系雑記

network

Linux、Mac、Windows間のネットワーク速度をiperf3で調べる

投稿日:2019年8月5日 更新日:

  • なんかネットワークが遅いから調べたい。
  • あのLANケーブルひょっとして100Mbps用じゃない?1Gbpsじゃないかも。
  • 試験的にネットワーク帯域を絞ったから通信速度を確認したい。

こういった時、通信する両端末にiperf3をインストールすると簡単に通信速度が分かるようになります。

iperf3を使ったネットワーク速度計測

iperfサーバとiperfクライアントで通信を行い速度を計測、表示してくれます。

iperfは3になった時に下位互換がなくなり、明確にiperf3というコマンドになりました。iperf2サーバにiperf3クライアントで接続したり、その逆をすることは出来ないのでiperf3で揃えます。

今回は以下のようにCentOSに立てたiperf3サーバに、Mac、Windowsのiperf3クライアントから接続します。

-c、-sを切り替えればクライアント、サーバの変更が出来ます。

CentOSにiperf3インストール、サーバモードで起動

yumでインストールした後、5201ポートを開放。
(iperf2までは5001ポート使用でしたがiperf3では5201ポートに変更されています)

# yum install iperf3

# firewall-cmd --zone=public --add-port=5201/tcp --permanent
success

# firewall-cmd --reload
success

iperf3をサーバモードで起動。クライアントが接続してくるまで待機状態になります。

# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

Windowsにiperf3インストール、クライアントモードで起動

iperf公式サイトからWindows用zipファイル(iperf-3.1.3-win64.zip)をダウンロード。
https://iperf.fr/iperf-download.php

解凍して適当なディレクトリに配置したらコマンドプロンプトを開き、クライアントモードで起動してサーバに接続します。

C:\tmp\iperf-3.1.3-win64>iperf3 -c 192.168.0.4
Connecting to host 192.168.0.4, port 5201
[  4] local 192.168.0.5 port 55199 connected to 192.168.0.4 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   106 MBytes   891 Mbits/sec
[  4]   1.00-2.00   sec   112 MBytes   936 Mbits/sec
[  4]   2.00-3.00   sec   111 MBytes   931 Mbits/sec
[  4]   3.00-4.00   sec   112 MBytes   940 Mbits/sec
[  4]   4.00-5.00   sec   112 MBytes   942 Mbits/sec
[  4]   5.00-6.00   sec   111 MBytes   935 Mbits/sec
[  4]   6.00-7.00   sec   113 MBytes   944 Mbits/sec
[  4]   7.00-8.00   sec   112 MBytes   943 Mbits/sec
[  4]   8.00-9.00   sec   112 MBytes   937 Mbits/sec
[  4]   9.00-10.00  sec   113 MBytes   944 Mbits/sec
[  4]  10.00-10.05  sec  5.38 MBytes   927 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.05  sec  0.00 Bytes  0.00 bits/sec                  sender
[  4]   0.00-10.05  sec  1.09 GBytes   934 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

秒間100Mバイト転送出来ているので1Gbps出ていることが確認できます。

MacOS Xにiperf3インストール、クライアントモードで起動

HomeBrewで入れる方法があるのでそちらを使います。
http://macappstore.org/iperf3/

brewコマンドが必要なのでwhich brewして出てこない場合は入れておきましょう。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

brewでiperf3をインストール。

brew install iperf3

iperf3サーバに接続。古めのWiFiルータなので100Mbpsでした。

$ iperf3 -c 192.168.0.4

Connecting to host 192.168.0.4, port 5201
[  5] local 192.168.0.203 port 60217 connected to 192.168.0.4 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  11.9 MBytes  99.4 Mbits/sec
[  5]   1.00-2.00   sec  11.9 MBytes  99.9 Mbits/sec
[  5]   2.00-3.00   sec  11.8 MBytes  99.0 Mbits/sec
[  5]   3.00-4.00   sec  12.0 MBytes   101 Mbits/sec
[  5]   4.00-5.00   sec  10.5 MBytes  87.7 Mbits/sec
[  5]   5.00-6.00   sec  12.2 MBytes   102 Mbits/sec
[  5]   6.00-7.00   sec  11.3 MBytes  94.6 Mbits/sec
[  5]   7.00-8.00   sec  11.3 MBytes  95.0 Mbits/sec
[  5]   8.00-9.00   sec  12.0 MBytes   100 Mbits/sec
[  5]   9.00-10.00  sec  11.9 MBytes  99.3 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   117 MBytes  97.8 Mbits/sec                  sender
[  5]   0.00-10.00  sec   117 MBytes  97.8 Mbits/sec                  receiver

iperf Done.

まとめ

2000年代初頭くらいまでは、全国に散らばるシステムだと「あの拠点はISDNで128Kbpsしか出ないからシミュレーションしておかないと」とか結構あるあるなニーズでした。

tc qdiscで帯域を絞ってiperf3で確認して疑似環境を作り、開発システムを結合テストしてみるとか。そもそも回線速度上げればいいのに、と思ったもんです。

今後1Gbpsが遅いと言われる時代になっても障害原因追及には使えるので覚えておきたいですね。

-network
-

執筆者:

関連記事

SSHトンネルを使ってリモートデータベースをBI

クラウド上のDBを分析する為、ローカルPCにSSHトンネル(ポートフォワード)環境を作ります。 リモートDBポートにクラウド外からセキュアに接続できれば、クラウドにBIツールを入れる手間が省けます。 …

LANに接続しているPCをWindowsから見つける

家庭内LANでNASのIPアドレスを忘れたので調べたい職場LANに接続中のホストを調べたい NetEnumを入れられれば取れる情報も多く、ポートスキャンやパケットキャプチャも出来て幸せになれます。 単 …

インターネット速度テストサービス10個を順位づけしてみる

「インターネット疎通の速度が帯域通りになっているか確かめたい」 仕事でもプライベートでもそんなニーズがあります。 数多あるインターネット速度計測サービスを試してみて「日本国内で使う場合、最も正確な速度 …

whoisコマンドで新興TLDのドメイン創設日を調べる

各ドメインの情報は属するトップレベルドメイン(.jpなど)が管理するDNSサーバによって管理されています。この情報を辿って指定したドメインの情報を参照する仕組みが「whois」です。 最近は各トップレ …

グローバルIP確認をコマンド化

「Dynamic DNSサービスで定期的にDNS更新をしなきゃいけないけど、固定IPじゃないから変わった時に一々調べるのが煩わしい」 手で調べるのは面倒くさいです。停電なんかでONUが再起動してIPが …


shingo nakanishi。東京で消耗中の職歴20年越え中年ITエンジニアです。「生涯現役プログラマを楽しむ」ことができる働き方探しをライフワークにしています。

19歳(1996年)から書き始めた個人日記が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。