Speedtest CLI на сервере: проверка скорости канала из консоли

Установка Speedtest CLI от Ookla на Linux-сервер без репозитория, выбор ближайшего тестового сервера, чтение результата и проверка IPv4/IPv6. Ubuntu, Debian, AlmaLinux.

7 октября 2026 г.·4 мин чтения·speedtest, network, linux

Speedtest CLI — консольная версия speedtest.net от Ookla. Запускается на сервере без графики и показывает задержку, скорость загрузки и отдачи и потери пакетов. Это самый быстрый способ понять, упирается ли ваш проект в канал сервера или проблема где-то дальше по маршруту.

Ниже — установка из готовой сборки, выбор правильного тестового сервера (по умолчанию Speedtest иногда промахивается на другой континент) и разбор типичных ошибок.

1. Установка

Официальный скрипт установки через репозиторий поддерживает не все дистрибутивы: на Debian 12 он отвечает This distribution version is not currently supported. Надёжнее взять готовый бинарник с сайта Speedtest — он работает на любом Linux и не тянет зависимостей.

# Сборка для 64-битных серверов x86_64
curl -LO https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz

# Распаковываем только сам бинарник в /usr/local/bin
tar -xzf ookla-speedtest-1.2.0-linux-x86_64.tgz -C /usr/local/bin speedtest

# Архив больше не нужен
rm ookla-speedtest-1.2.0-linux-x86_64.tgz

speedtest --version

Сборки для ARM и свежие версии — на официальной странице Speedtest CLI. Команды одинаковы для Ubuntu, Debian и AlmaLinux, потому что пакетный менеджер не задействован.

2. Первый запуск

speedtest

При первом запуске программа попросит принять лицензию — напишите YES и нажмите Enter. Больше спрашивать не будет.

Для запуска из скриптов или по cron условия принимаются сразу ключами:

speedtest --accept-license --accept-gdpr

Тест расходует трафик. Один прогон на гигабитном порту съедает 1–2 ГБ. Если на тарифе ограничен месячный трафик, не ставьте Speedtest в cron каждые пять минут.

3. Выбор ближайшего сервера

Speedtest определяет местоположение по IP-адресу и подбирает тестовый сервер сам. Для серверных подсетей геолокация часто врёт, и тест уходит на другой конец света: задержка 150 мс, скорость вдвое ниже реальной.

Правильнее выбрать сервер вручную — в том же городе, где стоит VPS. Список серверов по названию города можно вытащить из API speedtest.net. Заодно команда покажет, есть ли у сервера IPv6 — это пригодится ниже.

# Вместо Frankfurt подставьте Amsterdam, Helsinki, Moscow и т.д.
curl -s "https://www.speedtest.net/api/js/servers?engine=js&search=Frankfurt&limit=8" | python3 -c '
import json, socket, sys
for s in json.load(sys.stdin):
    try:
        socket.getaddrinfo(s["host"].split(":")[0], None, socket.AF_INET6); ip = "IPv4 + IPv6"
    except OSError:
        ip = "только IPv4"
    print(s["id"], "|", s["sponsor"], "|", ip)'

Число в начале каждой строки — номер сервера. Запускаем тест на него ключом -s:

speedtest -s 31120

4. Как читать результат

Поле Что значит
Server Сервер и город, с которым шёл тест
Idle Latency Задержка в покое. Чем меньше, тем лучше
Download Скорость загрузки — как быстро сервер получает данные
Upload Скорость отдачи — как быстро сервер отправляет. Для сайтов, VPN и раздачи файлов важна именно она
строки с ms под скоростями Задержка под нагрузкой. Если сильно выше Idle Latency — канал забит
Packet Loss Потери пакетов, норма 0.0%
Result URL Ссылка на результат на speedtest.net, удобно приложить к тикету

Ожидания: на порту 1 Гбит/с нормальный результат 850–900 Мбит/с, остальное уходит на служебные заголовки. На порту с меньшей полосой результат будет чуть ниже её номинала.

5. IPv4 и IPv6

Если у вашего сервера есть IPv6 и у тестового сервера он тоже есть, Speedtest пойдёт по IPv6. Маршруты по двум протоколам различаются, поэтому и цифры могут отличаться, особенно задержка.

Чтобы проверить скорость именно по IPv4, выберите из списка шага 3 сервер с пометкой «только IPv4» — Speedtest сам подключится к нему по IPv4.

Проверить, что IPv6 на сервере вообще работает:

ping -6 -c 4 2606:4700:4700::1111

0% packet loss — работает. Network is unreachable или полные потери — IPv6 не настроен. Для теста скорости это не страшно, Speedtest переключится на IPv4.

Ключи -i и -I не переключают протокол. Они выбирают исходящий адрес и интерфейс. Если указать IPv4-адрес, а сервер с IPv6, тест упадёт с Cannot open socket. Выбирайте сервер «только IPv4».

Полезные ключи

Команда Что делает
speedtest -L Ближайшие серверы по мнению Speedtest
speedtest -s НОМЕР Тест на конкретный сервер
speedtest -a Автоподбор единиц: Кбит/с, Мбит/с, Гбит/с
speedtest --progress=no Без полосы прогресса, для логов
speedtest -f json Результат в JSON для скриптов
speedtest --help Все ключи

Частые ошибки

«This distribution version is not currently supported» — так отвечает скрипт установки из репозитория на новых системах. Ставьте бинарник из шага 1.

Сервер в другой стране, пинг больше 100 мс — геолокация по IP промахнулась. Найдите сервер в своём городе и укажите его через -s. По той же причине speedtest -L может показывать далёкие серверы.

«Connection refused» или «Cannot open socket» — выбранный тестовый сервер не принял соединение. Если тест продолжился на другом сервере — ничего делать не нужно, если остановился — выберите другой номер.

«Could not retrieve or read configuration» — не удалось связаться со speedtest.net. Проверьте интернет на сервере: curl -I https://www.speedtest.net. Если запускали с -i и IPv6-адресом — уберите ключ, у сайта speedtest.net нет IPv6.

Скорость заметно ниже тарифной — сначала убедитесь, что тестовый сервер рядом и пинг маленький. Потом повторите на два-три разных сервера: медленным бывает сам тестовый сервер. Если скорость низкая везде — приложите несколько Result URL к обращению в поддержку tanaka.host.

Удаление

Программа — один файл:

rm /usr/local/bin/speedtest
rm -r ~/.config/ookla     # настройки и принятая лицензия

Speedtest проверяет канал до ближайшего узла. Если нужно измерить скорость между двумя своими серверами — это iperf3, а если скорость в норме, а сайт всё равно тормозит у конкретных клиентов — трассировка mtr.