iperf3 измеряет пропускную способность между выбранными узлами. Результат относится к конкретному маршруту и моменту времени: он не является универсальной скоростью всего интернета или гарантией тарифа.
1. Подготовьте оба узла
sudo apt update
sudo apt install iperf3
iperf3 --version
Если установщик предлагает постоянный демон, для разового теста откажитесь. Выберите спокойный период, проверьте стоимость исходящего трафика и ограничения хостера. Не используйте чужой публичный iperf-сервер без разрешения его владельца.
Дальше сервером теста называется принимающий управляющее соединение узел, клиентом — запускающий измерение. Эти роли не определяют направление полезного потока при использовании обратного режима.
При выборе нового VPS такие измерения удобно провести до переноса приложений: в подборке хостингов с тестовым периодом на ПРО-ХОСТИНГ можно найти варианты для сравнения. Условия теста, возврата оплаты и допустимость замеров нагрузки проверьте у конкретного провайдера.
2. Ограничьте доступ к тестовому порту
На сервере теста разрешите TCP/5201 только с IP второго узла в действующем firewall и панели провайдера. Если UFW уже используется, пример правила ниже; не включайте UFW поверх другой политики ради инструкции.
sudo ufw allow from 198.51.100.20 to any port 5201 proto tcp comment "iperf3-temporary"
Замените пример IP адресом клиента. Запустите сервер в переднем плане с завершением после одного теста:
iperf3 -s -1
3. Начните с ограниченного измерения
На клиенте укажите реальный адрес сервера теста вместо примера:
iperf3 -c 203.0.113.10 -t 10 -b 20M
Здесь один TCP-поток ограничен целевой скоростью 20 Мбит/с и десятью секундами — примерно 25 МБ полезных данных плюс накладные расходы. Если результат близок к лимиту, это подтверждает лишь достижение 20 Мбит/с, а не предел канала.
Повышайте лимит ступенчато только в согласованном тестовом окне. Не начинайте с множества параллельных потоков: они увеличивают нагрузку и могут скрыть ограничение одного соединения.
4. Проверьте обратное направление
После первого измерения режим -1 завершит сервер. Запустите iperf3 -s -1 на нём ещё раз, затем на клиенте выполните:
iperf3 -c 203.0.113.10 -t 10 -b 20M -R
Флаг -R меняет направление передачи. Сравнивайте итог получателя, retransmits для TCP, загрузку CPU на обоих узлах и время теста. Различие направлений может зависеть от маршрутизации, ограничений трафика или состояния второго узла.
5. Завершите и сохраните условия теста
Убедитесь, что процесс сервера завершён; если ожидание клиента осталось — остановите его Ctrl+C. Удалите только временное правило, созданное для теста, и соответствующее разрешение в панели хостера:
sudo ufw delete allow from 198.51.100.20 to any port 5201 proto tcp
Запишите адреса, версии iperf3, направление, заданный bitrate и длительность. Сравнивать результаты с разными лимитами как одинаковые нельзя. Для повторяемости используйте тот же второй узел и близкое время суток.