Если нужно срочно проверить скорость интернета, но нет желания (или прав) что‑то устанавливать — ниже собраны практичные способы: одинлайнер через curl + python3, загрузочный тест через curl/wget и браузерные сервисы. Разберём команду по шагам, дадим безопасные альтернативы и покажем, как автоматизировать замеры.
TL;DR
Самый быстрый способ из терминала без установки пакетов:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
Что делает: скачивает последнюю версию speedtest.py (speedtest-cli) и сразу запускает её в Python.
⚠️ Риск: это прямой запуск кода из интернета. Ниже — как сделать безопаснее (скачать → проверить → запустить) и альтернативы без Python.
Подробный разбор основной команды
Команда:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
Части и смысл:
- curl -s URL — скачивает файл по ссылке.
- -s — «тихий» режим (без прогресса и лишнего вывода).
- URL указывает на сырой (raw) файл speedtest.py из репозитория sivel/speedtest-cli на GitHub.
|
(pipe) — передаёт вывод curl на вход следующей команде.- python3 – — запускает интерпретатор Python 3 и говорит ему читать код из стандартного ввода (то, что пришло по |).
В итоге: скрипт speedtest-cli запускается сразу из памяти, без сохранения на диск.
Что вы увидите в выводе
Обычно показываются:
- Ping (задержка, ms)
- Download (скорость загрузки из интернета к вам, Мбит/с)
- Upload (скорость выгрузки от вас в интернет, Мбит/с)
- Выбранный сервер теста
Пример (формат может отличаться):
Retrieving speedtest.net configuration...
Testing from YourISP (203.0.113.10)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Example ISP (City) [5.20 km]: 9.123 ms
Testing download speed........................................
Download: 247.86 Mbit/s
Testing upload speed..................................................
Upload: 52.41 Mbit/s
Как сделать безопаснее (рекомендуется)
Запускать чужой код «на лету» — не лучшая привычка. Более безопасный вариант:
# 1) Скачайте файл
curl -O https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
# 2) Посмотрите содержимое (хотя бы бегло)
less speedtest.py
# 3) Запустите локально
python3 speedtest.py
Дополнительно:
- Не запускайте такие команды через sudo.
- Сохраняйте файл с конкретной версией/коммитом (закреплённый хеш), если нужна повторяемость результатов.
Полезные флаги speedtest-cli
Посмотреть список опций можно так:
python3 speedtest.py --help
# или (онлайн-способ)
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 - --help
Часто используемые параметры (доступность может зависеть от версии):
- –simple — компактный вывод (ping, download, upload).
- –bytes — показывать результаты в байтах/сек (а не в битах/сек).
- –json или –csv — машинно‑читаемый формат для логирования/графиков.
- –list — вывести список доступных серверов теста.
- –server ID — выбрать конкретный сервер по ID.–server ID — выбрать конкретный сервер по ID.
- –source IP — указать локальный IP/интерфейс для исходящих соединений.
- –timeout SECONDS — таймаут соединения.
- –secure — использовать HTTPS, где возможно.
Примеры:
# Минимальный лаконичный отчёт
python3 speedtest.py --simple
# JSON для дальнейшей обработки/логирования
python3 speedtest.py --json
# Тест на конкретном сервере
python3 speedtest.py --server 12345
Альтернативы без установки пакетов
1) Через браузер
- speedtest.net — классика, быстрый старт.
- fast.com — простой тест от Netflix, минимум интерфейса.
Плюсы: ничего не ставим вообще, результаты понятны. Минус: сложно автоматизировать, завязано на GUI.
2) Тест загрузки «сырым» трафиком через curl/wget
Если нужен приближённый замер загрузки без Python и без установки чего-либо:
# Пример с curl: скачиваем большой файл и отбрасываем
curl -L -o /dev/null -w "\nSpeed: %{speed_download} bytes/s\n" "https://<URL_на_большой_файл>"
Где взять ссылку? Любой крупный файл на быстром зеркале/CDN (например, ISO‑образ дистрибутива Linux). Что важно:
- Файл должен быть достаточно большим (100–1000 МБ), иначе измерение будет кратковременным и может быть неточным.
- Лучше выбрать географически близкое зеркало.
wget‑вариант:
wget -O /dev/null "https://<URL_на_большой_файл>"
Интерпретация: это не полноценный спидтест, а замер реальной скорости скачивания с конкретного сервера. На результат сильно влияет выбранный сервер и его текущая нагрузка.
Совет: если канал «толстый», запускайте несколько параллельных загрузок (2–4 curl в фоне) исуммируйте, чтобы нивелировать ограничения одного TCP‑потока или конкретного CDN‑узла.
Автоматизация: логируем результаты по крону
Пример: ежедневный JSON‑лог без установки пакетов (файл скачан и проверен заранее):
# speedtest.py лежит в /usr/local/bin/speedtest.py и исполняемый
# сделайте один раз: chmod +x /usr/local/bin/speedtest.py
# Добавьте в cron (crontab -e)
0 6 * * * python3 /usr/local/bin/speedtest.py --json >> /var/log/speedtest.json
Для «онлайн‑способа» (с риском) можно так:
0 6 * * * curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 - --json >> /var/log/speedtest.json
Дальше логи удобно разбирать jq/awk или строить графики (Grafana/Plotly и т.п.).
Понимаем единицы измерения
- Мбит/с (megabit per second) — чаще в маркетинговых тарифах.
- МБ/с (megabyte per second) — полезно для оценки реальной скорости скачивания в менеджерах загрузок.
Пересчёт:
1 байт = 8 бит
100 Мбит/с ÷ 8 = ~12.5 МБ/с
Не забывайте про накладные расходы протоколов (TCP/IP, TLS) — «на проводе» скорость будет чуть ниже заявленной.
Частые проблемы и решения
- python3: command not found — Python не установлен. Либо используйте браузерные тесты, либо попросите установить python3 у администратора.
- curl: command not found — на минимальных системах curl отсутствует. Можно заменить на wget (если есть) или снова же — браузер.
- Медленный/плавающий результат — повторите тест в разное время, проверьте Wi‑Fi (интерференция), попробуйте проводное подключение, выбирайте другой сервер (–server).
- VPN/прокси — скорость тестируется через текущий маршрут. Отключите VPN, если хотите проверить «чистый» канал провайдера.
- Сервер теста перегружен — выберите другой (–list + –server).
Безопасность и приватность
- Команда curl … | python3 – выполняет удалённый код. Это удобно, но опасно. Предпочитайте схему «скачал → посмотрел → запустил».
- Не запускайте подобные команды с правами суперпользователя (sudo).
- Тест скорости соединяется с серверами третьих сторон. Ваш IP‑адрес и общие характеристики сети видны этим сервисам — это нормально для спидтестов, но учитывайте корпоративные политики.
Готовые шпаргалки
Однострочник (быстро, но рискованно):
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
Безопаснее (скачать → проверить → запустить):
curl -O https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
less speedtest.py
python3 speedtest.py --simple
JSON для логов:
python3 speedtest.py --json >> ~/speedtest.log
Приближённый замер загрузки без Python:
curl -L -o /dev/null -w "\nSpeed: %{speed_download} bytes/s\n" "https://<URL_на_большой_файл>"
Вывод
Проверить скорость интернета можно буквально одной командой и без установки пакетов. Для разового теста подойдёт curl | python3 -, но лучше — скачать скрипт, взглянуть на него и запускать локально. Если Python недоступен, используйте браузерные сервисы или «сырые» загрузки через curl/wget для приблизительной оценки. Добавьте минимальную автоматизацию — и у вас будут наглядные логи качества канала со временем.