Быстрый способ проверить скорость VPN соединения с помощью SSH
Приветствую!

Короткая заметка про то, как проверить скорость Download/Upload с помощью SSH в Linux. Подобная диагностика бывает полезна при анализе проблем, связанных с передачей данных по защищенным каналам связи, таким как VPN.

Демонстрация из статьи выполнялась в среде дистрибутива Linux Mint Debian Edition 6 (Debian 12). Все аналогичным образом будет работать и в других дистрибутивах Linux.

Подготовка

Для работы нам понадобятся:

Из списка выше доустановить потребуется лишь утилиту pv (крайне полезная вещь). Она есть в стандартных репозиториях:

BASH
sudo apt update && sudo apt install pv
Нажмите, чтобы развернуть и увидеть больше

Проверка скорости

В моем примере для подключения используется имя пользователя на удаленном сервере — ivan и адрес хоста — vpn.r4ven.me (можно указать IP). Замените эти значения в командах на свои.

Отключите VPN и проверьте скорость download с помощью команды:

Будьте осторожны с командой dd! Чтобы случайно не перезаписать важные данные.

BASH
ssh ivan@vpn.r4ven.me dd if=/dev/zero bs=1M count=1024 | pv | cat > /dev/null
Нажмите, чтобы развернуть и увидеть больше

Для остановки проверки используйте сочетание клавиш Ctrl+c.

И теперь скорость upload:

BASH
dd if=/dev/zero bs=1M count=1024 | pv | ssh ivan@vpn.r4ven.me 'cat > /dev/null'
Нажмите, чтобы развернуть и увидеть больше

Затем включите VPN и выполните обе команды снова. Если без туннелирования трафика скорость значительно выше, значит факторы, влияющие на скорость передачи данных на самом сервере, где развернут VPN. Если скорость низкая в обоих случаях, вероятно дело в канале до сервера.

Что вообще делают эти команды

1-я команда (Download)

2-я команда (Upload)

Таким образом выполняется синтетическая проверка, которая просто утилизирует канал не создавая при этом никаких файлов.

Если при включенном VPN маршрут до удаленного сервера идет не через туннель

В такой ситуации попробуйте временно добавить маршрут вручную, а после проведения проверок удалить. Но только если удаленный сервер — это не сам сервер VPN!

Вот пример команд:

BASH
# проверка маршрута
ip route get <IP_address>

# добавление маршрута через серетвой интерфейс tun0
ip route add <IP_address> dev tun0

# удаление добавленного ранее маршрута
ip route del <IP_address> dev tun0
Нажмите, чтобы развернуть и увидеть больше

Где <IP_address> — IP адрес сервера, а tun0 — это виртуальный сетевой интерфейс вашего туннельного соединения на локальной машине. Замените значения на свои. Узнать их можно с помощью команд:

BASH
# ip адрес
ping -c1 vpn.r4ven.me | head -1 | awk -F'[()]' '{print $2}'

# список интерфейсов
ip address
Нажмите, чтобы развернуть и увидеть больше

На почитать

Авторские права

Автор: Иван Чёрный

Ссылка: https://r4ven.me/networking/bystryj-sposob-proverit-skorost-vpn-soedineniya-s-pomoshhyu-ssh/

Лицензия: CC BY-NC-SA 4.0

Использование материалов блога разрешается при условии: указания авторства/источника, некоммерческого использования и сохранения лицензии.

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша