Networking Lifehack

Проверка скорости интернета из терминала

На сервере нет браузера, а скорость канала проверить нужно. Три способа: speedtest-cli, iperf3 и обычный curl.

Проверено: Ubuntu 24.04, Debian 12
Проверка скорости интернета из терминала

Веб-спидтесты требуют браузера и JavaScript. На сервере ни того, ни другого нет — измеряем из консоли.

Способ 1: speedtest-cli

Тот же Speedtest.net, только в терминале:

sudo apt install -y speedtest-cli
speedtest-cli

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

speedtest-cli --simple

Выбрать конкретный сервер — сначала посмотрите список ближайших:

speedtest-cli --list | head -20
speedtest-cli --server НОМЕР

Совет. Автоматически выбранный сервер не всегда ближайший по реальному маршруту. Для повторяемых измерений всегда фиксируйте один и тот же сервер через --server.

Способ 2: iperf3 между своими серверами

Это точнее: измеряется канал между вашими узлами, а не до случайного публичного сервера.

На принимающей стороне:

sudo apt install -y iperf3
iperf3 -s

На отправляющей:

iperf3 -c IP_СЕРВЕРА -t 20

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

  • -t 20 — длительность теста в секундах
  • -R — обратное направление, измерить скачивание
  • -P 4 — четыре параллельных потока, покажет реальный потолок канала
  • -u -b 100M — UDP-тест на заданной скорости, видно потери пакетов

Предупреждение. iperf3 по умолчанию слушает порт 5201. Открывайте его в firewall только на время теста и только для конкретного IP — публично доступный iperf-сервер используют для усиления атак.

Способ 3: curl на большой файл

Без установки чего-либо — скачиваем тестовый файл и смотрим скорость:

curl -o /dev/null -w "Скорость: %{speed_download} байт/с\nВремя: %{time_total} с\n" \
  https://speed.cloudflare.com/__down?bytes=100000000

Перевод в мегабиты:

curl -o /dev/null -s -w "%{speed_download}" \
  https://speed.cloudflare.com/__down?bytes=100000000 | \
  awk '{printf "%.1f Mbps\n", $1*8/1000000}'

Что мешает измерению

  • Один поток упирается не в канал. TCP на длинном маршруте с потерями не разгонится. Используйте -P 4 у iperf3
  • Диск вместо сети. Пишите в /dev/null, а не на диск — иначе измерите скорость записи
  • Соседи по гипервизору. На VPS скорость плавает, делайте несколько замеров в разное время

Итог

Для быстрой оценки — speedtest-cli --simple. Для точного измерения своего канала — iperf3 с несколькими потоками. Для проверки без установки — curl с выводом %{speed_download}.