speedtest.net のようなサイトに行く代わりに、Ubuntuのターミナルから現在のインターネット速度を確認したい。どうすればいいですか?
これには 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
pip install --user speedtest-cli
を使用すると、おそらくディストリビューションのリポジトリから利用可能なバージョンよりも新しいバージョンが取得されます。
speedtest-cli
は現在Ubuntuリポジトリにあります。 Ubuntu 16.04(Xenial)以降の場合:
Sudo apt install speedtest-cli
speedtest-cli
コマンドラインでこれを試してください
wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.Zip
これも試してください
sourceforge.net/projects/tespeed/
上記のリンクから入手した
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
wget
を使用します。その小さなツールは私が持っている速度をうまく教えてくれます。
これを使用するには、インターネット上の比較的大きなファイルをポイントするだけで、より適切な推定値を取得できます。
例えば
次のように入力すると、wget http://hostve.com/neobuntu/pics/Ubu1.avi
はUbu1.aviファイルのダウンロードを開始し、ダウンロード速度を表示します。
もちろん、いくつかの推奨事項があります。
優れたサーバーを使用して速度テストを行ってください。私のリンクの場合、速度は200KB未満であるため、速度が速い場合は、実際の速度ではなくサーバーがボトルネックになります。
表示される最高速度は、接続とサーバーの接続が提供できる最高速度です。接続が512KBで、ダウンロードする場所が400KBの場合、ダウンロード元のサーバーの最大接続であるため、最大接続は400KBになります。
信頼性の高い速度チェックを行うには、少なくとも5回テストを行うか、少なくとも1〜2分間テストを行う必要があります。これにより、より正確なチェックが可能になります。
より正確な速度を得るには、少なくとも4つまたは5つの異なるテストソースが必要です。同じサイトからのみテストしないでください。これは、距離、サーバーの問題、サーバーへの接続などの影響を受ける可能性があるためです。常に異なるサーバーからテストしてください。
ARIA2
これはwget
の代替です。 wget
の欠点は、並列接続がないことです。 aria2を使用するには、まずダウンロードする必要があります:
Sudo apt-get install aria2
使い方は簡単です:
イメージでは、--x 4は、使用する並列接続の数です。次の行のCNパラメーターは、そのサイトからダウンロードできるアクティブな並列接続の数を示しています。この場合、CNは4です。しかし、さらに接続しようとすると、次のような結果になります。
8つの並列接続を設定しましたが、CN:5に示されているように、サイトでは最大5つしか許可されていません。これは-jオプションで解決できます。これはaria2cに必要な最大同時接続数を通知します(デフォルトでは5)が、サーバーがこれを制限している場合、-jは機能しません。
Speedtest-cliはpythonアプリケーションであるため、以下を実行するとインストールがはるかに簡単になります。
pip install speedtest-cli
または:
easy_install speedtest-cli
システムへのPythonのインストール方法によっては、上記を実行するにはrootになる必要があります。
私はspeedometer
Ubuntu cliが好きです。
speedometer -r eth0
着信データ速度のライブグラフを見るため。
大きなファイルで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行のコマンド「timeout 5 wget url」が機能し、結果として部分的にダウンロードされたファイルを取得します(5秒ではダウンロードを完了できない場合)。
@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
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)ではなく、wgetのダウンロード速度の平均を1秒あたりのビット数(bps)で表示します
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))
説明:
8 * 100mb / $t
を計算しますhttp://dl.getipaddr.net を試すこともできます
Curl(よく知られているコマンドラインユーティリティ)を使用して速度テストを実行します。
要するに
wget https://raw.github.com/blackdotsh/curl-speedtest/master/speedtest.sh && chmod u + x speedtest.sh && bash speedtest.sh
私は、speedtest.netや単一のWebサイトのみに依存するさまざまなソリューションよりも高度なものが必要でした。だから私は普段やっていることをして、自分の解決策を書いた。
https://github.com/cubiclesoft/network-speedtest-cli
機能リストから:
他のアプリケーションで使用できる、より一般的なソリューションです。 ISPネットワークの問題を特定して、SFTPのダウンストリーム速度を2倍にし、幸福感を高めました。