Проверка скорости вашей локальной сети с помощью OpenSpeedTest

Проверка скорости вашей локальной сети с помощью OpenSpeedTest


OpenSpeedTest - удобный инструмент для тестирования скорости сети, или поиска проблем в случае если она работает не так как следовало бы.

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

Ок. А что насчёт тестов скорости в локальной сети? Ну, в принципе у нас вроде как есть iperf. Но может еще что-то менее кондовое?
Что-то еще есть. Это как раз https://github.com/openspeedtest/Speed-Test.

OpenSpeedTest - open source решение, предоставляющее возможность оценки производительности сети, и не требующее установки каких-либо агентов или плагинов на стороне клиента. После установки доступ к инструменту можно получить из любого современного браузера. Удобней всего развернуть docker-контейнер с OpenSpeedTest из готового образа (nginx+alpine).
Запустить OpenSpeedTest можно как с готовым, и автоматически обновляемым LetsEncrypt SSL сертификатом, так и без него. В статье мы рассмотрим оба варианта.

Для запуска приложения нам понадобится только какая-нибудь машина с Linux, где мы сможем запускать контейнеры. В статье все действия будут проводиться на виртуалке с Ubuntu 22.04. Для других ОС отличие будет в основном только в методе установки Docker.

Установка Docker

Понятно, что большинство этот пункт могут воспроизвести с закрытыми глазами, но пусть будет.

Итак. Для начала позаботимся о скачивании и установке GPG ключа:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

После выполнения команды добавим официальный репозиторий Docker:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Установим нужные зависимости:

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y

Перед установкой Docker на всякий случай обновим систему:

sudo apt-get update

Ну и поставим уже сам Docker CE со всем необходимым:

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Во избежание запуска Docker с sudo и прочими повышениями привелегий, добавляем пользователя в группу docker:

 sudo usermod -aG docker $USER

Для проверки работы нужно перелогиниться в систему, после чего выполнить например:

docker ps

Если всё хорошо, должна показаться примерно такая картина:

  CONTAINER ID IMAGE     COMMAND     CREATED     STATUS     PORTS

Всё готово. Теперь можно приступить к более интересной части.

Развёртывание OpenSpeedTest

Сначала рассмотрим вариант запуска без LetsEncrypt. Всё, что вам нужно сделать для этого - запустить следующую команду:

docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest

Запуск контейнера может занять некоторое время (вполне может повисеть пару минут). После того как контейнер запустится, откройте браузер и введите http://SERVER:3000, где SERVER - IP адрес сервера на котором размещён контейнер с OpenSpeedTest. После открытия веб-интерфейса приложения вам достаточно нажать кнопку Start, чтобы запустить проверку:

Никто не мешает так же подключаться к нему и по https, для этого в адресной строке браузера нужно будет ввести https://SERVER:3001.

Запуск с LetsEncrypt

Если вы предпочитаете разворачивать контейнеры с поддержкой LetsEncrypt SSL, вам нужно соблюсти несколько условий:

  • иметь белый IP
  • доменное имя, которое преобразуется в IP-адрес хост-сервера
  • почта

Если всё в наличие, то запуск контейнера с поддержкой LetsEncrypt SSL можно произвести следующей командой:

docker run -e ENABLE_LETSENCRYPT=True -e DOMAIN_NAME=yourdomain -e USER_EMAIL=youremail --restart=unless-stopped --name openspeedtest -d -p 80:3000 -p 443:3001 openspeedtest/latest

После удачного запуска контейнера, сервис будет доступен по адресу https://SERVER:443.

Заключение

В целом это все действия, которые потребуется сделать для запуска собственного сервера SpeedTest в своей локальной сети. Штука достаточно удобная и сильно упрощает поиск проблем в перспективе (при их появлении).




















Report Page