ターミナル経由でインターネット速度を確認する方法は?


467

speedtest.netのようなサイトに行く代わりに、Ubuntuのターミナルから現在のインターネット速度を確認したいと思います。どうすればいいですか?


4
speedtest-cliで得られる結果は、speedtest.netから得られるものよりもはるかに速いです。speedtest-cliダウンロード18.27 Mbits / sアップロード3.43 Mbits / s speedtest.netダウンロード59.38 Mbits / sアップロード12.14 Mbits / s speedtest-cliは、ネットワーク速度の有効なテストであると考えてください。

2
@ user375058:speedtest-cliは、SpeedTest.net と同じサーバー(など)を使用します。とはspeedtest-cliwww.speedtest.netフロントエンドが異なるだけで同等であると考える必要があります。両方が同じサーバーを使用している場合に、大幅に異なる結果が一貫して得られる場合、私は驚かれることでしょう。同じサーバーを使用していない場合は、比較の根拠がありません。最後に、両方のユーティリティの結果は、実行ごとに2〜4倍異なります。2〜4台のサーバーをテストし、各サーバーで3〜4回実行してツールを比較することをお勧めします。
jvriesem

@ user375058:私は実際にちょうど私が提案したことをした。結果については、以下のコメントのリンクを参照してください。
jvriesem

1
sudo apt install speedtest-cli
ColdCold

回答:


753

これにはspeedtest-cliツールをお勧めします。ダウンロード、インストール、使用の詳細を説明するブログ記事(Linuxコマンドラインからインターネット接続速度を測定する)を作成しました。

短いバージョンはこれです:(ルートは必要ありません)

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

出力:

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Comcast Cable (x.x.x.x)...
Selecting best server based on ping...
Hosted by FiberCloud, Inc (Seattle, WA) [12.03 km]: 44.028 ms
Testing download speed........................................
Download: 32.29 Mbit/s
Testing upload speed..................................................
Upload: 5.18 Mbit/s

2018年の更新:

を使用pip install --user speedtest-cliすると、ディストリビューションのリポジトリから入手可能なバージョンよりもおそらく新しいバージョンが取得されます。

2016年の更新:

speedtest-cli現在Ubuntuリポジトリにあります。Ubuntu 16.04(Xenial)以降の場合:

sudo apt install speedtest-cli
speedtest-cli

2
これは適切に機能していないようです。BT無限大が50bBitダウン、20Mbitがアップしています。ただし、結果は0.53Mbitダウンおよび0.2Mbitアップとして表示されます。え?小数点の位置が間違っていますか?wgetを使用すると、4.27M / s(34Mbit)になります(他のサーバーもあります)?
ピョートルクラ

34
ここで既に述べたように:speedtest-cliはpythonアプリケーションなので、以下を実行することでインストールがはるかに簡単になります: pip install speedtest-cli または: easy_install speedtest-cli システムへのPythonのインストール方法によっては、上記を行うにはrootになる必要があります。
CrandellWS 14

1
speedtest-cliが壊れていることを確認します。1Mbpsを超える速度は表示されません。申し立てを行うときに情報を転送しません。
int_ua 14

5
これは本当に受け入れられる答えであるはずです... speedtest-cliは私のためにうまく機能しています。@int_uaには互換性の問題またはインターネットの問題があったと思います。
ピールマン14年

2
これは正しい答えです。速度テストとは、ダウンロードとアップロードを意味します。最初の回答はダウンロード速度のみを測定するもので、インターネット接続速度の全体像ではありません。そのマシンで何かをホストしている場合は特に!
エミールボルコーニ

92

コマンドラインでこれを試してください

wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip

これも試してください

sourceforge.net/projects/tespeed/

上記のリンクから入手した


2
何の/dev/null略ですか?
ナッツについてのナッツ

12
それは、単に削除データが書き込まspeacialファイルをある
タキオン

2
Ubuntu 14.10でpython 2.7.8 wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zipを使用speedtset-cliしている私にとって、コマンドは、後者を使用するよりもはるかにうまく機能し、^ Cはコマンドの中断に失敗します。wgetので、私は^ Cでダウンロードshrot切断は問題ありません
Willoczy

1
@mlissner、最初の速度はメガビット、2番目はメガバイトのように見えます
。– vp_arth

1
@mlissner 1.5 x 8 = 12。1つはkbps、もう1つはKBpsです:
タキオン

55

iperfをインストールする手間がかからない場合は、既知のデータ量をシフトするコマンドの前にtimeコマンドを実行し、合計を実行できます。

iperfはシンプルで使いやすいです。

クライアントとサーバーが必要です。

(サーバー上)

 user@server$ iperf -s

(クライアント上)

 user@client$ iperf -c server.domain
 ------------------------------------------------------------
 Client connecting to 192.168.1.1, TCP port 5001
 TCP window size: 16.0 KByte (default)
 ------------------------------------------------------------
 [  3] local 192.168.1.3 port 52143 connected with 192.168.1.1 port 5001
 [ ID] Interval       Transfer     Bandwidth
 [  3]  0.0-10.0 sec    113 MBytes  94.7 Mbits/sec

詳細


7
+1 iperfは、イーサネットとWIFIの速度を検証するために素晴らしいです
kfmfe04

1
iperfLANには最適ですが、ユーザーはWANについて質問しています。
IMTheNachoMan

34

まあ私wgetはそれを使用します。その小さなツールは、私が持っている速度をうまく教えてくれます。

それを使用するには、インターネット上の比較的大きなファイルをポイントするだけで、より適切な推定値を取得できます。

例えば

入力:wget http://hostve.com/neobuntu/pics/Ubu1.aviUbu1.aviファイルのダウンロードを開始し、ダウンロード速度を表示します。

ここに画像の説明を入力してください

もちろん、いくつかの推奨事項があります。

  1. 優れたサーバーを使用して速度テストを行ってください。私のリンクの場合、速度は200KB未満であるため、速度が速い場合、実際の速度ではなくサーバーがボトルネックになります。

  2. 表示される最高速度は、接続とサーバーの接続が提供できる最高速度です。接続が512KBで、ダウンロードする場所が400KBの場合、ダウンロード元のサーバーの最大接続であるため、最大接続は400KBになります。

  3. 信頼性の高い速度チェックを行うには、少なくとも5回テストを行うか、少なくとも1〜2分間テストを行う必要があります。これにより、より正確なチェックが可能になります。

  4. より正確な速度を得るには、少なくとも4つまたは5つの異なるテストソースが必要です。同じサイトからのみテストしないでください。これは、それまでの距離、サーバーの問題、サーバーへの接続などの影響を受ける可能性があるためです。常に異なるサーバーからテストしてください。

ARIA2

これはの代替wgetです。欠点wgetは、並列接続がないことです。aria2を使用するには、まずダウンロードする必要があります:

   sudo apt-get install aria2

使い方は簡単です:

ここに画像の説明を入力してください

イメージでは、-x 4は使用する並列接続の数です。次の行のCNパラメーターは、そのサイトからダウンロードできるアクティブな並列接続の数を示しています。この場合、CNは4です。しかし、さらに接続しようとすると、次のような結果になります。

ここに画像の説明を入力してください

8つの並列接続を設定しましたが、CN:5で示されているように、サイトでは最大5つしか許可されていません。これは、aria2cに必要な最大同時接続数(デフォルトでは5)を伝える-jオプションによって解決できますが、サーバーがこれを制限している場合、-jは機能しません。


1
wgetは(まだ)セグメント化されたダウンロードを行うことができません。つまり、複数の(並列)接続を使用して単一のファイルをダウンロードするため、ISPが1接続あたりの速度を制限している場合、正確な結果は得られません...少なくともセグメント化されたダウンロード(aria2など)を使用できる他のツールを使用するためのより正確なテストになります
Mladen B.

3
これは速度テストではなく、ダウンロード速度テストのみです!インターネット速度テストは、ダウンロードとアップロードを意味します!2番目の回答、およびspeedtest-cliに言及している他のすべての回答には正しいアプローチがあります。
エミールボルコーニ

1
@EmilBorconiあなたは正しいですが、実際には、ここではインターネット速度のベンチマークを行っていません。これは、speedtestのようなサイトを必要としないホームユーザーの現在の平均速度テストです。ダウンロード速度(ボトルネックになっているかどうかを確認しようとする人には十分です)は十分なテストです。フルダウン/アップスピードテストでは、ISPに基づいてスピードの全範囲が何であるかをチェックします。ええ、それが最良の解決策でしょう。しかし、どんな速いテストシナリオでも、普通は人々がアップロードよりもダウンロード速度を心配するので、単純なwgetでさえトリックをするでしょう。
ルイスアルバラード

1
@LuisAlvarado失礼だとすれば申し訳ありませんが、人々は彼らが何を求めているのか、そして受け入れられる答えは何なのかを完全に理解できるはずだと思います。多くの初心者はフォーラムを見て、受け入れられた答えを仮定/選択/停止し、彼らの中で虚偽のイメージを形成します。そして、はいダウンロードはより重要です。5分ごとに自分撮りを投稿するFacebookマニアでない限りアップロードし、ダウンロードをテストしたという理由だけでISPとの戦いを開始します。私のトーンが失礼だった場合、...侮辱したくなかった
エミールBorconi

1
私は好きwgetよりも優れてcurlいるため、このためのwgetディスプレイMB/sのに対し、(非常に明確なことは、メガバイト/秒である)curlだけが表示さk(それはKバイト/秒であることは非常に明白ではありません)。
ウィスバッキー

19

speedtest-cliはpythonアプリケーションであるため、以下を実行することでインストールがはるかに簡単になります。

pip install speedtest-cli

または:

easy_install speedtest-cli

システムへのPythonのインストール方法によっては、上記を実行するにはrootになる必要があります。


7

私はたまたまspeedometerUbuntu cli が好きです。

speedometer -r eth0

着信データ速度のライブグラフを見るため。


それは実際に私がしばらく探していたものです!ありがとう!しかし、KbやKBではなく、Kibで速度を表示するのは好きではありません
-redbeam_

3

大きなファイルでtimeoutコマンドを使用してwgetのいくつかのインスタンスを実行します。

#!/bin/bash

timeout 5 wget -q url_1/100MB.zip &
timeout 5 wget -q url_2/file.zip &
timeout 5 wget -q url_3/sample.mov &
timeout 5 wget -q url_4/speech.mp4 &

次に、ダウンロードした合計バイト数を計算し、5秒に分割するスクリプトを作成して、1秒あたりのバイト数を取得します。非常に正確でなければならず、帯域幅を最大化するためにインスタンスを追加できます。

私はまだ完全なスクリプトをテストしていませんが、1行のコマンド「timeout 5 wget url」が機能し、結果として部分的にダウンロードされたファイルを取得します(5秒ではダウンロードを完了できない場合)。


これは...セットアップ一部のサーバーで必要となる
Braiam

url_1,2,3,4は、パブリックサーバーなど、何でもかまいません。
レクシス

たとえばtimeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5sec、ファイルサイズを分析し、5でexpr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024
割り

3

を使用できますtespeed。からのサーバーを使用するターミナルネットワーク速度テストですSpeedtest.net。最も近いテストサーバーを使用しますが、ユーザーが手動で指定したサーバーも使用できます。

 git clone git://github.com/Janhouse/tespeed.git
 cd tespeed
 git submodule init
 git submodule update
 ./tespeed.py 

ここに画像の説明を入力してください

詳細情報の使用:

 ./tespeed.py  -h

速度テストのオプションが増えます。


注:lxml
マット、

2

100MBのダウンロードにかかる時間をテストするシンプルなワンライナー(機能し/bin/shます):

t=$(date +"%s"); wget http://speedtest.tele2.net/100MB.zip -O ->/dev/null ; echo -n "MBit/s: "; expr 8 \* 100 / $(($(date +"%s")-$t))

説明:

  1. タイムスタンプを$ tに保存します
  2. 100MBをダウンロードするが、何も保存しない
  3. 計算する 8 * 100mb / $t

これは、ステートレスの読み取り専用rootFSからテストしてwgetおり、速度を出力していなかったため、うまく機能しました。
ジョシュハブダス

2

@rexis回答に基づくシンプルなbashスクリプト。テスト用の独自のリンクをlinks配列に入れるか、ファイルから読み取ることができます

#!/bin/bash
export LC_ALL=C  #make output in English eg for later use with "du | grep"

TMP_PATH=/tmp/speedtest_data/
TEST_TIME=5

rm -rf $TMP_PATH && mkdir $TMP_PATH

links=("http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-2b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1c.bin" "http://ftp.ntua.gr/pub/linux/ubuntu-releases-dvd/quantal/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.funet.fi/pub/Linux/INSTALL/Ubuntu/dvd-releases/releases/12.10/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/13.2/iso/openSUSE-13.2-DVD-x86_64.iso")

echo "Testing download"

for link in ${links[*]}
do
    timeout $TEST_TIME wget -q -P $TMP_PATH $link &
done

wait

total_bytes=$(du -c -b $TMP_PATH | grep total | awk '{print $1}')

echo "Cleaning up"
rm -rf $TMP_PATH

speed=$(echo "scale=2; $total_bytes / $TEST_TIME / 128" |bc)

echo "Speed is $speed Mbit/s"

exit 0

マイナスマイナス-英語として他の言語を使用する場合はどうですか?参照:grep :)パート
ceph3us

1

1秒あたりのビット数でダウンロード速度を簡単に取得するために、$ HOME / .bash_aliasesファイルで以下を定義します。

speed-test='wget --output-document=/dev/null --report-speed=bits http://speedtest.wdc01.softlayer.com/downloads/test500.zip'

どこ:

--output-document=/dev/null 実質的にwget出力を破棄します

--report-speed=bits デフォルトの1秒あたりのバイト数(Bps)の代わりに、1秒あたりのビット数(bps)でwgetダウンロード速度の平均を表示します



0

私は、speedtest.netや単一のWebサイトのみに依存するさまざまなソリューションよりも高度なものが必要でした。だから私は普段やっていることをして、自分の解決策を書いた。

https://github.com/cubiclesoft/network-speedtest-cli

機能リストから:

  • SSH / SFTP(ポート22)速度テスト。
  • 一般的なTCPポート80、443、8080、および最大2.2 Gbpsの速度と780 Mbpsの速度をサポートするカスタムTCP / IPサーバーを使用したランダムTCPポート速度テスト。
  • かなり基本的なネットワーク遅延テスト。
  • Digital Oceanドロップレットをスピンアップし、SSH / SFTPおよびさまざまなTCPポートの速度をテストします。
  • Speedtest.netおよびカスタムOoklaServer速度テスト。single.speedtest.netでの単一接続テストと同様の結果を生成します。
  • サイレントモードでの純粋なJSON出力(-s)。

他のアプリケーションで使用できる、より一般的なソリューションです。ISPネットワークの問題を特定して、SFTPのダウンストリーム速度を2倍にし、幸福感を高めました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.