42

Проверка скорости вашей локальной сети с помощью 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 в своей локальной сети. Штука достаточно удобная и сильно упрощает поиск проблем в перспективе (при их появлении).

Лига Сисадминов

2.6K постов19.1K подписчика

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Вы смотрите срез комментариев. Показать все
13
DELETED
Автор поста оценил этот комментарий

Не понял, а iperf отменили уже?

раскрыть ветку (17)
3
Автор поста оценил этот комментарий
Нет, не отменили. Но, когда далёкому нужно продемонстрировать что с сетью проблемы, это то что нужно.
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Просто другое дело, что пользователь не умеет в консоль. Тогда да.
1
Автор поста оценил этот комментарий

Вот я тоже не понял. Я вот это "Ок. А что насчёт тестов скорости в локальной сети? Ну, в принципе у нас вроде как есть iperf. Но может еще что-то менее кондовое?" для кого написал?

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

Я тоже не понял, нахуя столько действий, чтобы iperf не запускать?

Ну разверни ты iperf в докере, если такой фанат докера...

раскрыть ветку (6)
Автор поста оценил этот комментарий

Для особо одарённых.
Я рассматривал альтернативу, а не замену.
Что-нибудь со свистелками и перделками, как нравится современному пользователю.

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

А пользователю зачем скорость локалки мерять? Пусть админы меряют....

На крайняк, пользователь запустит копирование в шару, увидит скорость своей сети... А если надо найти проблему между (как пример) унифай контроллером и контроллером домена - это не к пользователям

раскрыть ветку (4)
1
Автор поста оценил этот комментарий
Копирование по шаре и по http это же одно и тоже в корп сетях) полезный продукт самодиагностики
0
Автор поста оценил этот комментарий

Админ - это тоже пользователь если чо.

раскрыть ветку (2)
Автор поста оценил этот комментарий

И? То есть админы любят свистелки и перделки?

Чёт у меня таких знакомых нет, все отлично iperf воспользуются, там нет проблем в консоли две строки (на сервере и клиенте) набрать...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В статье черным по белому написано что рассматриваются варианты, а не замена. Чё вы душнилы повылезали со своим iperf'ом?
Это не замена епт.

0
DELETED
Автор поста оценил этот комментарий
Просто я гонял тоже утилиту на nas от qnap, также в контейнере. Но тоже самое делал и через iperf3.
0
Автор поста оценил этот комментарий
Iperf не везде получится запустить. Если пользователь на удалённой площадке работает с тонкого клиента например? Имхо, штука из поста имеет право на жизнь
раскрыть ветку (5)
3
DELETED
Автор поста оценил этот комментарий

Эм...то есть докер есть возможность запустить, а iperf нету?

Если тонкий клиент - винда, то да. Но насколько встречаю,то тонкий клиент чаще - линуха и iperf3 -c там работает. А у себя запускаете iperf3 -s с адресом. Разве не так? Но понятно, что докер будет у вас крутится на стороне, так как маловероятно, что вы у клиента поставите сначала утилиту в докере.

раскрыть ветку (4)
3
Автор поста оценил этот комментарий

а что винда? прекрасно он и на винде работает, у меня одна из сеток на винде

2
Автор поста оценил этот комментарий
Докер на хосте клиента и не надо запускать. Там главное чтобы браузер был. Клиент тупо урлу в браузер вбивает и проводит тест
0
Автор поста оценил этот комментарий

Cmd и powershell на тонком не запускаются?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий
На все тонкие клиенты завезли виртуализацию на чипы, чтобы завести докер?
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества