> Полный список статей есть в [llms.txt](https://docs.f3cloud.com/llms.txt). Markdown-версия есть у каждой страницы, достаточно добавить .md к её адресу. Эта страница в Markdown: [https://docs.f3cloud.com/ru/network/speedtest-guide.md](https://docs.f3cloud.com/ru/network/speedtest-guide.md).

# Проверка скорости сети на Linux-сервере через Speedtest

Как измерить скорость сети на Linux-сервере через официальный Speedtest CLI. Установка на Ubuntu и Debian, выбор ближайшего сервера, тест через IPv4 и IPv6, расшифровка результатов и частые ошибки.

**Speedtest CLI** – это официальная программа от Ookla, создателей сайта speedtest.net, для проверки скорости интернета прямо из консоли сервера. Она измеряет задержку, скорость загрузки и отдачи и показывает, теряются ли пакеты.

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

***

## 1. Установите Speedtest

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

```bash
# Скачиваем официальную сборку Speedtest для 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](https://www.speedtest.net/apps/cli).

***

## 2. Запустите тест

```bash
speedtest
```

При первом запуске Speedtest попросит принять лицензионное соглашение. Напишите `YES` и нажмите <kbd>Enter</kbd>, больше он спрашивать не будет.

<figure><img src="https://docs.f3cloud.com/img/speedtest-license.png" alt="Запрос на принятие лицензии при первом запуске Speedtest"><figcaption><p>Первый запуск Speedtest</p></figcaption></figure>

> **Запуск в скриптах.**
>
> Чтобы Speedtest не задавал вопросов, например при запуске по расписанию, сразу примите условия ключами: `speedtest --accept-license --accept-gdpr`.

Тест расходует заметный объём трафика. В наших проверках один запуск занимал от 1 до 2 ГБ. Это важно, если на тарифе ограничен месячный трафик, например на **DE-Promo**.

***

## 3. Выберите ближайший сервер

По умолчанию Speedtest сам выбирает сервер для теста, определяя местоположение по IP-адресу. Иногда он ошибается и выбирает сервер на другом конце света. Тогда задержка получается огромной, а скорость ниже реальной.

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

```bash
# Ищем серверы Speedtest во Франкфурте. Вместо Frankfurt можно
# указать Amsterdam, Helsinki или любой другой город
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)'
```

<figure><img src="https://docs.f3cloud.com/img/speedtest-servers.png" alt="Список серверов Speedtest во Франкфурте с номерами"><figcaption><p>Серверы Speedtest во Франкфурте</p></figcaption></figure>

Число в начале строки – это номер сервера. Запустите тест на нужный сервер ключом `-s`.

```bash
# Запускаем тест на сервер с номером 31120
speedtest -s 31120
```

<figure><img src="https://docs.f3cloud.com/img/speedtest-result.png" alt="Результат Speedtest с задержкой, скоростью загрузки и отдачи"><figcaption><p>Результат теста на сервер во Франкфурте</p></figcaption></figure>

***

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

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

> **Какую скорость ожидать.**
>
> На тарифах с портом **1 Гбит/с** нормальный результат около 850–900 Мбит/с, часть скорости уходит на служебные данные.\
> На **DE-Promo** порт **125 Мбит/с**, и результат будет немного ниже этой цифры.

***

## Тест через IPv4 и IPv6

У каждого VPS в F3 Cloud есть и IPv4, и IPv6. Если у тестового сервера тоже есть IPv6, Speedtest проверяет скорость именно через него. Маршруты по IPv4 и IPv6 бывают разными, поэтому и результаты могут отличаться, особенно задержка.

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

Чтобы понять, работает ли IPv6 на вашем сервере, выполните команду ниже.

```bash
# Отправляем 4 запроса на DNS-сервер Cloudflare по IPv6
ping -6 -c 4 2606:4700:4700::1111
```

Если пришли ответы и в конце написано `0% packet loss`, IPv6 работает.\
Если команда пишет `Network is unreachable` или все пакеты теряются, IPv6 на сервере не настроен или не работает. Для теста скорости это не страшно, ведь Speedtest сам переключится на IPv4. Но если IPv6 нужен вашему проекту, напишите нам в поддержку, поможем настроить.

> **Ключи -i и -I не переключают тест на IPv4.**
>
> У Speedtest есть ключи для выбора сетевого адреса и интерфейса, но для смены протокола они не подходят. Если указать IPv4-адрес, тест на сервер с IPv6 завершится ошибкой `Cannot open socket`. Выбирайте сервер с пометкой «только IPv4».

***

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

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

***

## Частые вопросы

<details>

<summary>Пишет «This distribution version is not currently supported»</summary>

Так отвечает официальный скрипт установки через репозиторий на новых системах, например на Debian 12. Установите готовую сборку, как описано в шаге 1, она работает на любом Linux.

</details>

<details>

<summary>Speedtest выбрал сервер в другой стране, пинг больше 100 мс</summary>

Speedtest определил местоположение сервера по IP-адресу и ошибся. Найдите сервер в своём городе командой из шага 3 и запустите тест на него ключом `-s`. По той же причине команда `speedtest -L` может показывать далёкие серверы.

</details>

<details>

<summary>Ошибка «Connection refused» или «Cannot open socket»</summary>

Выбранный сервер Speedtest не принял подключение, такое иногда бывает. Если тест всё же продолжился на другом сервере, ничего делать не нужно.\
Если тест остановился, выберите другой сервер из списка и запустите тест на него.

</details>

<details>

<summary>Ошибка «Could not retrieve or read configuration»</summary>

Speedtest не смог связаться с сайтом speedtest.net, чтобы получить настройки. Проверьте, что интернет на сервере работает, например командой `curl -I https://www.speedtest.net`. Если вы запускали тест с ключом `-i` и IPv6-адресом, уберите этот ключ, ведь у сайта speedtest.net нет IPv6.

</details>

<details>

<summary>Скорость намного ниже, чем указано в тарифе</summary>

Сначала проверьте, что сервер для теста находится рядом, а пинг небольшой. Затем повторите тест на два-три разных сервера, иногда медленным оказывается сам тестовый сервер. Если скорость низкая на всех, отправьте нам в поддержку ссылки **Result URL** из нескольких тестов, разберёмся.

</details>

<details>

<summary>Как удалить Speedtest</summary>

Программа состоит из одного файла, удалите его командой `rm /usr/local/bin/speedtest`.\
Настройки и принятая лицензия хранятся в папке `~/.config/ookla`, её тоже можно удалить.

</details>

***

## Наши ресурсы

**Telegram-канал:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Сайт хостинга:** [https://f3cloud.com](https://f3cloud.com/ru)
