Wie überprüfe ich die Internetgeschwindigkeit über das Terminal?


467

Anstatt Websites wie speedtest.net aufzurufen , möchte ich meine aktuelle Internetgeschwindigkeit vom Terminal auf Ubuntu aus überprüfen. Wie kann ich es tun?


4
Die Ergebnisse, die ich mit speedtest-cli erhalte, liegen weit unter denen von speedtest.net speedtest-cli Herunterladen 18,27 Mbits / s Hochladen 3,43 Mbits / s speedtest.net Herunterladen 59,38 Mbits / s Hochladen 12,14 Mbits / s Ich kann nicht Betrachten Sie speedtest-cli in irgendeiner Weise als einen gültigen Test der Netzwerkgeschwindigkeit.

2
@ user375058: Der speedtest-cliverwendet die gleichen Server (usw.) wie SpeedTest.net. Sie sollten das speedtest-cliund www.speedtest.netals gleichwertig betrachten, nur mit einem anderen Frontend. Es würde mich überraschen, wenn Sie immer wieder deutlich unterschiedliche Ergebnisse erhalten, wenn beide denselben Server verwenden. Wenn sie nicht denselben Server verwenden, haben Sie keine Vergleichsgrundlage. Schließlich variieren meine Ergebnisse für beide Dienstprogramme von Lauf zu Lauf um den Faktor 2-4. Ich empfehle Ihnen, 2-4 Server zu testen und 3-4 Läufe für jeden Server durchzuführen und die Tools zu vergleichen.
Jvriesem

@ user375058: Ich habe eigentlich nur das gemacht, was ich vorgeschlagen habe. Siehe den Link in meinem Kommentar unten für meine Ergebnisse.
Jvriesem

1
sudo apt install speedtest-cli
ColdCold

Antworten:


753

Ich empfehle dazu das speedtest-cli Tool. Ich habe einen Blog-Beitrag ( Messen der Internetverbindungsgeschwindigkeit über die Linux-Befehlszeile ) erstellt, der ausführlich das Herunterladen, Installieren und Verwenden des Artikels beschreibt.

Die Kurzversion lautet wie folgt: (keine Wurzel erforderlich)

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

Ausgabe:

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

Update im Jahr 2018:

Mit "Using" erhalten pip install --user speedtest-cliSie eine Version, die wahrscheinlich neuer ist als die, die in den Repositorys Ihrer Distribution verfügbar ist.

Update im Jahr 2016:

speedtest-cliist jetzt in Ubuntu-Repositories. Für Ubuntu 16.04 (Xenial) und höher:

sudo apt install speedtest-cli
speedtest-cli

2
Dies scheint nicht richtig zu funktionieren. Ich habe BT unendlich 50bBit down und 20Mbit up. Die Ergebnisse werden jedoch als 0,53 MBit nach unten und 0,2 MBit nach oben angezeigt. Huh? Falsche Dezimalstelle? mit wget bekomme ich 4.27M / s (34Mbit) (aber ein anderer Server)?
Piotr Kula

34
Wie es bereits ausgeführt worden ist , hier : Da Speedtest-cli eine Python - Anwendung ist, ist es viel einfacher , indem Sie zu installieren: pip install speedtest-cli oder: easy_install speedtest-cli Je nachdem , wie Python auf Ihrem System installiert ist, müssen Sie möglicherweise root sein , die oben zu tun.
CrandellWS

1
Bestätigung, dass speedtest-cli defekt ist . Zeigt keine Geschwindigkeiten über 1 Mbit / s an. Überträgt keine Informationen, wenn Sie dies fordern.
int_ua

5
Dies sollte wirklich die akzeptierte Antwort sein ... speedtest-cli funktioniert gut für mich; think @int_ua hatte entweder Kompatibilitätsprobleme oder Internetprobleme.
Peelman

2
Dies sollte die richtige Antwort sein. Geschwindigkeitstest bedeutet Download und Upload. Die erste Antwort misst NUR die Download-Geschwindigkeit, die NICHT ein vollständiges Bild Ihrer Internet-Verbindungsgeschwindigkeit ist. Vor allem, wenn Sie etwas auf diesem Computer hosten!
Emil Borconi

92

versuchen Sie dies auf der Kommandozeile

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

versuche das auch

sourceforge.net/projects/tespeed/

habe es von oben Link


2
Könnten Sie bitte erklären, wofür /dev/nullsteht?
verrückt nach natty

12
Es ist eine spezielle Datei, in die einfach die Löschdaten geschrieben werden.
Tachyons

2
Für mich unter Ubuntu 14.10 mit Python 2.7.8 funktioniert der Befehl wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zipviel besser, als wenn der speedtset-clispätere einfriert und ^ C den Befehl nicht unterbricht. Mit wget habe ich keine Probleme, den Download-Shrot mit ^ C
Willoczy

1
@mlissner, sieht aus wie erste Geschwindigkeit in Megabits, zweite in Megabytes ..
vp_arth

1
@ mlissner 1,5 x 8 = 12. ist kbps und andere KBps :-)
Tachyonen

55

Wenn Sie sich nicht die Mühe machen müssen, iperf zu installieren, können Sie jedem Befehl, der eine bekannte Datenmenge verschiebt, den timeBefehl voranstellen und eine Summe ausführen .

iperf ist einfach und benutzerfreundlich.

Es erfordert einen Client und einen Server.

(auf dem Server)

 user@server$ iperf -s

(auf dem Client)

 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

Mehr Details


7
+1 iperf ist fantastisch für die Validierung von Ethernet- und WIFI-Geschwindigkeiten
kfmfe04

1
iperfist ideal für LAN, aber der Benutzer fragt nach WAN.
IMTheNachoMan

34

Naja ich benutze wgetdafür. Das kleine Tool sagt mir gut, welche Geschwindigkeit ich habe.

Um es zu verwenden, zeigen Sie einfach auf eine Datei im Internet, die relativ größer ist, damit Sie eine bessere Schätzung davon erhalten können.

Zum Beispiel

Tippen: wget http://hostve.com/neobuntu/pics/Ubu1.aviStartet den Download der Ubu1.avi-Datei und zeigt an, mit welcher Geschwindigkeit sie heruntergeladen wird.

Bildbeschreibung hier eingeben

Natürlich gibt es mehrere Empfehlungen:

  1. Testen Sie sich selbst mit guten Servern. Bei meinem Link beträgt die Geschwindigkeit weniger als 200 KB. Wenn Sie also eine höhere Geschwindigkeit haben, ist der Server der Engpass für Sie und nicht Ihre tatsächliche Geschwindigkeit.

  2. Die höchste Geschwindigkeit, die angezeigt wird, ist die maximale Geschwindigkeit, die Ihre Verbindung und die Serververbindung bieten können. Wenn Ihre Verbindung 512 KB groß ist und der Ort, von dem Sie herunterladen, 400 KB beträgt, beträgt Ihre maximale Verbindung 400 KB, da dies die maximale Größe für den Server ist, von dem Sie herunterladen.

  3. Sie müssen den Test mindestens fünfmal durchführen, um eine zuverlässige Geschwindigkeitsprüfung zu erhalten, oder mindestens eine oder zwei Minuten lang. Dies hilft Ihnen bei einer genaueren Überprüfung.

  4. Sie benötigen mindestens 4 oder 5 verschiedene Testquellen, um eine genauere Geschwindigkeit zu erzielen. Testen Sie niemals nur von derselben Site aus, da dies durch Ihre Entfernung, Probleme auf dem Server und die Verbindungen zu ihm usw. beeinflusst werden kann. Testen Sie immer von verschiedenen Servern aus.

ARIA2

Dies ist eine Alternative zu wget. Der Nachteil wgetist das Fehlen von Parallelverbindungen. Um aria2 nutzen zu können, müssen wir es herunterladen:

   sudo apt-get install aria2

Die Benutzung ist einfach:

Bildbeschreibung hier eingeben

In der Abbildung gibt -x 4 an, wie viele parallele Verbindungen wir verwenden möchten. Der CN-Parameter in der nächsten Zeile zeigt an, wie viele aktive parallele Verbindungen von dieser Site heruntergeladen werden durften. In diesem Fall ist CN 4. Wenn wir jedoch versuchen würden, mehr Verbindungen herzustellen, erhalten wir ungefähr Folgendes:

Bildbeschreibung hier eingeben

Wir haben 8 parallele Verbindungen eingerichtet, aber die Site erlaubte nur maximal 5, wie CN: 5 zeigt. Dies könnte durch die Option -j gelöst werden, die aria2c mitteilt, wie viele gleichzeitige Verbindungen wir möchten (standardmäßig 5). Wenn der Server dies jedoch eingeschränkt hat, funktioniert -j nicht.


1
wget ist (noch) nicht in der Lage, einen segmentierten Download durchzuführen, dh eine einzelne Datei über mehrere (parallele) Verbindungen herunterzuladen. Wenn Ihr ISP also die Geschwindigkeit pro Verbindung begrenzt, erhalten Sie keine genauen Ergebnisse wäre ein genauerer Test, um ein anderes Tool zu verwenden, das zumindest segmentierten Download verwenden kann (wie aria2)
Mladen B.

3
Dies ist KEIN Speedtest, dies ist nur ein DOWNLOAD Speedtest! Internet-Geschwindigkeitstest bedeutet Laden und Laden! Die zweite Antwort und alle anderen, die speedtest-cli erwähnen, haben den richtigen Ansatz.
Emil Borconi

1
@EmilBorconi Sie haben Recht, aber im wirklichen Leben machen wir hier kein Benchmarking der Internetgeschwindigkeiten. Dies sind nur Ihre durchschnittlichen aktuellen Geschwindigkeitstests für Heimanwender, ohne dass Websites wie Speedtest erforderlich sind. Eine Download-Geschwindigkeit (die für jeden ausreicht, der nach einem Engpass sucht) ist ein guter Test. Ein vollständiger Down / Up-Geschwindigkeitstest prüft, inwieweit der gesamte Umfang Ihrer Geschwindigkeit von Ihrem ISP abhängt. Also ja, das wäre die beste Lösung, aber für jedes schnelle Testszenario würde sogar ein einfacher Wget den Trick machen, da sich die Leute normalerweise mehr um die Download-Geschwindigkeit als um das Hochladen kümmern.
Luis Alvarado

1
@ LuisAlvarado sorry, wenn ich unhöflich klang, nur denke ich, die Leute sollten in der Lage sein zu verstehen, was sie fragen / und was die akzeptierte Antwort ist. Viele Neulinge werden sich Foren ansehen und bei der akzeptierten Antwort annehmen / auswählen / anhalten, und sie bilden ein falsches Bild in ihrem Besitz. Und das Herunterladen ist wichtiger als das Hochladen, es sei denn, Sie sind ein Facebook-Fan, der alle 5 Minuten Selfies veröffentlicht. Starten Sie dann einen Kampf mit Ihrem ISP, nur weil Sie den Download getestet haben, der gut ist, aber Sie haben einen beschissenen Upload wenn mein Ton unhöflich war, wollte nicht beleidigen ...
Emil Borconi

1
Mir gefällt dies wgetbesser, curlweil wgetAnzeigen MB/s(sehr klar, das sind MByte / s), während curlnur Anzeigen k(nicht sehr offensichtlich, dass es KByte / s sind).
wisbucky

19

Da es sich bei speedtest-cli um eine Python-Anwendung handelt, ist die Installation wesentlich einfacher:

pip install speedtest-cli

oder:

easy_install speedtest-cli

Je nachdem, wie Python auf Ihrem System installiert ist, müssen Sie möglicherweise als Root angemeldet sein, um die oben genannten Aufgaben ausführen zu können.


7

Ich mag die speedometerUbuntu-Cli.

speedometer -r eth0

Anzeigen eines Live-Diagramms der eingehenden Datengeschwindigkeiten.


das ist genau das, wonach ich eine Weile gesucht habe! Vielen Dank! aber ich mag es nicht, dass es Geschwindigkeiten in Kib und nicht Kb oder KB zeigt
redbeam_

3

Führen Sie mehrere Instanzen von wget mit dem Befehl timeout für große Dateien aus:

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

Und dann schreiben Sie ein Skript, um die Gesamtzahl der heruntergeladenen Bytes zu berechnen und 5 Sekunden zu teilen. Sie erhalten eine Zahl von Bytes / Sek. Sollte ziemlich genau sein und Sie können mehr Instanzen hinzufügen, um Ihre Bandbreite zu maximieren.

Ich habe das vollständige Skript noch nicht getestet, aber der einzeilige Befehl "timeout 5 wget url" funktioniert, und Sie erhalten als Ergebnis eine teilweise heruntergeladene Datei (wenn 5 Sekunden nicht ausreichen, um den Download abzuschließen).


Dies würde erfordern, dass ein Server eingerichtet wird ...
Braiam

url_1,2,3,4 kann alles sein, z. B. öffentliche Server.
Rexis

Zum Beispiel timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5secdann die Dateigröße analysieren und durch 5 teilen: expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024in kbit / s
rubo77

3

Sie können verwenden tespeed. Es ist ein Terminal-Netzwerkgeschwindigkeitstest, bei dem Server von verwendet werden Speedtest.net. Es wird der nächstgelegene Testserver verwendet, es kann jedoch auch ein vom Benutzer manuell angegebener verwendet werden.

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

Bildbeschreibung hier eingeben

Für weitere Informationen verwenden Sie:

 ./tespeed.py  -h

Es bietet mehr Optionen für Geschwindigkeitstests.


Hinweis: erfordertlxml
Matt

2

Ein einfacher Einzeiler, der testet, wie lange das Herunterladen von 100 MB dauert (funktioniert /bin/shauch):

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

Erläuterung:

  1. Speichern Sie den Zeitstempel in $ t
  2. 100 MB herunterladen, aber nichts speichern
  3. Berechnung 8 * 100mb / $t

Dies funktionierte hervorragend, da ich von einem statusfreien schreibgeschützten rootFS aus teste und wgetdie Geschwindigkeit nicht ausgab .
Josh Habdas

2

Einfaches Bash-Skript basierend auf der @ Rexis-Antwort. Sie können Ihre eigenen Links zum Testen in ein linksArray einfügen oder sie aus einer Datei lesen

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

Eins minus - was ist, wenn ich eine andere Sprache als Englisch benutze? siehe: grep :) part
ceph3us

1

Um meine Download-Geschwindigkeit bequem in Bit pro Sekunde zu erhalten, definiere ich Folgendes in meiner Datei $ HOME / .bash_aliases:

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

wo:

--output-document=/dev/null verwirft effektiv die wget Ausgabe

--report-speed=bits Zeigt die durchschnittliche Download-Geschwindigkeit in Bit pro Sekunde (Bps) anstelle der Standard-Bytes pro Sekunde (Bps) an.



0

Ich wollte etwas Fortgeschritteneres als speedtest.net und verschiedene Lösungen, die nur auf einer einzigen Website basieren. Also tat ich das, was ich normalerweise tue und schrieb meine eigene Lösung:

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

Aus der Featureliste:

  • SSH / SFTP-Geschwindigkeitstest (Port 22).
  • Gängige TCP-Ports 80, 443 und 8080 sowie zufällige TCP-Port-Geschwindigkeitstests mit einem benutzerdefinierten TCP / IP-Server, der Geschwindigkeiten von bis zu 2,2 Gbit / s und bis zu 780 Mbit / s unterstützt.
  • Ziemlich grundlegende Netzwerklatenztests.
  • Starten Sie Digital Ocean Droplets und testen Sie die Geschwindigkeit von SSH / SFTP und verschiedenen TCP-Ports.
  • Speedtest.net und benutzerdefinierte OoklaServer Geschwindigkeitstests. Erzeugt ähnliche Ergebnisse wie die Einzelverbindungstests unter single.speedtest.net.
  • Reine JSON-Ausgabe im unbeaufsichtigten Modus (-s).

Es ist eine allgemeinere Lösung, die von anderen Anwendungen verwendet werden kann. Es gelang mir, ein Problem mit dem ISP-Netzwerk zu identifizieren, das dazu führte, dass sich die Geschwindigkeit meines SFTP-Downstreams verdoppelte, was zu einer größeren Zufriedenheit führte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.