Да, VPN действительно немного увеличивает расход мобильного трафика. Причина вполне физическая. Телефон берёт обычный сетевой пакет, помещает его внутрь зашифрованного туннеля и добавляет служебные заголовки, данные аутентификации и иногда выравнивание. Через мобильную сеть уходит уже увеличенный пакет.
Но распространённая страшилка про «двойной трафик» неверна. Оператор не получает сначала обычный пакет на 1 МБ, а затем ещё такой же мегабайт внутри VPN. Исходный пакет перехватывает VPN-клиент, после чего мобильный интерфейс отправляет наружу только зашифрованную оболочку. При больших загрузках накладные расходы хорошего UDP-туннеля обычно относительно невелики. У коротких пакетов, плохого соединения и некоторых конфигураций разница может оказаться заметнее.
Материал посвящён устройству VPN и диагностике расхода данных, а не способам обхода ограничений. При работе с VPN учитывайте правила оператора, требования используемых сервисов и действующее законодательство.
Откуда VPN берёт дополнительные байты
Механика VPN проще, чем кажется. Без туннеля приложение формирует IP-пакет, операционная система отправляет пакет через мобильную сеть. С VPN пакет сначала попадает в виртуальный сетевой интерфейс. Клиент шифрует его, добавляет данные VPN-протокола, затем помещает результат внутрь нового UDP- или TCP-пакета. Подробно сам механизм я уже разбирал в материале о том, как работает VPN.
Хороший пример даёт WireGuard. Формат транспортного пакета содержит 16 байт служебного заголовка WireGuard, 16 байт тега аутентификации ChaCha20-Poly1305 и до 15 байт заполнения. Снаружи добавляются UDP и ещё один IP-заголовок. Для обычного внешнего IPv4 получается примерно 60-75 дополнительных байт на пакет, для IPv6 примерно 80-95 байт. Расчёт не включает канальный уровень мобильной сети и служебный обмен самого оператора.
Процент зависит от размера внутреннего пакета. Поэтому фраза «VPN всегда съедает 10% интернета» бессмысленна без уточнений.
| Внутренний IP-пакет | Примерный пакет WireGuard через IPv4 | Прибавка |
|---|---|---|
| 1400 байт | 1468 байт | около 4,9% |
| 500 байт | 572 байта | около 14,4% |
| 100 байт | 172 байта | около 72% |
Цифры в таблице показывают устройство пакета, а не обещанный расход тарифа. При скачивании фильма или большого файла TCP и QUIC стараются передавать крупные пакеты, поэтому фиксированные заголовки занимают небольшую долю потока. Мессенджер, онлайн-игра или голосовая связь могут отправлять множество маленьких пакетов. На каждом приходится снова платить несколько десятков байт служебными данными.
У OpenVPN точная прибавка зависит от транспорта, режима шифрования и конфигурации. Разработчики даже отдельно учитывают инкапсуляцию при настройке MTU и MSS. Только внешний IP и UDP добавляют до 28 байт при IPv4 или 48 байт при IPv6, а поверх них идут собственные данные OpenVPN.
Когда расход растёт сильнее, чем должен
В реальной мобильной сети размер заголовков часто оказывается далеко не главным фактором. Я бы сначала проверял качество связи, MTU, фоновые приложения и особенности тарифа.
- Плохой сигнал и потери пакетов. Потерянные данные приходится передавать снова. VPN не создаёт радиопомех, но дополнительный маршрут до VPN-сервера способен добавить потери или нестабильность.
- Неудачный MTU. После инкапсуляции пакет становится крупнее. Неправильный MTU может привести к фрагментации, дополнительным пакетам или проблемам Path MTU Discovery.
- OpenVPN поверх TCP. Если внутри туннеля работают TCP-соединения, а сам VPN тоже передаётся через TCP, потери иногда вызывают неприятное взаимодействие двух механизмов повторной передачи. Для мобильных сетей UDP-транспорт обычно предсказуемее.
- Постоянные служебные пакеты. Некоторые туннели поддерживают соединение в фоне, чтобы NAT оператора не забыл соответствие адресов и портов.
- Изменившийся маршрут. Другой сервер CDN, дополнительные редиректы или иное поведение сервиса способны изменить фактический объём загрузки сильнее, чем заголовки VPN.
У WireGuard есть показательный пример фонового расхода. По умолчанию протокол старается молчать, пока передавать нечего. Опциональный PersistentKeepalive может отправлять пакет, например, каждые 25 секунд. Один пустой транспортный пакет WireGuard через IPv4 занимает примерно 60 байт на IP-уровне. Даже круглосуточная отправка каждые 25 секунд даёт лишь около 0,2 МБ в сутки, через IPv6 около 0,28 МБ. Рукопожатия немного увеличат цифру, но сами keepalive-пакеты гигабайты не съедят.
Гораздо интереснее тарифы с «безлимитными» приложениями или трафиком, который оператор не вычитает из основного пакета. Без VPN оператор способен определить нужное направление и применить тарифное исключение. При полном VPN-туннеле оператор видит соединение с VPN-сервером, а не конечный сервис. Если условия тарифа не предусматривают работу исключения через VPN, вчерашний «бесплатный» видеосервис или мессенджер внезапно начинает уменьшать пакет гигабайт. Такой эффект легко принять за чудовищный VPN-overhead, хотя шифрование здесь почти ни при чём.
В роуминге логика та же. VPN не превращает мобильные данные в бесплатные. Все внешние зашифрованные пакеты по-прежнему проходят через сотовую сеть. При дорогом или маленьком роуминговом пакете даже несколько процентов уже имеют значение, а потеря тарифных исключений может оказаться намного дороже.
Почему Android, iPhone, VPN и оператор показывают разные цифры
Четыре счётчика могут измерять четыре немного разных сущности. Приложение знает объём данных внутри своего соединения. VPN-клиент может показывать байты, прошедшие через виртуальный интерфейс, либо объём зашифрованного туннеля. Операционная система ведёт собственную статистику интерфейсов и приложений. Оператор считает трафик своей сетью и применяет правила конкретного тарифа.
Android дополнительно пытается правильно распределить трафик TUN-VPN между приложениями, которые его создали. Поэтому цифра напротив VPN-приложения не обязательно равна всему объёму данных, реально переданному через туннель. На разных оболочках Android интерфейс статистики тоже отличается.
На Pixel путь выглядит примерно так: «Настройки» → «Сеть и интернет» → «SIM» → «Использование трафика приложениями». Google прямо предупреждает, что телефон и оператор могут считать данные по-разному.
На iPhone откройте «Настройки» → «Сотовая связь». iOS показывает расход по приложениям и позволяет сбросить статистику внизу страницы. Apple также советует использовать данные оператора, если нужна точная цифра для тарифа. Поэтому спор «VPN показывает 9,8 ГБ, а оператор списал 10,3 ГБ» нельзя решать только по экрану VPN-клиента.
Как самому измерить, сколько трафика добавляет VPN
Speedtest для такого эксперимента подходит плохо. Сервис старается насытить канал и может скачать разный объём данных в зависимости от скорости соединения. Лучше взять один и тот же достаточно большой файл, например 200-500 МБ, с одного HTTPS-сервера.
- Выключите Wi-Fi и оставьте только мобильную сеть.
- На время теста остановите облачную синхронизацию, обновления приложений, резервное копирование фотографий и раздачу интернета.
- Запишите текущий счётчик мобильного трафика.
- Скачайте выбранный файл без VPN и запишите разницу.
- Удалите файл, включите VPN и скачайте тот же файл с того же адреса.
- Сравните результаты и повторите эксперимент несколько раз.
Процент можно посчитать так:
(трафик_с_VPN - трафик_без_VPN) / трафик_без_VPN * 100
Если 500-мегабайтный файл без VPN потребовал примерно 505 МБ мобильных данных, а через VPN 530 МБ, дополнительный расход относительно первого измерения составляет около 5%. Разница в десятки процентов уже заставляет искать другую причину. Проверьте фоновые приложения, качество сигнала, тарифные исключения, протокол VPN и проблемы с MTU.
При тестировании лучше смотреть на общий счётчик мобильного интерфейса, а не только на статистику VPN-приложения. Для окончательной проверки списаний используйте личный кабинет или приложение оператора, учитывая возможную задержку обновления статистики.
Не советую менять MTU наугад ради экономии пары мегабайт. Слишком большое значение способно вызвать фрагментацию или зависания соединений, слишком маленькое само увеличивает количество пакетов и долю заголовков. Если VPN стабильно работает и тест показывает несколько процентов накладных расходов, настройку лучше оставить в покое.
Так сколько гигабайт реально съедает VPN
Универсального процента нет. На длинной загрузке через WireGuard или другой компактный UDP-туннель я ожидал бы сравнительно небольшую прибавку, часто в пределах нескольких процентов. На потоке мелких пакетов относительная доля служебных данных заметно выше. OpenVPN, TCP-транспорт, нестабильная сеть, повторные передачи и неправильный MTU способны добавить ещё трафика.
При расходе 20 ГБ в месяц даже 5% означают примерно 1 дополнительный гигабайт. Для безлимитного домашнего интернета цифра почти никого не волнует, а в роуминге или при пакете в 5 ГБ уже имеет смысл провести собственный тест.
Самый опасный миф звучит наоборот. Если после включения VPN расход вырос на 30, 50 или 100%, не надо сразу обвинять шифрование. Обычные заголовки редко объясняют такую разницу при потоковой передаче крупных файлов. Сначала ищите потерянную тарифную льготу, фоновые загрузки, плохую связь или ненормальную работу туннеля.
Может ли VPN удвоить мобильный трафик?
Обычная VPN-инкапсуляция не должна удваивать расход. Через мобильный интерфейс передаётся зашифрованный внешний пакет, а не сначала исходный пакет и затем его копия. Рост около 100% требует другой причины.
Сколько процентов трафика обычно добавляет VPN?
Фиксированного процента нет. У крупных пакетов компактного UDP-туннеля накладные расходы могут составлять несколько процентов. У небольших пакетов доля служебных данных намного выше.
Какой VPN-протокол расходует меньше трафика?
Компактные протоколы поверх UDP обычно создают меньше служебного трафика, чем сложные конфигурации с дополнительными уровнями инкапсуляции. Но разница между протоколами часто меньше влияния размера пакетов, потерь связи и MTU.
Расходует ли включённый VPN интернет, когда телефон лежит без дела?
Иногда. VPN может обмениваться keepalive-пакетами, обновлять ключи или поддерживать соединение. Для современных протоколов такой фоновый объём обычно невелик по сравнению с видео, обновлениями и облачной синхронизацией.
VPN расходует трафик в роуминге?
Да. VPN меняет маршрут и шифрует содержимое туннеля, но данные всё равно передаются через мобильную сеть оператора и учитываются по условиям роумингового тарифа.
Почему оператор показывает больше трафика, чем VPN-приложение?
Счётчики работают на разных уровнях и могут учитывать разные заголовки, интерфейсы, фоновые соединения и периоды расчёта. Для определения остатка тарифного пакета ориентироваться нужно на данные оператора.
Может ли VPN, наоборот, уменьшить расход интернета?
Само шифрование трафик не уменьшает. Но VPN-система с блокировкой рекламы, трекеров или других сетевых ресурсов может предотвратить часть загрузок. Экономию в таком случае создаёт фильтрация, а не VPN-туннель.
Мой вывод. VPN действительно съедает немного дополнительных данных, но бояться «двойного списания» не нужно. Для обычного просмотра сайтов, загрузки файлов и видео через эффективный протокол речь чаще идёт о сравнительно небольшой надбавке. На тарифе с жёстким лимитом или в роуминге я бы один раз измерил расход на одинаковом файле и сверил результат со счётчиком оператора. Если разница внезапно измеряется десятками процентов, проблема почти наверняка шире обычных заголовков VPN.
