Bagaimana cara memeriksa Kecepatan Internet melalui Terminal?

468

Alih-alih pergi ke situs-situs seperti speedtest.net , saya ingin memeriksa kecepatan internet saya saat ini dari terminal di Ubuntu. Bagaimana saya bisa melakukannya?

kernel_panic
sumber
4
Hasil yang saya dapatkan dengan speedtest-cli jauh di bawah apa yang saya dapatkan dari speedtest.net speedtest-cli Unduh 18.27 Mbits / s Upload 3.43 Mbits / s speedtest.net Unduh 59.38 Mbits / s Upload 12.14 Mbits / s Saya tidak bisa anggap speedtest-cli dengan cara apa pun merupakan uji kecepatan jaringan yang valid.
2
@ user375058: speedtest-cliMenggunakan server yang sama (dll.) sebagai SpeedTest.net. Anda harus mempertimbangkan speedtest-clidan www.speedtest.netsetara, hanya dengan front-end yang berbeda. Saya akan terkejut jika Anda mendapatkan hasil yang sangat berbeda secara konsisten jika keduanya menggunakan server yang sama. Jika mereka tidak menggunakan server yang sama, maka Anda tidak memiliki dasar untuk perbandingan. Terakhir, hasil saya untuk kedua utilitas bervariasi dengan faktor 2-4 dari menjalankan ke menjalankan. Saya sarankan Anda menguji 2-4 server, dan melakukan 3-4 berjalan untuk setiap server dan membandingkan alat.
jvriesem
@ user375058: Saya sebenarnya baru saja melakukan apa yang saya sarankan. Lihat tautan dalam komentar saya di bawah untuk hasil saya.
jvriesem
1
sudo apt install speedtest-cli
ColdCold

Jawaban:

753

Saya merekomendasikan alat speedtest-cli untuk ini. Saya membuat posting blog ( Ukur Kecepatan Koneksi Internet dari Linux Command Line ) yang membahas tentang pengunduhan, pemasangan, dan penggunaannya.

Versi singkatnya adalah ini: (tidak diperlukan root)

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

Keluaran:

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

Pembaruan pada tahun 2018:

Menggunakan pip install --user speedtest-climemberi Anda versi yang mungkin lebih baru daripada yang tersedia dari repositori distribusi Anda.

Pembaruan di 2016:

speedtest-clisekarang berada di repositori Ubuntu. Untuk Ubuntu 16.04 (Xenial) dan kemudian digunakan:

sudo apt install speedtest-cli
speedtest-cli
mweisel
sumber
2
Ini sepertinya tidak berfungsi dengan baik. Saya memiliki BT infinity 50bBit turun dan 20Mbit ke atas. Tetapi hasilnya muncul sebagai 0,53Mbit turun dan 0,2Mbit naik. Hah? Penempatan desimal salah? menggunakan wget saya mendapatkan 4,27M / s (34Mbit) (beberapa server lain)?
Piotr Kula
34
Seperti yang telah dinyatakan di sini : Karena speedtest-cli adalah aplikasi python, lebih mudah untuk menginstal dengan melakukan: pip install speedtest-cli atau: easy_install speedtest-cli Tergantung pada bagaimana Python diinstal pada sistem Anda, Anda mungkin perlu root untuk melakukan hal di atas.
CrandellWS
1
Mengkonfirmasi bahwa speedtest-cli rusak . Tidak menunjukkan kecepatan di atas 1Mbps. Tidak mentransfer info apa pun ketika mengaku melakukannya.
int_ua
5
Ini seharusnya jawaban yang diterima ... speedtest-cli bekerja dengan baik untuk saya; pikir @int_ua memiliki masalah kompatibilitas atau masalah internet.
peelman
2
Ini harus menjadi jawaban yang tepat. Tes kecepatan berarti unduh DAN unggah. Jawaban pertama HANYA mengukur kecepatan unduhan, yang BUKAN gambaran lengkap dari kecepatan koneksi internet Anda. Terutama jika Anda hosting sesuatu di mesin itu!
Emil Borconi
92

coba ini di baris perintah

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

coba ini juga

sourceforge.net/projects/tespeed/

mendapatkannya dari tautan di atas

Tachyons
sumber
2
Bisakah Anda menjelaskan apa /dev/nullsingkatan?
gila tentang natty
12
Ini adalah file khusus yang hanya menghapus data yang ditulis untuknya,
Tachyons
2
Bagi saya di Ubuntu 14.10 dengan python 2.7.8 perintah wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zipbekerja jauh lebih baik daripada menggunakan speedtset-cliyang belakangan tampaknya membeku dan ^ C gagal menginterupsi perintah. Dengan wget, saya tidak punya masalah memotong unduhan dengan ^ C
Willoczy
1
@mlissner, sepertinya kecepatan pertama dalam megabit, kedua dalam megabita ..
vp_arth
1
@mlissner 1,5 x 8 = 12. satu kbps dan lainnya adalah KBps :-)
Tachyons
55

Jika Anda tidak bisa repot-repot memasang iperf, Anda bisa mendahului perintah yang menggeser jumlah data yang diketahui dengan timeperintah dan melakukan penjumlahan.

iperf sederhana dan mudah digunakan.

Membutuhkan klien dan server.

(di server)

 user@server$ iperf -s

(pada klien)

 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

Keterangan lebih lanjut

Satu Nol
sumber
7
+1 iperf luar biasa untuk memvalidasi kecepatan ethernet dan WIFI
kfmfe04
1
iperfbagus untuk LAN tetapi pengguna bertanya tentang WAN.
IMTheNachoMan
34

Yah saya gunakan wgetuntuk itu. Alat kecil itu memberi tahu saya dengan baik kecepatan apa yang saya miliki.

Untuk menggunakannya cukup arahkan ke file di internet yang relatif lebih besar sehingga Anda bisa mendapatkan perkiraan yang lebih baik.

Sebagai contoh

mengetik: wget http://hostve.com/neobuntu/pics/Ubu1.aviakan mulai mengunduh file Ubu1.avi dan menunjukkan pada kecepatan apa ia mengunduh.

masukkan deskripsi gambar di sini

Tentu ada beberapa rekomendasi:

  1. Uji kecepatan diri Anda dengan server yang bagus. Dalam kasus tautan saya, kecepatannya kurang dari 200KB jadi jika Anda memiliki kecepatan yang lebih tinggi, server akan menjadi penghambat bagi Anda, bukan kecepatan Anda yang sebenarnya.

  2. Kecepatan tertinggi yang akan Anda lihat adalah kecepatan maksimum yang koneksi Anda dan koneksi server dapat tawarkan. Jika koneksi Anda adalah 512KB dan tempat Anda mengunduh adalah 400KB, koneksi maks Anda akan menjadi 400KB karena itu adalah maks untuk server tempat Anda mengunduh.

  3. Anda harus melakukan tes setidaknya 5 kali untuk melakukan pemeriksaan kecepatan yang andal atau setidaknya melakukannya selama satu atau dua menit. Ini akan membantu Anda melakukan pemeriksaan yang lebih akurat.

  4. Anda harus memiliki setidaknya 4 atau 5 sumber pengujian yang berbeda untuk memiliki kecepatan yang lebih akurat. Jangan pernah menguji hanya dari situs yang sama karena ini dapat dipengaruhi oleh jarak Anda ke sana, masalah di server dan koneksi ke sana, dll. Selalu uji dari server yang berbeda.

ARIA2

Ini adalah alternatif untuk wget. Kelemahan dari wgetini adalah kurangnya koneksi paralel. Untuk menggunakan aria2, kita perlu mengunduhnya:

   sudo apt-get install aria2

Untuk menggunakannya sederhana:

masukkan deskripsi gambar di sini

Pada gambar, -x 4 adalah berapa banyak koneksi paralel yang ingin kita gunakan. Parameter CN di baris berikutnya menunjukkan berapa banyak koneksi paralel aktif diizinkan untuk diunduh dari situs itu. Dalam hal ini CN adalah 4. Tetapi jika kami mencoba memiliki lebih banyak koneksi, kami akan mendapatkan sesuatu seperti ini:

masukkan deskripsi gambar di sini

Kami menetapkan 8 koneksi paralel tetapi situs hanya mengizinkan maksimum 5 seperti yang ditunjukkan oleh CN: 5. Ini bisa diselesaikan dengan opsi -j yang memberitahu aria2c koneksi konkursi maksimum yang kita inginkan (yang secara default adalah 5) tetapi jika server telah membatasi ini, -j tidak akan berfungsi.

Luis Alvarado
sumber
1
wget tidak (belum) dapat melakukan unduhan tersegmentasi, yaitu mengunduh satu file menggunakan beberapa koneksi (paralel), jadi jika ISP Anda membatasi kecepatan per 1 koneksi, Anda tidak akan mendapatkan hasil yang akurat ... itu akan menjadi tes yang lebih tepat untuk menggunakan beberapa alat lain, yang setidaknya dapat menggunakan unduhan tersegmentasi (seperti aria2)
Mladen B.
3
Ini BUKAN speedtest, ini hanya tes kecepatan UNDUH! Tes kecepatan internet berarti down & up load! Jawaban kedua, dan semua yang lain yang menyebutkan speedtest-cli memiliki pendekatan yang benar.
Emil Borconi
1
@ EmilBorconi Anda benar tetapi dalam kehidupan nyata, kami tidak melakukan pembandingan kecepatan Internet di sini, ini hanya tes kecepatan rata-rata saat ini dari pengguna rumahan tanpa memerlukan situs seperti speedtest. Kecepatan unduhan (Yang cukup bagi siapa pun yang mencoba melihat apakah mereka mengalami hambatan) adalah tes yang cukup baik. Tes kecepatan penuh turun / naik akan memeriksa lingkup penuh kecepatan Anda berdasarkan ISP Anda. Jadi ya itu akan menjadi solusi terbaik, tetapi untuk skenario pengujian cepat, bahkan wget sederhana akan melakukan trik karena biasanya orang lebih khawatir tentang kecepatan unduhan daripada mengunggah.
Luis Alvarado
1
@LuisAlvarado maaf jika saya terdengar kasar, hanya saya pikir orang harus dapat sepenuhnya memahami apa yang mereka tanyakan / dan apa jawaban yang diterima. Banyak pemula akan melihat forum dan mereka akan menganggap / memilih / berhenti pada jawaban yang diterima, dan mereka membentuk gambar palsu di milik mereka. Dan ya, pengunduhan lebih penting daripada mengunggah kecuali jika Anda adalah seorang maniak facebook yang memposting selfie setiap 5 menit, kemudian mulai bertengkar dengan Anda ISP hanya karena Anda menguji unduhan yang bagus, tetapi Anda memiliki unggahan yang jelek ... Sekali lagi maaf jika nada
bicara
1
Saya suka wgetlebih baik daripada curlini karena wgetmenampilkan MB/s(sangat jelas itu adalah MBytes / s), sedangkan curlhanya menampilkan k(tidak terlalu jelas bahwa itu adalah KBytes / s).
wisbucky
19

Karena speedtest-cli adalah aplikasi python, jauh lebih mudah untuk menginstal dengan melakukan:

pip install speedtest-cli

atau:

easy_install speedtest-cli

Bergantung pada bagaimana Python diinstal pada sistem Anda, Anda mungkin perlu root untuk melakukan hal di atas.

BobC
sumber
7

Saya kebetulan menyukai speedometercli Ubuntu.

speedometer -r eth0

Untuk menonton grafik langsung dari kecepatan data yang masuk.

6ft Dan
sumber
Itulah sebenarnya yang saya cari untuk sementara waktu! Terima kasih! tapi saya tidak suka itu menunjukkan kecepatan dalam Kib dan bukan Kb atau KB
redbeam_
3

Jalankan beberapa instance wget dengan perintah timeout pada file besar:

#!/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 &

Dan kemudian menulis skrip untuk menghitung total byte yang diunduh dan bagi 5 detik Anda akan mendapatkan angka byte / detik. Seharusnya cukup akurat dan Anda dapat menambahkan lebih banyak instance untuk memaksimalkan bandwidth Anda.

Saya belum menguji skrip lengkap tetapi perintah baris tunggal "timeout 5 wget url" berfungsi, dan Anda mendapatkan sebagian file yang diunduh sebagai hasilnya (jika 5 detik tidak cukup untuk menyelesaikan unduhan).

rexis
sumber
Ini membutuhkan beberapa server yang diatur ...
Braiam
url_1,2,3,4 dapat berupa apa saja, seperti server publik.
rexis
misalnya timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5seckemudian menganalisis filesize dan bagi dengan 5: expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024di kbit / s
rubo77
3

Anda dapat menggunakan tespeed. ini adalah tes kecepatan jaringan Terminal yang menggunakan server dari Speedtest.net. Ini menggunakan server uji terdekat tetapi juga dapat menggunakan satu yang ditentukan secara manual oleh pengguna.

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

masukkan deskripsi gambar di sini

untuk info lebih lanjut gunakan:

 ./tespeed.py  -h

itu akan memberikan lebih banyak pilihan untuk tes kecepatan.

pl_rock
sumber
Catatan: membutuhkanlxml
Matt
2

one-liner sederhana yang menguji berapa lama untuk mengunduh 100MB (berfungsi /bin/shjuga):

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

penjelasan:

  1. simpan stempel waktu dalam $ t
  2. unduh 100MB tetapi jangan menyimpan apa pun
  3. menghitung 8 * 100mb / $t
rubo77
sumber
Ini bekerja sangat baik karena saya menguji dari rootFS read-only stateless dan wgettidak menghasilkan kecepatan.
Josh Habdas
2

Skrip bash sederhana berdasarkan jawaban @rexis. Anda dapat menempatkan tautan Anda sendiri untuk pengujian dalam linkslarik atau membacanya dari file

#!/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
Sisi gelap
sumber
satu minus - bagaimana kalau saya menggunakan bahasa lain sebagai bahasa Inggris? lihat: grep :) part
ceph3us
1

Untuk mendapatkan kecepatan unduh saya dengan mudah dalam bits-per-second, saya mendefinisikan yang berikut dalam file $ HOME / .bash_aliases saya:

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

dimana:

--output-document=/dev/null secara efektif membuang output wget

--report-speed=bits menampilkan rata-rata kecepatan unduhan wget dalam bits-per-second (bps) dan bukannya bytes-per-second (Bps)

trellem
sumber
0

Saya menginginkan sesuatu yang lebih maju daripada speedtest.net dan berbagai solusi yang hanya mengandalkan satu situs web. Jadi saya melakukan hal yang biasa saya lakukan dan menulis solusi sendiri:

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

Dari daftar fitur:

  • Pengujian kecepatan SSH / SFTP (port 22).
  • Port TCP umum 80, 443, dan 8080 serta pengujian kecepatan port acak TCP menggunakan server TCP / IP khusus yang mendukung kecepatan hingga 2,2 Gbps turun dan 780 Mbps naik.
  • Pengujian latensi jaringan yang cukup mendasar.
  • Putar tetesan Laut Digital dan uji kecepatan SSH / SFTP dan berbagai port TCP.
  • Speedtest.net dan pengujian kecepatan kustom OoklaServer. Menghasilkan hasil yang serupa dengan tes koneksi tunggal di single.speedtest.net.
  • Output JSON murni dalam mode senyap (-s).

Ini solusi yang lebih umum yang dapat dikonsumsi oleh aplikasi lain. Saya berhasil menunjukkan dengan tepat masalah jaringan ISP yang mengakibatkan menggandakan kecepatan downstream SFTP saya, yang menghasilkan peningkatan kebahagiaan.

CubicleSoft
sumber