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

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

485
задан 5 July 2018 в 21:22

16 ответов

Я рекомендую speedtest-cli инструмент для этого. Я создал сообщение в блоге (Измерьте Скорость Интернет-соединения из Командной строки 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 (Гостеприимное) и более позднее использование:

sudo apt install speedtest-cli
speedtest-cli
780
ответ дан 5 July 2018 в 21:22

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

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

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

sourceforge.net/projects/tespeed/

получили это по ссылке выше

0
ответ дан 5 July 2018 в 21:22

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

Подробнее

0
ответ дан 5 July 2018 в 21:22

Простой 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=$(echo "scale=2; $total_bytes / $TEST_TIME / 128" |bc)

echo "Speed is $speed Mbit/s"

exit 0
0
ответ дан 5 July 2018 в 21:22

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

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

Короче говоря

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

0
ответ дан 5 July 2018 в 21:22

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

speedometer -r eth0

Просмотр графика скорости входящих данных в режиме реального времени.

0
ответ дан 5 July 2018 в 21:22

простой однострочник, который проверяет, сколько времени требуется для загрузки 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))

объяснение:

    [ 113] сохранить временную метку в $ t
  1. загрузить 100 Мб, но ничего не хранить
  2. вычислить 8 * 100mb / $t
0
ответ дан 5 July 2018 в 21:22

вы можете использовать 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

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

0
ответ дан 5 July 2018 в 21:22

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

0
ответ дан 5 July 2018 в 21:22

Чтобы удобно получить скорость загрузки в битах в секунду, я определил следующее в моем файле $ 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 сбрасывает вывод wget

--report-speed=bits отображает среднее значение скорости загрузки wget в битах в секунду (бит / с) вместо стандартных байтов в секунду (бит / с)

0
ответ дан 5 July 2018 в 21:22

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

pip install speedtest-cli

или:

easy_install speedtest-cli

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

0
ответ дан 5 July 2018 в 21:22

Ну, я использую 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 не будет работать.

0
ответ дан 5 July 2018 в 21:22

На самом деле, Ookla, поставщик Speedtest выпустил утилиту командной строки, которая измеряет Вашу скорость против огромного количества распространения серверов во всем мире. Можно найти инструкции относительно того, как установить его на этом ссылка , и можно использовать его довольно простой путем выполнения:

speedtest -s XXXX -f csv|tsv|jsonl|json|json-pretty

, где -s наборы идентификатор сервера, против которого Вы хотите протестировать свою интернет-скорость, -f, определяет формат вывода. Я думаю, что наиболее полезная информация сгенерирована, когда Вы используете json/json-pretty формат для вывода, потому что большая информация тестовой установки не печатается, если Вы используете csv/tsv формат. И -s и -f являются просто дополнительными, но если Вы хотите автоматизировать свое измерение, они могли бы быть полезными.

, Кроме того, можно найти список серверов, которые speedtest использует на этом адрес в форме XML-файла или на этом адресе с доступным для поиска полем: ссылка .

0
ответ дан 23 November 2019 в 10:22

Я хотел что-то более усовершенствованное, чем 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 в "тихом" режиме (-s).

Это - более универсальное решение, которое может быть использовано другими приложениями. Мне удалось точно определить сетевую проблему ISP с ним, это привело к удвоению моего SFTP нисходящая скорость, которая привела к увеличенному счастью.

0
ответ дан 7 December 2019 в 12:27

Я регулярно использую что-то вроде этого:

% wget -O /dev/null --progress=dot:mega http://cachefly.cachefly.net/10mb.test ; date
--2020-01-06 03:31:05--  http://cachefly.cachefly.net/10mb.test
Resolving cachefly.cachefly.net (cachefly.cachefly.net)... 2607:7700::18:0:1:cdea:afaf, 205.234.175.175
Connecting to cachefly.cachefly.net (cachefly.cachefly.net)|2607:7700::18:0:1:cdea:afaf|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10485760 (10M) [application/octet-stream]
Saving to: <</dev/null>>

     0K ........ ........ ........ ........ ........ ........ 30% 3.02M 2s
  3072K ........ ........ ........ ........ ........ ........ 60% 3.97M 1s
  6144K ........ ........ ........ ........ ........ ........ 90% 3.94M 0s
  9216K ........ ........                                    100% 3.99M=2.8s

2020-01-06 03:31:08 (3.62 MB/s) - <</dev/null>> saved [10485760/10485760]

Mon Jan  6 03:31:08 CST 2020
%

Вы можете изменить часть 10 МБ в /10mb.test на 1 МБ , 4 МБ , 5 МБ , 10 МБ , 50 МБ , 100 МБ , 200 МБ , 400 МБ , 2000 МБ , 4000 МБ и, возможно, некоторые другие значения.

Вы также можете изменить часть - progress = dot: mega на - progress = dot: default , - progress = dot: binary , - прогресс = точка: мега и - прогресс = точка: гига ; этот параметр помогает вам увидеть, насколько быстро идет загрузка, и сохранить более одного чтения в течение всего времени загрузки, что полезно, когда вам нужно поделиться результатами с кем-то или просто сохранить их для своих собственных записей как своего рода граф.

8
ответ дан 6 January 2020 в 09:41

Для получения диаграмм + представления репрезентативных фактических скоростей с высоты 30 000 футов

Мне было нужно:

  • Обширное, репрезентативное представление о реальных скоростях с несколькими поставщиками услуг Интернета
  • Скорость загрузки + задержки туда и обратно . Не только скорость загрузки.
  • Устраните предвзятость интернет-провайдеров и возможные уловки, которые они могут использовать, чтобы определенные тесты скорости отображались быстрее, чем большинство других скоростей.
  • Графический вывод высокого уровня, а не просто цифры. Одна картинка стоит 1000 слов

Не найдя ничего, отвечающего всем этим требованиям, я написала свою, по возможности избегая изобретения велосипеда.

Под капотом я использовал speedtest-cli для выбора интернет-провайдера и метрик и R/ggplot для построения графиков. Код был хорошо протестирован на Ubuntu 16.04, 18.04 и 20.04.

В выходных данных представлены 3 основных показателя (время загрузки, выгрузки и проверки связи) для 20 ближайших к вам (тестеру) центров обработки данных, а также предполагаемое расстояние и имена интернет-провайдеров.

Исходный код

Весь код доступен на github с практическими рекомендациями, примерами и моей историей поиска лучших скоростей.

Весь этот код основан на интерфейсе командной строки. Средство просмотра изображений также можно вызвать из командной строки.

Пример диаграмм, которые он генерирует

После обновления плана (скорости DL отличные, скорости UL не очень)

results 2020-05-25

Ранее аннотированный вручную тест, проверяющий теорию:

manually annotated earlier test

1
ответ дан 5 July 2020 в 00:43

Другие вопросы по тегам:

Похожие вопросы: