Вопрос Как проверить скорость интернета через терминал?


Вместо того, чтобы переходить на сайты вроде speedtest.net, Я хочу проверить текущую скорость Интернета с терминала на Ubuntu. Как мне это сделать?


358
2018-02-16 14:24


происхождения


Результаты, которые я получаю с помощью speedtest-cli, значительно ниже того, что я получаю от speedtest.net speedtest-cli Загрузка 18.27 Мбит / с Загрузка 3.43 Мбит / с speedtest.net Скачать 59.38 Мбит / с Загрузка 12.14 Мбит / с Я не могу рассмотрите speedtest-cli, чтобы быть каким-либо образом действительным тестом на скорость сети.
@ user375058: speedtest-cli использует те же серверы (и т. д.), что и SpeedTest.net. Вы должны рассмотреть speedtest-cli а также www.speedtest.net чтобы быть эквивалентным, просто с другим интерфейсом. Я был бы удивлен, если вы существенно разные результаты последовательно, если они оба используют один и тот же сервер. Если они не используют один и тот же сервер, то у вас нет основы для сравнения. Наконец, мои результаты для обеих утилит варьируются в 2-4 раза от запуска до запуска. Я предлагаю вам протестировать 2-4 сервера и выполнить 3-4 прогона для каждого сервера и сравнить инструменты. - jvriesem
@ user375058: Я на самом деле просто сделал то, что предложил. См. Ссылку в моем комментарии ниже для моих результатов. - jvriesem
sudo apt install speedtest-cli - ColdCold


ответы:


Я рекомендую SpeedTest-кли инструмент для этого. Я создал запись в блоге (Измерьте скорость подключения к Интернету из командной строки 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

Обновление в 2016 году:

speedtest-cli теперь находится в репозиториях Ubuntu. Для Ubuntu 16.04 (Xenial) и последующего использования:

sudo apt install speedtest-cli
speedtest-cli

564
2018-03-19 08:11



Кажется, это работает неправильно. У меня BT бесконечность 50bBit вниз и 20Mbit вверх. Но результаты выглядят как 0,53 Мбит и 0,2 Мбит. А? Неправильное десятичное размещение? используя wget, я получаю 4.27M / s (34Mbit) (какой-то другой сервер, хотя)? - ppumkin
Как уже было сказано Вот: Поскольку speedtest-cli является приложением python, его гораздо проще установить, выполнив следующие действия: pip install speedtest-cli  или: easy_install speedtest-cli  В зависимости от того, как Python установлен в вашей системе, вам может потребоваться установить root для выполнения вышеуказанного. - CrandellWS
Подтверждая, что speedtest-cli нарушен, Не показывает скорости выше 1 Мбит / с. Не передает никакой информации, заявляя об этом. - int_ua
Это действительно должен быть принятый ответ ... speedtest-cli отлично работает для меня; Думаю, @int_ua испытывала проблемы совместимости или проблемы с Интернетом. - peelman
Это должен быть правильный ответ. Тест скорости означает загрузку и загрузку. Первый ответ ТОЛЬКО измеряет скорость загрузки, которая НЕ является полной картиной скорости вашего интернет-соединения. Особенно, если вы размещаете что-то на этой машине! - Emil Borconi


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

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

попробуйте это тоже

sourceforge.net/projects/tespeed/

получил его сверху ссылку


78
2018-02-16 14:57



Не могли бы вы объяснить, что /dev/null означает? - nutty about natty
Это специальный файл, который просто удаляет данные, записанные на него, - Tachyons
Для меня на Ubuntu 14.10 с python 2.7.8 команда wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip работает намного лучше, чем использование speedtset-cli позже, похоже, замерзает, а ^ C не прерывает команду. С wget у меня нет проблем с резанием загрузочного шрота с помощью ^ C - Willoczy
@mlissner, выглядит как первая скорость в мегабитах, вторая в мегабайтах. - vp_arth
@mlissner 1.5 x 8 = 12. один - kbps, а другой - KBps :-) - Tachyons


Если вы не можете быть обеспокоены установкой 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

Подробнее


46
2018-02-16 15:21



+1 iperf является фантастическим для проверки скорости Ethernet и WIFI - kfmfe04
iperf отлично подходит для локальной сети, но пользователь спрашивает о WAN. - IMTheNachoMan


Хорошо, я использую wget для этого. Этот маленький инструмент подсказывает мне, какая у меня скорость.

Чтобы использовать его, просто указывайте на файл в Интернете, который является относительно большим, чтобы вы могли лучше оценить его.

Например

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

enter image description here

Конечно, есть несколько рекомендаций:

  1. Скорость проверяет себя на хороших серверах. В случае с моей ссылкой скорость меньше 200 КБ, поэтому, если у вас есть более высокая скорость, сервер станет для вас узким местом, а не вашей реальной скоростью.

  2. Самая высокая скорость, которую вы увидите, - это максимальная скорость, которую может предложить ваше соединение и соединение с сервером. Если ваше соединение составляет 512 КБ, а место, где вы загружаете, составляет 400 КБ, максимальное соединение будет 400 КБ, поскольку оно является максимальным для сервера, с которого вы загружаете.

  3. Вам необходимо провести тест не менее 5 раз, чтобы иметь надежную проверку скорости или, по крайней мере, сделать это в течение минуты или двух. Это поможет вам получить более точную проверку.

  4. У вас должно быть не менее 4 или 5 различных источников тестирования, чтобы иметь более точную скорость. Никогда не проверяйте только с одного и того же сайта, так как это может зависеть от вашего расстояния до него, любых проблем на сервере и подключений к нему и т. Д. Всегда проверяйте с разных серверов.

aria2

Это альтернатива wget, Недостаток wget это отсутствие параллельных соединений. Чтобы использовать aria2, нам нужно скачать его:

   sudo apt-get install aria2

Использовать это просто:

enter image description here

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

enter image description here

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


31
2018-02-16 15:12



wget еще не способен выполнять сегментированную загрузку, то есть загружать один файл с использованием нескольких (параллельных) соединений, поэтому, если ваш интернет-провайдер ограничивает скорость на 1 соединение, вы не получите точных результатов ... это было бы более точным тестом для использования какого-либо другого инструмента, который может по крайней мере использовать сегментированную загрузку (например, aria2) - Mladen B.
@MladenB. Благодарю. Добавлен Aria2. - Luis Alvarado♦
Это НЕ скорость, это только тест скорости с помощью DOWNLOAD! Тест скорости Интернета означает «вниз» и «вверх»! Второй ответ, и все остальные, упоминающие speedtest-cli, имеют правильный подход. - Emil Borconi
@EmilBorconi. Вы правы, но в реальной жизни мы не проводим бенчмаркинг интернет-скоростей здесь, это всего лишь ваши текущие текущие тесты скорости любого домашнего пользователя без необходимости в таких сайтах, как speedtest. Скорость загрузки (которой достаточно для тех, кто пытается увидеть, если они имеют узкое место) является достаточно хорошим тестом. Полный тест скорости вверх / вниз будет проверять, какая полная скорость вашей скорости основана на вашем интернет-провайдере. Так что да, это было бы лучшим решением, но для любого сценария быстрого теста даже простой wget мог бы сделать трюк, поскольку обычно люди больше беспокоятся о скорости загрузки, чем загружают. - Luis Alvarado♦
@LuisAlvarado извините, если я звучал грубо, просто я думаю, что люди должны быть в состоянии полностью понять, что они спрашивают / и что такое принятый ответ. Лоты новичков будут смотреть на форумы, и они будут предполагать / выбирать / останавливаться на принятом ответе, и они формируют ложный образ в их. И да, загрузка более важна, чем загрузка, если вы не маньяк facebook, который отправляет своих сотрудников каждые 5 минут, а затем начинайте драку с вами, интернет-провайдером, только потому, что вы протестировали загрузку, которая хороша, но у вас есть дерьмовая загрузка ... Еще раз жаль если мой тон был груб, не хотел оскорблять ... - Emil Borconi


Поскольку speedtest-cli является приложением python, его гораздо проще установить, выполнив следующие действия:

pip install speedtest-cli

или:

easy_install speedtest-cli

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


18
2017-12-02 15:06





Мне нравится speedometer Ubuntu cli.

speedometer -r eth0

Чтобы посмотреть живой график скорости входящих данных.


5
2017-09-02 21:22



Это на самом деле то, что я искал какое-то время! благодаря! но мне не нравится, что он показывает скорости в Kib, а не Kb или KB - redbeam_


Запустите несколько экземпляров 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 секунд недостаточно для завершения загрузки).


3
2017-09-20 02:29



Это потребует от некоторых настроек сервера ... - Braiam
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 в кбит / с - rubo77


вы можете использовать tespeed , это тест скорости сети терминалов, который использует серверы из Speedtest.net, Он использует ближайший тестовый сервер, но также может использовать один, указанный вручную пользователем.

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

enter image description here

для более подробной информации:

 ./tespeed.py  -h

он предоставит больше возможностей для проверки скорости.


3
2017-09-12 06:08



Примечание: требуется lxml - Matt


Простой сценарий 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 $TMP_PATH | grep total | awk '{print $1}')

echo "Cleaning up"
rm -rf $TMP_PATH

speed=$(expr $total_bytes / $TEST_TIME)

echo "Speed is $speed Kb/s"

exit 0

2
2018-03-24 12:28



один минус - как насчет того, когда я использую другой язык как английский? смотри: grep :) часть - ceph3us


Вы также можете попробовать http://dl.getipaddr.net

Они используют curl (который является известной утилитой командной строки) для запуска теста скорости.

Вкратце

Wget https://raw.github.com/blackdotsh/curl-speedtest/master/speedtest.sh && chmod u + x speedtest.sh && bash speedtest.sh


0
2018-03-07 18:17





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

0
2017-08-29 07:29



Это отлично поработало, поскольку я тестирую корневую файловую систему без права доступа только для чтения и wget не выводил скорость. - Josh Habdas