Вместо того, чтобы заходить на такие сайты, как speedtest.net , я хочу проверить текущую скорость интернета с терминала в Ubuntu. Как я могу это сделать?
Я рекомендую 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
Используя pip install --user speedtest-cli
получает Вас версия, которая является, вероятно, более новой, чем одно доступное из репозиториев Вашего распределения.
speedtest-cli
находится в репозиториях Ubuntu теперь. Для Ubuntu 16.04 (Гостеприимное) и более позднее использование:
sudo apt install speedtest-cli
speedtest-cli
попробуйте это в командной строке
wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
попробуйте это тоже
sourceforge.net/projects/tespeed/
получили это по ссылке выше
Если вас не беспокоит установка 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
Простой 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
Вы также можете попробовать 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
Мне нравится Ubuntu Cli.
speedometer -r eth0
Просмотр графика скорости входящих данных в режиме реального времени.
простой однострочник, который проверяет, сколько времени требуется для загрузки 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))
объяснение:
8 * 100mb / $t
вы можете использовать tespeed
. это тест скорости сети терминала, который использует серверы из Speedtest.net
. Он использует ближайший тестовый сервер, но также может использовать сервер, указанный пользователем.
git clone git://github.com/Janhouse/tespeed.git
cd tespeed
git submodule init
git submodule update
./tespeed.py
для получения дополнительной информации:
./tespeed.py -h
это предоставит больше возможностей для проверки скорости.
Запустите несколько экземпляров 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 секунд недостаточно для завершения загрузки).
Чтобы удобно получить скорость загрузки в битах в секунду, я определил следующее в моем файле $ 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 в битах в секунду (бит / с) вместо стандартных байтов в секунду (бит / с)
Поскольку speedtest-cli является приложением Python, его намного проще установить, выполнив:
pip install speedtest-cli
или:
easy_install speedtest-cli
В зависимости от того, как Python установлен в вашей системе. , вам может потребоваться быть пользователем root, чтобы сделать вышеупомянутое.
Ну, я использую wget
для этого. Этот маленький инструмент говорит мне, какая у меня скорость.
Чтобы использовать его, просто укажите на файл в Интернете, который является относительно большим, чтобы вы могли получить более точную оценку.
Например, набрав
: wget http://hostve.com/neobuntu/pics/Ubu1.avi
начнёт скачивать файл Ubu1.avi и покажет, с какой скоростью он скачивает.
Конечно, есть несколько рекомендаций:
Проверь себя на хороших серверах. В случае с моей ссылкой скорость составляет менее 200 КБ, поэтому, если у вас более высокая скорость, узким местом для вас будет сервер, а не ваша фактическая скорость.
Самая высокая скорость, которую вы увидите, это максимальная скорость, которую может предложить ваше соединение и соединение с сервером. Если ваше соединение имеет размер 512 КБ, а место, где вы скачиваете, - 400 КБ, ваше максимальное соединение будет 400 КБ, поскольку оно является максимальным для сервера, с которого вы загружаете.
Вам необходимо выполнить тест как минимум 5 раз, чтобы иметь надежную проверку скорости или, по крайней мере, сделать это в течение минуты или двух. Это поможет вам провести более точную проверку.
Вам нужно иметь как минимум 4 или 5 различных источников тестирования, чтобы иметь более точную скорость. Никогда не проводите тестирование только с одного и того же сайта, так как это может зависеть от вашего расстояния до него, проблем с сервером и подключениями к нему и т. Д. Всегда тестируйте с разных серверов.
ARIA2
Это альтернатива wget
. Недостатком wget
является отсутствие параллельных соединений. Чтобы использовать aria2, нам нужно скачать его:
sudo apt-get install aria2
. Использовать его просто:
На изображении ] -x 4 - это сколько параллельных соединений мы хотим использовать. Параметр CN в следующей строке показывает, сколько активных параллельных соединений было разрешено загружать с этого сайта. В этом случае CN равен 4. Но если бы мы попытались иметь больше соединений, мы получили бы что-то вроде этого:
Мы установили 8 параллельных соединений, но сайт разрешен только максимум 5, как показано CN: 5. Это может быть решено с помощью опции -j , которая сообщает aria2c максимальное количество одновременных соединений, которые мы хотим (который по умолчанию равен 5), но если сервер ограничил это, -j не будет работать.
На самом деле, Ookla, поставщик Speedtest выпустил утилиту командной строки, которая измеряет Вашу скорость против огромного количества распространения серверов во всем мире. Можно найти инструкции относительно того, как установить его на этом ссылка , и можно использовать его довольно простой путем выполнения:
speedtest -s XXXX -f csv|tsv|jsonl|json|json-pretty
, где -s
наборы идентификатор сервера, против которого Вы хотите протестировать свою интернет-скорость, -f
, определяет формат вывода. Я думаю, что наиболее полезная информация сгенерирована, когда Вы используете json/json-pretty
формат для вывода, потому что большая информация тестовой установки не печатается, если Вы используете csv/tsv
формат. И -s
и -f
являются просто дополнительными, но если Вы хотите автоматизировать свое измерение, они могли бы быть полезными.
, Кроме того, можно найти список серверов, которые speedtest использует на этом адрес в форме XML-файла или на этом адресе с доступным для поиска полем: ссылка .
Я хотел что-то более усовершенствованное, чем speedtest.net и различные решения, которые полагаются только на единственный веб-сайт. Таким образом, я сделал вещь, я обычно делаю и записал свое собственное решение:
https://github.com/cubiclesoft/network-speedtest-cli
Из списка функций:
Это - более универсальное решение, которое может быть использовано другими приложениями. Мне удалось точно определить сетевую проблему ISP с ним, это привело к удвоению моего SFTP нисходящая скорость, которая привела к увеличенному счастью.
Я регулярно использую что-то вроде этого:
% 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
, - прогресс = точка: мега
и - прогресс = точка: гига
; этот параметр помогает вам увидеть, насколько быстро идет загрузка, и сохранить более одного чтения в течение всего времени загрузки, что полезно, когда вам нужно поделиться результатами с кем-то или просто сохранить их для своих собственных записей как своего рода граф.
Мне было нужно:
Не найдя ничего, отвечающего всем этим требованиям, я написала свою, по возможности избегая изобретения велосипеда.
Под капотом я использовал speedtest-cli
для выбора интернет-провайдера и метрик и R/ggplot
для построения графиков. Код был хорошо протестирован на Ubuntu 16.04, 18.04 и 20.04.
В выходных данных представлены 3 основных показателя (время загрузки, выгрузки и проверки связи) для 20 ближайших к вам (тестеру) центров обработки данных, а также предполагаемое расстояние и имена интернет-провайдеров.
Весь код доступен на github с практическими рекомендациями, примерами и моей историей поиска лучших скоростей.
Весь этот код основан на интерфейсе командной строки. Средство просмотра изображений также можно вызвать из командной строки.