Как проверить скорость и пинг до своего VPS: iperf3 и mtr на реальном примере
Проверил канал от дома до своего зарубежного VPS: скорость в обе стороны, в один и в восемь потоков, пинг и потери по всему маршруту. Показываю команды для сервера и Mac, свои результаты и как их читать, чтобы понять, где узкое место.
Содержание
- 1Что понадобится
- 2Шаг 1. iperf3 на сервере
- 3Шаг 2. iperf3 на своём компьютере
- 4Мои результаты и как их читать
- 📤 Отдача: компьютер → сервер
- 📥 Загрузка: сервер → компьютер
- 🔀 Загрузка в 8 потоков
- Что это значит
- 5Шаг 3. Пинг и потери: mtr
- Как читать mtr
- 6Шаг 4. Канал самого VPS
- 7Шаг 5. Выключите iperf3 на сервере
- 8Ошибки, на которые я наткнулся
- 9Чек-лист проверки
- 10Частые вопросы
- Чем iperf3 лучше обычного спидтеста?
- Почему скорость в один поток ниже, чем в несколько?
- Какой пинг до зарубежного VPS считается нормальным?
- Что значит 100 % потерь на узле в mtr?
- Безопасно ли оставлять iperf3 включённым на VPS?
- Как проверить скорость до VPS с Windows?
У меня есть VPS за границей. Сайты онлайн-спидтестов показывают скорость до своих серверов, а мне интересно другое: сколько выжимает канал именно между моим домом и моим сервером. Для этого есть две консольные утилиты: iperf3 меряет скорость, mtr — пинг и потери на каждом узле маршрута.
Ниже — пошаговая проверка с моими настоящими результатами и разбором, что они значат. IP-адреса и логины в примерах заменены.
Что понадобится
- 🖥️ VPS на Linux с доступом по SSH. У меня Ubuntu 26.04 LTS.
- 💻 Домашний компьютер. Я мерил с iMac, но команды те же на Linux и почти те же на Windows.
- 🔓 Открытый на сервере порт 5201 — его использует iperf3.
- 📴 Выключенный VPN. Иначе вы измерите туннель, а не канал.
Шаг 1. iperf3 на сервере
Подключитесь к VPS по SSH и установите iperf3:
apt install iperf3При установке Ubuntu спросит, запускать ли iperf3 как службу при загрузке:
Start Iperf3 as a daemon automatically? [yes/no]💡 Отвечайте no. Постоянно работающий iperf3 — открытая дверь: любой, кто найдёт порт, сможет гонять через ваш сервер трафик. Я ответил yes и потом получил ошибку, о ней ниже.
Запустите сервер на один замер:
iperf3 -s -1С ключом -1 он примет одно подключение и завершится. Для серии замеров запустите просто iperf3 -s, а потом остановите его сочетанием Ctrl + C.
Если на сервере включён файрвол ufw, откройте порт:
ufw allow 5201Если ufw не установлен (ufw: command not found), этот шаг пропустите. Но проверьте файрвол в панели хостера: там он часто называется «Firewall» или «Группы безопасности».
Шаг 2. iperf3 на своём компьютере
macOS — через Homebrew:
brew install iperf3Ubuntu и Debian: sudo apt install iperf3. Windows: скачайте сборку iperf3 с сайта iperf.fr и запускайте iperf3.exe из папки с ней.
Теперь три замера. Вместо 203.0.113.10 подставьте IP своего VPS.
iperf3 -c 203.0.113.10 -t 20 # отдача: компьютер → сервер
iperf3 -c 203.0.113.10 -t 20 -R # загрузка: сервер → компьютер
iperf3 -c 203.0.113.10 -t 20 -R -P 8 # загрузка в 8 потоков| Ключ | Что делает |
|---|---|
-c | режим клиента, дальше адрес сервера |
-t 20 | мерить 20 секунд вместо 10 по умолчанию |
-R | обратное направление: сервер отправляет, вы принимаете |
-P 8 | восемь параллельных соединений |
Мои результаты и как их читать
📤 Отдача: компьютер → сервер
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 4] 0.00-1.00 sec 13.9 MBytes 116 Mbits/sec 590 54.7 KBytes
[ 4] 1.00-2.00 sec 17.9 MBytes 150 Mbits/sec 0 1.33 MBytes
[ 4] 2.00-3.00 sec 26.1 MBytes 219 Mbits/sec 0 1.41 MBytes
...
[ 4] 18.00-19.00 sec 36.4 MBytes 304 Mbits/sec 0 2.03 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 4] 0.00-20.00 sec 569 MBytes 238 Mbits/sec 604 sender
[ 4] 0.00-20.06 sec 567 MBytes 237 Mbits/sec receiverГлавное — итог в последних строках: 238 Мбит/с. Что значат колонки:
- Bitrate — скорость за каждую секунду.
- Retr — сколько пакетов пришлось отправить повторно, потому что они потерялись. Чем меньше, тем лучше.
- Cwnd — «окно» TCP: сколько данных соединение отправляет, не дожидаясь подтверждения. Растёт, пока канал справляется.
✅ Здесь всё хорошо. Повторные отправки только в первую секунду, пока TCP нащупывал скорость, потом ноль. Окно растёт, скорость плавно поднимается до 300 Мбит/с.
📥 Загрузка: сервер → компьютер
[ 4] 0.00-1.00 sec 18.1 MBytes 152 Mbits/sec
[ 4] 1.00-2.00 sec 27.5 MBytes 231 Mbits/sec
[ 4] 3.00-4.00 sec 29.9 MBytes 251 Mbits/sec
[ 4] 5.00-6.00 sec 19.9 MBytes 166 Mbits/sec
[ 4] 8.00-9.00 sec 14.1 MBytes 118 Mbits/sec
...
[ 4] 19.00-20.00 sec 16.8 MBytes 141 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 4] 0.00-20.05 sec 377 MBytes 158 Mbits/sec 1344 sender
[ 4] 0.00-20.00 sec 373 MBytes 157 Mbits/sec receiver⚠️ Здесь интереснее. Первые пять секунд — 230–250 Мбит/с, потом скорость падает до 120–140 и там остаётся. Повторных отправок 1344: где-то по пути пакеты теряются.
🔀 Загрузка в 8 потоков
[ 4] 0.00-20.00 sec 237 MBytes 99.5 Mbits/sec receiver
[ 6] 0.00-20.00 sec 133 MBytes 55.7 Mbits/sec receiver
...
[ 18] 0.00-20.00 sec 147 MBytes 61.8 Mbits/sec receiver
[SUM] 0.00-20.00 sec 914 MBytes 384 Mbits/sec receiverВ восемь потоков вместе — 384 Мбит/с, в 2,5 раза больше, чем в один.
Что это значит
| Замер | Результат |
|---|---|
| Отдача, 1 поток | 238 Мбит/с |
| Загрузка, 1 поток | 157 Мбит/с |
| Загрузка, 8 потоков | 384 Мбит/с |
Канал широкий: восемь потоков легко набирают почти 400 Мбит/с. А одиночное соединение в сторону дома теряет пакеты под нагрузкой и проседает до 130–150. Скорее всего, ограничение на магистрали между странами: на ней одиночный поток упирается в потери, а несколько потоков их обходят.
На практике браузер, торренты и менеджеры загрузок, которые качают в несколько потоков, используют канал почти полностью. Одиночное соединение, например VPN-туннель поверх одного TCP-подключения, будет работать в пределах 130–150 Мбит/с. Для повседневных задач этого хватает с запасом.
Шаг 3. Пинг и потери: mtr
mtr — это ping и traceroute в одном: он показывает каждый узел маршрута до сервера и для каждого считает потери и задержку.
brew install mtr # macOS
sudo apt install mtr-tiny # Ubuntu/Debian
sudo mtr -rwc 100 203.0.113.10Ключи: -r — вывести отчёт и выйти, -w — не обрезать имена узлов, -c 100 — отправить 100 пакетов.
На Mac с процессором Intel Homebrew кладёт mtr в /usr/local/sbin, где sudo его не находит (sudo: mtr: command not found). Запускайте с полным путём:
sudo /usr/local/sbin/mtr -rwc 100 203.0.113.10На Mac с Apple Silicon путь другой: /opt/homebrew/sbin/mtr.
Мой результат, узлы провайдера и магистрали обезличены:
HOST: iMac.local Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.1.1 0.0% 100 0.5 0.5 0.4 0.7 0.0
2.|-- 10.19.22.1 0.0% 100 2.3 32.1 2.1 364.0 59.8
3.|-- 10.1.5.178 0.0% 100 1.6 3.3 1.2 44.7 6.5
4.|-- 10.1.5.49 0.0% 100 1.8 2.4 1.5 11.7 1.7
5.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0
6.|-- core1.isp.example 0.0% 100 1.1 2.9 1.0 57.6 8.0
7.|-- border.isp.example 0.0% 100 6.2 13.9 6.0 185.5 26.6
8.|-- 198.51.100.70 0.0% 100 7.5 9.6 7.3 108.7 11.6
9.|-- 198.51.100.44 0.0% 100 15.3 15.3 14.8 17.0 0.3
10.|-- 198.51.100.53 0.0% 100 14.5 14.7 14.4 18.1 0.4
11.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0
12.|-- 198.51.100.178 0.0% 100 51.5 51.4 51.3 51.8 0.1
13.|-- ae2.protected-by.zero-lag.net 0.0% 100 54.0 54.1 53.8 54.4 0.1
14.|-- cr03.eqx.dataforest.net 0.0% 100 54.2 54.1 53.9 54.4 0.1
15.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0
16.|-- 203.0.113.10 0.0% 100 55.2 55.0 54.6 56.3 0.3| Колонка | Что значит |
|---|---|
| Loss% | процент потерянных пакетов на этом узле |
| Snt | сколько пакетов отправлено |
| Last, Avg | последняя и средняя задержка, мс |
| Best, Wrst | лучшая и худшая задержка |
| StDev | разброс задержки: чем меньше, тем стабильнее |
Как читать mtr
- 🎯 Смотрите сначала на последнюю строку — это ваш сервер. У меня 0 % потерь, средний пинг 55 мс, разброс 0,3 мс. Это отличный результат для сервера в Европе.
- ❓
???и 100 % потерь в середине — не проблема. Многие роутеры просто не отвечают на служебные пакеты mtr. Раз следующие узлы отвечают, трафик через них проходит. - 📈 Скачки на промежуточных узлах тоже не всегда проблема. У меня на втором узле худший пинг 364 мс, на седьмом — 185 мс. Но дальше задержка снова ровная, значит, эти роутеры просто отвечают на ping в последнюю очередь, а трафик пропускают нормально.
- 🌍 Где задержка растёт резко и не падает обратно — там расстояние. У меня между 10-м и 12-м узлом пинг вырос с 15 до 51 мс: это перегон из России в Европу.
- 🚩 Настоящая проблема — когда потери или рост задержки начинаются на каком-то узле и сохраняются до конца маршрута. Это место и есть узкое горлышко.
Шаг 4. Канал самого VPS
Чтобы понять, не упирается ли скорость в сам хостинг, проверьте его канал. Самый простой вариант:
apt install speedtest-cli
speedtest-cliHosted by Turkcell (Kayseri) [3210.44 km]: 44.249 ms
Download: 147.33 Mbit/s
Upload: 9.37 Mbit/sОтдача 9 Мбит/с выглядит страшно. Но iperf3 только что показал, что сервер отдаёт мне больше 150 Мбит/с. Дело в утилите: Python-версия speedtest-cli выбрала сервер за 3200 км и плохо меряет отдачу. Поэтому:
- выберите ближний сервер вручную:
speedtest-cli --list | headпокажет список, аspeedtest-cli --server IDзапустит замер с нужным; - или поставьте официальный клиент Ookla Speedtest — он точнее;
- и не верьте одному замеру: сравнивайте с iperf3.
Шаг 5. Выключите iperf3 на сервере
Если вы запускали iperf3 -s вручную, просто остановите его. Если согласились на автозапуск при установке:
systemctl disable --now iperf3Removed '/etc/systemd/system/multi-user.target.wants/iperf3.service'.Строка Removed означает, что служба остановлена и убрана из автозапуска.
Ошибки, на которые я наткнулся
unable to start listener for connections: Address already in use — на сервере порт 5201 уже занят. У меня это был iperf3, который запустился как служба после ответа yes при установке. Проверьте, кто держит порт:
ss -tlnp | grep 5201Если там iperf3 — сервер уже работает, просто мерьте с компьютера. Если другая программа — запустите iperf3 на другом порту (iperf3 -s -p 5202) и добавьте -p 5202 к командам на компьютере.
unable to connect to server ... nodename nor servname provided, or not known — компьютер не понял адрес сервера. Я просто забыл подставить IP вместо слова-заглушки из примера 🙈. Если адрес верный, проверьте, что сервер запущен и порт открыт в файрволе.
sudo: mtr: command not found на Mac — запускайте с полным путём, как в шаге 3.
Homebrew собирает пакеты из исходников и пишет This is a Tier 3 configuration — так теперь на всех Mac с Intel: Homebrew прекратил их поддержку. iperf3 у меня ставился около трёх минут, но работает нормально.
Чек-лист проверки
Тем же способом можно проверить и домашнюю сеть, например скорость между компьютером и домашним сервером на Proxmox. Если гигабитная сеть показывает 300–400 Мбит/с, ищите проблему в кабеле, роутере или Wi-Fi.
Частые вопросы
Чем iperf3 лучше обычного спидтеста?
Спидтест меряет скорость до своего сервера, обычно ближайшего к вам. iperf3 меряет канал именно между двумя вашими машинами: домом и VPS, двумя компьютерами в сети, компьютером и NAS. Так видно, сколько реально проходит там, где вам нужно.
Почему скорость в один поток ниже, чем в несколько?
Одно TCP-соединение снижает скорость при каждой потере пакета. На дальних маршрутах с потерями под нагрузкой оно не успевает разогнаться. Несколько соединений делят потери между собой, и в сумме набирают больше. Если разница большая, канал широкий, а ограничение где-то по пути.
Какой пинг до зарубежного VPS считается нормальным?
Из европейской части России до Германии или Нидерландов обычно 40–70 мс, до США — от 120 мс. Важнее стабильность: если разброс (StDev) единицы миллисекунд и потерь на последнем узле нет, канал хороший.
Что значит 100 % потерь на узле в mtr?
Если на последнем узле потерь нет, ничего страшного: этот роутер просто не отвечает на служебные пакеты. Проблема только тогда, когда потери видны и на всех следующих узлах до самого сервера.
Безопасно ли оставлять iperf3 включённым на VPS?
Не стоит. Любой, кто найдёт открытый порт, сможет нагружать ваш сервер и расходовать его трафик. Запускайте iperf3 только на время замеров.
Как проверить скорость до VPS с Windows?
Скачайте iperf3 для Windows и запускайте те же команды из командной строки в папке с iperf3.exe. Вместо mtr используйте WinMTR или встроенную команду pathping IP_сервера.
Если статья пригодилась — отметьте, это помогает выбирать темы
Статья помогла?
Комментарии
Пока никто не написал. Будьте первым — вопрос или свой опыт одинаково полезны.