Terminal üzerinden İnternet Hızı nasıl kontrol edilir?


467

Speedtest.net gibi sitelere gitmek yerine, mevcut internet hızımı Ubuntu'daki terminalden kontrol etmek istiyorum. Nasıl yapabilirim?


4
Speedtest-cli ile elde ettiğim sonuçlar speedtest.net'ten elde ettiğim sonuçların büyük bölümü altındaydı speedtest-cli İndir 18.27 Mbits / s Yükle 3.43 Mbits / s speedtest.net İndir 59.38 Mbits / s Yükle 12.14 Mbits / s Yapamam speedtest-cli'yi herhangi bir şekilde geçerli bir ağ hızı testi olarak düşünün.

2
@ user375058: speedtest-cliSpeedTest.net ile aynı sunucuları (vb.) kullanır. Sadece farklı bir ön uçla, speedtest-clive www.speedtest.neteşdeğer olmayı düşünmelisiniz . Eğer alırsanız sürpriz olacaktı belirgin ikisi de aynı sunucuyu kullanıyorsanız sürekli farklı sonuçlar. Aynı sunucuyu kullanmıyorlarsa, karşılaştırmaya gerek yok. Son olarak, her iki yardımcı program için sonuçlarım, çalıştırmadan çalıştırmaya kadar 2-4 arasında değişir. 2-4 sunucuyu test etmenizi ve her sunucu için 3-4 çalıştırma gerçekleştirmenizi ve araçları karşılaştırmanızı öneririm.
jvriesem

@ user375058: Aslında önerdiğim şeyi yaptım. Sonuçlarım için aşağıdaki yorumumdaki bağlantıya bakınız.
jvriesem

1
sudo apt yüklemek speedtest-cli
ColdCold

Yanıtlar:


753

Bunun için speedtest-cli aracını öneririm . İndirme, yükleme ve kullanma ayrıntılarını içeren bir blog yazısı ( Linux Komut Satırından İnternet Bağlantı Hızını Ölçün ) oluşturdum.

Kısa versiyon şudur: (root gerekmez)

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

Çıktı:

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’deki güncelleme:

Kullanmak pip install --user speedtest-cli, dağıtımınızın depolarında bulunanlardan muhtemelen daha yeni bir sürüm alır.

2016 yılında güncelleme:

speedtest-clişimdi Ubuntu depolarında. Ubuntu 16.04 (Xenial) ve sonrası için:

sudo apt install speedtest-cli
speedtest-cli

2
Bu düzgün çalışmıyor gibi görünüyor. BT sonsuz 50bBit aşağı ve 20Mbit yukarı var. Ancak sonuçlar 0,53Mbit düşüş ve 0,2Mbit artış gösteriyor. Ha? Yanlış ondalık yerleştirme? wget kullanarak 4.27M / s (34Mbit) (başka bir sunucu olsa) alabilir miyim?
Piotr Kula

34
Zaten belirtildiği gibi burada : SpeedTest-cli bir piton uygulama olduğundan, yaparak yüklemek çok daha kolaydır pip install speedtest-cli ya: easy_install speedtest-cli Python sisteminizde yüklü şekline bağlı olarak, yukarıda yapmak için root olmak gerekebilir.
CrandellWS

1
Doğrulayan SpeedTest-cli bozuldu . 1 Mbps'nin üzerindeki hızları göstermez. Bunu talep ederken hiçbir bilgiyi aktarmaz.
int_ua

5
Bu gerçekten kabul edilmiş bir cevap olmalı ... speedtest-cli benim için iyi çalışıyor; @int_ua'nın uyumluluk problemleri veya internet problemleri olduğunu düşünüyorum.
Peelman

2
Bu doğru cevap olmalı. Hız testi, indirme VE yükleme anlamına gelir. İlk cevap, SADECE internet bağlantı hızınızın tam bir resmi olmayan, indirme hızını ölçer. Özellikle de o makinede bir şey barındırıyorsanız!
Emil Borconi,

92

bunu komut satırında deneyin

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

bunu da dene

sourceforge.net/projects/tespeed/

Yukarıdaki linkten aldım


2
Bunun ne anlama geldiğini açıklayabilir misiniz /dev/null?
natty hakkında

12
Sadece üzerine yazılan verileri silmek için kullanılan özel bir dosyadır,
Tachyons

2
Benim için Ubuntu 14.10'da python 2.7.8 ile benim için komut wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zipdaha speedtset-clisonra kullanmaktan çok daha iyi çalışıyor ve ^ C komutu kesmiyor. Wget ile indirme shrot ^ C
Willoczy

1
@mlissner, megabitlerde birinci hız, megabaytlarda ikinci hıza benziyor ..
vp_arth

1
mlissner 1.5 x 8 = 12. biri kbps ve diğeri KBps :-)
Tachyons

55

İperf'i kurmaktan rahatsız olmazsanız, komutla bilinen miktarda veriyi değiştiren timeve bir toplam yapan herhangi bir komuttan önce gelebilirsiniz .

iperf basit ve kullanımı kolaydır.

Bir müşteri ve sunucu gerektirir.

(sunucuda)

 user@server$ iperf -s

(müşteride)

 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

Daha fazla detay


7
+1 iperf, ethernet ve WIFI hızlarını doğrulamak için harika
kfmfe04

1
iperfLAN için harika ama kullanıcı WAN hakkında soruyor.
IMTheNachoMan

34

Ben wgetbunun için kullanıyorum . Bu küçük araç bana hangi hızda olduğumu söylüyor.

Bunu kullanmak, internette nispeten daha büyük bir dosyaya işaret eder, böylece daha iyi bir tahminde bulunabilirsiniz.

Örneğin

Yazarak: wget http://hostve.com/neobuntu/pics/Ubu1.aviUbu1.avi dosyasını indirmeye başlayacaktır ve indirme hızını gösterecektir.

görüntü tanımını buraya girin

Elbette birkaç öneri var:

  1. İyi sunucularla hızınızı test edin. Bağlantım durumunda, hız 200 KB'nin altındadır, bu nedenle daha yüksek bir hızınız varsa, sunucu gerçek hızınız değil, sizin için darboğaz olacaktır.

  2. Göreceğiniz en yüksek hız, bağlantınızın ve sunucunun bağlantısının sunabileceği maksimum hızdır. Bağlantınız 512KB ise ve indirdiğiniz yer 400KB ise, maksimum bağlantınız 400KB olacaktır, çünkü indirdiğiniz sunucunun maksimum sınırıdır.

  3. Testi güvenilir bir hız kontrolü yapmak için en az 5 kez yapmanız veya en az bir veya iki dakika boyunca yapmanız gerekir. Bu, daha doğru bir kontrol yapmanıza yardımcı olacaktır.

  4. Daha doğru bir hıza sahip olmak için en az 4 veya 5 farklı test kaynağına sahip olmanız gerekir. Asla yalnızca aynı siteden test edin, çünkü bu sizin mesafenizden, sunucudaki herhangi bir sorundan ve ona bağlantılardan etkilenebilir. Her zaman farklı sunuculardan test edin.

aria2

Bu bir alternatiftir wget. Dezavantajı ise wgetparalel bağlantıların olmaması. Aria2 kullanmak için onu indirmemiz gerekiyor:

   sudo apt-get install aria2

Bunu kullanmak basittir:

görüntü tanımını buraya girin

Resimde, -x 4 kaç tane paralel bağlantı kullanmak istediğimizdir. Bir sonraki satırdaki CN parametresi, o siteden kaç tane aktif paralel bağlantıya izin verildiğini gösterir. Bu durumda CN 4'tür. Ancak daha fazla bağlantı kurmaya çalışırsak şöyle bir şey alırız:

görüntü tanımını buraya girin

8 paralel bağlantı kurduk, ancak saha sadece CN: 5 ile gösterildiği gibi maksimum 5 taneye izin verdi. Bu , aria2c'ye istediğimiz maksimum eşzamanlı bağlantıları söyleyen -j seçeneği ile çözülebilir (Varsayılan olarak 5'tir) ancak sunucu bunu sınırladıysa, -j çalışmayacaktır.


1
wget (henüz) bölümlenmiş bir indirme işlemi yapamıyor, yani birden fazla (paralel) bağlantı kullanarak tek bir dosyayı indiriyor, yani ISS'niz 1 bağlantı başına hızı sınırlıyorsa, doğru sonuçlar alamazsınız ... en azından parçalı indirmeyi (aria2 gibi) kullanabilen başka bir aracı kullanmak için daha kesin bir test olacaktır
Mladen B.

3
Bu bir hızlı DEĞİLDİR, bu sadece İNDİR hız testidir! İnternet hız testi aşağı ve yukarı yük demektir! İkinci cevap ve speedtest-cli'dan bahseden diğer herkes doğru yaklaşıma sahip.
Emil Borconi,

1
@EmilBorconi Haklısın ama gerçek hayatta, burada İnternet hızlarını kıyaslama yapmıyoruz, bu sadece speedtest gibi sitelere ihtiyaç duymadan, herhangi bir ev kullanıcısının ortalama mevcut hız testlerini yapıyor. Bir indirme hızı (bir darboğaz olup olmadığını görmeye çalışan herkes için yeterli) yeterince iyi bir testtir. Tam bir aşağı / yukarı hız testi, hızınızın tam kapsamının ISS'nize dayandığını kontrol eder. Bu yüzden evet, bu en iyi çözüm olacaktır, ancak herhangi bir hızlı test senaryosu için, basit bir kişi bile hile yapar çünkü normalde insanlar indirme hızından daha fazla endişe duyuyorlar.
Luis Alvarado,

1
@LuisAlvarado kaba ses çıkardıysam özür dilerim, insanların ne istediklerini tam olarak anlayabilmeleri gerektiğini düşünüyorum ve kabul edilen cevabın ne olduğunu. Pek çok yenibiyse forumlara bakacak ve kabul edilen yanıtı kabul edecek / seçecek / durduracaklar ve cevaplarında yanlış bir imaj oluşturacaklar. Ve her beş dakikada bir özçekim gönderen bir facebook manyağı değilseniz, o zaman yükleme daha önemlidir, sonra ISS ile bir savaşmaya başlayın, çünkü sadece iyi olan indirmeyi test ettiniz, ancak çirkin bir yükleme yaptınız ... Bir kez daha üzgünüm eğer
tonum kabasaydı

1
Bundan wgetdaha iyisini seviyorum curlçünkü wgetgörüntüler MB/s(MBytes / sn olduğu çok net), oysa curlsadece görüntüler k(KBytes / sn olduğu çok açık değil).
wisbucky

19

Speedtest-cli bir python uygulaması olduğundan, aşağıdakileri yaparak kurulumu çok kolaydır:

pip install speedtest-cli

veya:

easy_install speedtest-cli

Python'un sisteminize nasıl kurulduğuna bağlı olarak, yukarıdakileri yapmak için root olmanız gerekebilir.


7

speedometerUbuntu uçurumdan hoşlanıyorum .

speedometer -r eth0

Gelen veri hızlarının canlı grafiğini izlemek için.


Aslında bir süredir aradığım şey buydu! Teşekkürler! ama
Kib'de

3

Büyük dosyalarda timeout komutuyla birkaç wget örneği çalıştırın:

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

Ve sonra indirilen toplam baytları hesaplamak için bir komut dosyası yazın ve 5 saniyeye bölünerek bir bayt / sn rakamı elde edin. Oldukça doğru olmalı ve bant genişliğinizi en yükseğe çıkarmak için daha fazla örnek ekleyebilirsiniz.

Tam komut dosyasını henüz test etmedim ancak "timeout 5 wget url" adlı tek satırlık komut çalışıyor ve sonuç olarak kısmen indirilmiş bir dosya alıyorsunuz (5 saniye indirmeyi tamamlamak için yeterli değilse).


Bu, bazı sunucuların kurulmasını gerektirir ...
Braiam

url_1,2,3,4 ortak sunucular gibi herhangi bir şey olabilir.
rexis

örneğin timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5secdaha sonra dosya boyutunu analiz edin ve 5: sapbit expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024kbit / s
rubo77 29:15

3

kullanabilirsiniz tespeed. sunucuları kullanan bir Terminal ağ hız testidir Speedtest.net. En yakın test sunucusunu kullanır, ancak kullanıcı tarafından manuel olarak belirtilen birini de kullanabilir.

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

görüntü tanımını buraya girin

daha fazla bilgi kullanımı için:

 ./tespeed.py  -h

hız testi için daha fazla seçenek sağlayacaktır.


Not: gerektirirlxml
Matt

2

100 MB indirmenin ne kadar sürdüğünü test eden basit bir astar ( /bin/shaynı zamanda çalışır ):

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

açıklama:

  1. zaman damgasını $ t içinde sakla
  2. 100mb indir, ancak hiçbir şey saklamayın
  3. hesaplamak 8 * 100mb / $t

Bu durum, durumsuz bir salt okunur rootFS'den test yaptığımdan wgetve hızı veremediğim için çok işe yaradı .
Josh Habdas

2

@Rexis cevabını temel alan basit bash betiği. Test için kendi linklerinizi koyabilir linksveya dosyadan okuyabilirsiniz.

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

bir eksi - peki diğer dili İngilizce olarak kullandığımda ne yapmalıyım? bkz: grep :) part
ceph3us 14:16

1

İndirme hızımı saniyede bir bit cinsinden elde etmek için $ HOME / .bash_aliases dosyamda aşağıdakileri tanımlarım:

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

nerede:

--output-document=/dev/null wget çıktısını etkili bir şekilde atar

--report-speed=bits wget indirme hızı ortalamasını saniyede bit (bps) cinsinden gösterir, bunun yerine saniye başına varsayılan bayt (Bps)



0

Speedtest.net'ten ve sadece tek bir web sitesine dayanan çeşitli çözümlerden daha gelişmiş bir şey istedim. Bu yüzden normalde yaptığım şeyi yaptım ve kendi çözümümü yazdım:

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

Özellikler listesinden:

  • SSH / SFTP (port 22) hız testi.
  • Genel TCP bağlantı noktaları 80, 443 ve 8080'in yanı sıra, 2.2 Gb / sn aşağı ve 780 Mb / sn hızını destekleyen özel bir TCP / IP sunucusu kullanarak rastgele TCP bağlantı noktası hız testi.
  • Oldukça temel ağ gecikmesi testi.
  • Dijital Okyanus damlacıklarını döndürün ve SSH / SFTP ve çeşitli TCP portlarını test edin.
  • Speedtest.net ve özel OoklaServer hız testi. Single.speedtest.net adresindeki tek bağlantı testlerine benzer sonuçlar üretir.
  • Sessiz modda saf JSON çıkışı (-s).

Diğer uygulamalar tarafından tüketilebilecek daha genel bir çözümdür. SFTP akış aşağı akış hızımın iki katına çıkmasıyla sonuçlanan bir ISS ağ sorununu tam olarak belirledim, bu da artan mutluluğa neden oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.