Як перевірити швидкість Інтернету через термінал?


466

Замість відвідування таких сайтів, як speedtest.net , я хочу перевірити свою поточну швидкість Інтернету з терміналу на Ubuntu. Як я можу це зробити?


4
Результати, які я отримую із speedtest-cli, значно підпадають під те, що я отримую від speedtest.net speedtest-cli Завантажити 18,27 Мбіт / с Завантажити 3,43 Мбіт / с speedtest.net Завантажити 59,38 Мбіт / с Завантажити 12,14 Мбіт / с Я не можу вважайте speedtest-cli будь-яким чином дійсним тестом швидкості мережі.

2
@ user375058: speedtest-cliвикористовує ті самі сервери (тощо), що і SpeedTest.net. Ви повинні вважати speedtest-cliі www.speedtest.netрівнозначним, тільки з іншим фронтом. Я був би здивований, якщо ви отримаєте суттєво різні результати послідовно, якщо вони обидва використовують один і той же сервер. Якщо вони не використовують один і той же сервер, у вас немає підстав для порівняння. Нарешті, мої результати для обох утиліт змінюються на коефіцієнт 2-4 від запуску до запуску. Я пропоную вам протестувати 2-4 сервери та виконати 3–4 запуски для кожного сервера та порівняти інструменти.
jvriesem

@ user375058: Я насправді просто робив те, що запропонував. Дивіться посилання в моєму коментарі нижче щодо моїх результатів.
jvriesem

1
sudo apt встановити speedtest-cli
ColdCold

Відповіді:


753

Я рекомендую для цього найшвидший засіб. Я створив допис у блозі ( Виміряйте швидкість підключення до Інтернету з командного рядка 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,53 Мбіт вниз і на 0,2 Мбіт вгору. Так? Неправильне десяткове розміщення? за допомогою wget я отримую 4.27M / s (34Mbit) (хоча і якийсь інший сервер)?
Пьотр Кула

34
Як вже було сказано тут : Оскільки speedtest-cli є програмою python, встановити її набагато простіше, виконавши: pip install speedtest-cli або: easy_install speedtest-cli Залежно від того, як Python встановлений у вашій системі, вам, можливо, знадобиться мати root, щоб зробити вищесказане.
CrandellWS

1
Підтвердження того, що найшвидший кліп порушений . Не показує швидкості вище 1 Мбіт / с. Не передає жодної інформації, коли претендує на це.
int_ua

5
Це дійсно має бути прийнятою відповіддю ... speedtest-cli працює для мене чудово; думаю, що у @int_ua були або проблеми з сумісністю, або проблеми з Інтернетом.
peelman

2
Це має бути правильна відповідь. Тест на швидкість означає завантаження та завантаження. Перша відповідь ТІЛЬКИ вимірює швидкість завантаження, яка НЕ ​​є повною картиною швидкості вашого інтернет-з'єднання. Особливо, якщо ви хостите щось на цій машині!
Еміль Борконі

92

спробуйте це в командному рядку

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

спробуйте і це

sourceforge.net/projects/tespeed/

отримав це зверху посилання


2
Не могли б ви пояснити, що /dev/nullозначає?
горіх про natty

12
Це Special файл, який просто видаляє дані, написані на ньому,
Tachyons

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 у мене немає проблем з вирізанням
шрота для

1
@mlissner, виглядає як перша швидкість в мегабітах, друга в мегабайти ..
vp_arth

1
@mlissner 1,5 x 8 = 12. один - kbps, а інший - KBps :-)
Tachyons

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 є фантастичним для перевірки швидкості Ethernet та WIFI
kfmfe04

1
iperfчудово підходить для локальної мережі, але користувач запитує про WAN.
IMTheNachoMan

34

Ну я використовую wgetдля цього. Цей маленький інструмент чудово підказує мені, яку швидкість я маю.

Для його використання просто вкажіть на файл в Інтернеті, який є порівняно більшим, щоб ви могли краще оцінити його.

Наприклад

набравши: wget http://hostve.com/neobuntu/pics/Ubu1.aviпочне завантажувати файл Ubu1.avi і показувати, з якою швидкістю він завантажує.

введіть тут опис зображення

Звичайно, є кілька рекомендацій:

  1. Перевірка швидкості на хороших серверах. У випадку мого посилання швидкість становить менше 200 КБ, тому якщо у вас більша швидкість, сервер буде для вас вузьким місцем, а не фактичною швидкістю.

  2. Найвища швидкість, яку ви побачите, - це максимальна швидкість, яку можуть запропонувати ваше з'єднання та з'єднання з сервером. Якщо підключення дорівнює 512 Кб, а місце, де ви завантажуєте, становить 400 КБ, максимальне з'єднання становитиме 400 КБ, оскільки це максимальне значення для сервера, з якого ви завантажуєте.

  3. Вам потрібно зробити тест принаймні 5 разів, щоб мати надійну перевірку швидкості або хоча б зробити це хвилину-дві. Це допоможе точніше перевірити.

  4. Щоб мати більш точну швидкість, вам потрібно мати принаймні 4 або 5 різних джерел тестування. Ніколи не тестуйте лише з того самого сайту, оскільки на це може вплинути ваша відстань до нього, будь-які проблеми на сервері та підключення до нього тощо. Завжди тестуйте на різних серверах.

ARIA2

Це альтернатива wget. Недоліком wgetє відсутність паралельних з'єднань. Для використання aria2 нам потрібно завантажити його:

   sudo apt-get install aria2

Користуватися ним просто:

введіть тут опис зображення

На зображенні -x 4 - скільки паралельних з'єднань ми хочемо використовувати. Параметр CN у наступному рядку показує, скільки активних паралельних з'єднань було дозволено завантажувати з цього сайту. У цьому випадку CN дорівнює 4. Але якби ми намагалися мати більше з'єднань, ми отримали б щось подібне:

введіть тут опис зображення

Ми встановили 8 паралельних з'єднань, але на сайті було дозволено максимум 5, як показано на CN: 5. Це може бути вирішено за допомогою параметра -j, яка повідомляє aria2c про максимально можливі одночасні з'єднання (яких за замовчуванням дорівнює 5), але якщо сервер обмежив це, -j не працюватиме.


1
wget ще не в змозі здійснити сегментоване завантаження, тобто завантажити один файл за допомогою декількох (паралельних) з'єднань, тому якщо ваш провайдер обмежує швидкість на 1 з'єднання, ви не отримаєте точних результатів ... це було б більш точним тестом використовувати якийсь інший інструмент, який може принаймні використовувати сегментоване завантаження (наприклад, aria2)
Mladen B.

3
Це НЕ найшвидший швидкість, це лише ТИПЛЕННЯ випробування швидкості! Перевірка швидкості в Інтернеті означає навантаження та зменшення навантаження! Друга відповідь, і всі інші, що згадують про speedtest-cli, мають правильний підхід.
Еміль Борконі

1
@EmilBorconi Ви праві, але в реальному житті ми тут не робимо тестування швидкості Інтернету, це лише ваші середні поточні тести на швидкість будь-якого домашнього користувача, не потребуючи таких сайтів, як швидкість. Швидкість завантаження (що достатньо для тих, хто намагається переконатися, чи є у них вузьке місце) - досить хороший тест. Повний тест швидкості вниз / вгору перевірить, на чому базується повний обсяг вашої швидкості на основі вашого провайдера. Так, так, це було б найкращим рішенням, але для будь-якого швидкого тестового сценарію навіть простий wget зробив би трюк, оскільки зазвичай люди більше турбуються про швидкість завантаження, ніж завантаження.
Луїс Альварадо

1
@LuisAlvarado вибачте, якщо я прозвучав грубо, я просто думаю, що люди повинні мати можливість повністю зрозуміти, що вони просять / і що є прийнятою відповіддю. Лотів-новачків роздивляться на форумах, і вони приймуть / підберуть / зупиняться на прийнятій відповіді, і вони формують помилкове зображення у своїх. І так, завантаження важливіше, ніж завантажуйте, якщо ви не маніак у фейсбуці, який публікує селфі кожні 5 хвилин, а потім розпочніть боротьбу з вами провайдером тільки тому, що ви перевірили завантаження, яке добре, але у вас є шалений завантаження ... Ще раз вибачте якщо мій тон був грубим, не хотів ображати ...
Еміль Борконі

1
Мені подобається wgetкраще, ніж curlце, тому що wgetвідображається MB/s(дуже зрозуміло, що це MBytes / s), тоді як curlпросто відображається k(не дуже очевидно, що це KBytes / s).
wisbucky

19

Оскільки speedtest-cli є додатком python, встановити його набагато простіше:

pip install speedtest-cli

або:

easy_install speedtest-cli

Залежно від того, як встановлено Python у вашій системі, можливо, вам потрібно буде мати root, щоб зробити вищесказане.


7

Мені здається, сподобався speedometerкліп Ubuntu.

speedometer -r eth0

Для перегляду живого графіка швидкості вхідних даних.


ось насправді те, що я шукав деякий час! Дякую! але мені не подобається, що він показує швидкість в Kib, а не Kb або KB
redbeam_

3

Запустіть кілька екземплярів wget з командою timeout на великих файлах:

#!/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 секунд, ви отримаєте цифру байт / сек. Має бути досить точним, і ви можете додати більше екземплярів, щоб збільшити пропускну здатність.

У мене ще є тест на повний скрипт, але однорядкова команда "timeout 5 wget url" працює, і ви отримуєте в результаті частково завантажений файл (якщо 5 секунд недостатньо для завершення завантаження).


Для цього знадобиться налаштувати сервер ...
Брайам

url_1,2,3,4 може бути будь-що, наприклад, загальнодоступні сервери.
rexis

наприклад, timeout 5 wget http://speedtest.netcologne.de/test_100mb.bin -O /tmp/temp5secпотім проаналізуйте розмір файлів і розділіть на 5: expr $(stat --printf="%s" /tmp/temp5sec) / 5 / 1024в kbit / s
rubo77

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

простий однолінійний тест, який тестує, скільки часу потрібно для завантаження 100 МБ (працює /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. завантажуйте 100 Мб, але нічого не зберігайте
  3. розрахувати 8 * 100mb / $t

Це спрацювало чудово, тому що я тестую корінь без обмеженого читання rootFS і wgetне видавав швидкість.
Джош Хабдас

2

Простий сценарій bash на основі відповіді @rexis. Ви можете розмістити власні посилання для тестування в 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

Щоб зручно отримати швидкість завантаження в бітах на секунду, я визначаю у своєму $ 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 ефективно відкидає вихідний файл

--report-speed=bits відображає середню швидкість завантаження wget у бітах на секунду (bps) замість байтів за секунду (Bps)



0

Я хотів чогось більш досконалого, ніж speedtest.net та різні рішення, які покладаються виключно на один веб-сайт. Тому я зробив те, що зазвичай роблю, і написав власне рішення:

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

Зі списку функцій:

  • Тестування швидкості SSH / SFTP (порт 22).
  • Поширені порти TCP 80, 443 та 8080, а також випадкове тестування швидкості портів TCP за допомогою користувацького TCP / IP-сервера, який підтримує швидкість до 2,2 Гбіт / с і 780 Мбіт / с.
  • Досить базове тестування затримки в мережі.
  • Розкручуються краплі цифрового океану і тестують швидкість SSH / SFTP та різні порти TCP.
  • Speedtest.net та спеціальні тестування швидкості OoklaServer. Отримує аналогічні результати, ніж тести на єдине підключення на сайті Single.speedtest.net.
  • Чистий вихід JSON в беззвучному режимі (-ів).

Це більш загальне рішення, яке можна споживати іншими програмами. Мені вдалося визначити проблему мережі ISP з нею, що призвело до подвоєння моєї SFTP швидкості вниз за течією, що призвело до зростання щастя.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.