Из чего складываются косты CDN для VPN
Когда вход VPN спрятан за whitelisted CDN-edge (оператор видит трафик как обращение к «белому» CDN, а тот проксирует на вашу ноду), счёт за инфраструктуру перестаёт быть просто «арендой сервера». Появляется отдельная статья расходов — трафик через CDN, и считать её нужно по своей модели.
Косты CDN складываются из двух базовых компонентов:
| Компонент | Что это | Порядок величины |
|---|---|---|
| Исходящий трафик (egress) | Оплата за отданные гигабайты | по прайсу провайдера |
| Запросы | Оплата за число HTTP-запросов к edge | Зависит от транспорта |
| Итого эффективно | egress + запросы на масштабе | считается из своего биллинга |
Биллинг CDN обычно тарифицирует исходящий с edge к клиенту трафик (в основном downlink), но на масштабе к нему добавляется плата за число запросов — этот компонент нужно уточнить в тарифе заранее, иначе прогноз костов окажется заниженным. Ключевой вывод: себестоимость гигабайта — не константа. Она зависит от того, какой транспорт вы гоните через CDN и насколько «крупными» получаются запросы.
Как оценить объём трафика: формула расчёта
Расчёт трафика VPN проще всего вести снизу вверх — от реального потребления на одного пользователя.
Базовая формула:
Месячный объём (ГБ) = активные_юзеры × средний_ГБ_на_юзера_в_месяц
Бюджет CDN (₽) = месячный_объём × себестоимость_ГБ
Среднее потребление не нужно угадывать — его показывает панель (Remnawave, 3x-ui, Marzban, Hiddify ведут пер-юзер статистику). Снимите фактический расход за 2–4 недели, отбросьте неактивные аккаунты и возьмите медиану, а не среднее (несколько «тяжёлых» юзеров сильно искажают среднее).
Иллюстративный пример: 1000 активных юзеров × 60 ГБ/мес = 60 ТБ/мес. Дальше умножьте объём на свою фактическую ставку за гигабайт — её берут из выгрузки биллинга за прошлый месяц, а не из прайса, иначе плата за запросы в расчёт не попадёт.
Пару поправок к расчёту:
- Пиковый онлайн важен для канала, объём — для биллинга. Пик одновременных сессий определяет требования к пропускной способности edge и ноды, а суммарные гигабайты — сумму счёта. Считайте обе метрики.
- Не весь трафик обязан идти через whitelisted-вход. Если CDN-edge используется как устойчивый вход под троттлингом оператора, через него пойдёт та доля сессий, что иначе бы отвалилась. Оцените эту долю отдельно — платить за неё вы будете по CDN-тарифу.
Себестоимость гигабайта: egress плюс запросы
«Сколько стоит трафик VPN» — вопрос с двойным дном. Сырой egress по прайсу действительно недорог, и именно эту цифру подставляют в расчёт. Но у провайдеров, тарифицирующих запросы, вторая статья на XHTTP-профиле сопоставима с первой, а иногда и перекрывает её — во сколько раз, зависит от того, насколько мелкие запросы генерируют ваши абоненты.
Причина в характере транспорта. XHTTP через CDN дробит поток на HTTP-запросы. Чем мельче запросы, тем их больше на тот же объём данных, и тем выше доля request-платы в счёте. Крупные POST-запросы с данными в теле снижают число запросов на гигабайт — и напрямую уменьшают кост.
Поэтому себестоимость стоит считать не как «egress × объём», а как сумму двух слагаемых: трафик + запросы. На небольших объёмах request-часть почти незаметна, на масштабе она становится ощутимой статьёй расходов. Отсюда и практический рычаг оптимизации, к которому вернёмся ниже: укрупнять запросы.
Транспорт XHTTP и почему он влияет на счёт
Через whitelisted CDN-edge стабильно проходит XHTTP в режиме packet-up. Reality или Hysteria2 напрямую под троттлингом обычно не проходят, а протолкнуть их через CDN-edge не выходит — он их не пропускает. Поэтому выбор транспорта здесь не только про проходимость, но и про кост.
Ошибка unexpected EOF сама по себе не определяет причину. В текущем входе Clearway GET с телом отклоняется CDN с ошибкой 413. Проверьте серверный auto и лимит заголовков, затем клиентский header; для других ошибок сопоставьте время и журналы клиента, CDN, gateway и origin. Ответ HTTP 200 и успешный TLS ещё не подтверждают передачу HTTPS через туннель. Для текущего XHTTP-входа Clearway клиент отправляет uplink в заголовках: uplinkHTTPMethod: "GET", uplinkDataPlacement: "header", uplinkChunkSize: 4096, scMaxEachPostBytes: 4096. Сначала на сервере задайте uplinkDataPlacement: "auto" и serverMaxHeaderBytes: 262144, затем обновите Host и подписки клиентов. Порт, путь, пользователей и остальные параметры сохраняйте. Серверный auto нельзя переносить в клиентскую ссылку.
Для текущего XHTTP-входа Clearway клиент отправляет uplink в заголовках: uplinkHTTPMethod: "GET", uplinkDataPlacement: "header", uplinkChunkSize: 4096, scMaxEachPostBytes: 4096. Сначала на сервере задайте uplinkDataPlacement: "auto" и serverMaxHeaderBytes: 262144, затем обновите Host и подписки клиентов. Порт, путь, пользователей и остальные параметры сохраняйте. Серверный auto нельзя переносить в клиентскую ссылку.
Размер uplink-пакета влияет на число HTTP-запросов и нагрузку. Для текущего входа используйте клиентские uplinkChunkSize: 4096 и scMaxEachPostBytes: 4096. Увеличение пакетов ради экономии требует отдельной проверки лимитов CDN и сервера; перенос GET в body сейчас приводит к ошибке 413.
Учёт трафика в панели: множители и лимиты
Биллинг CDN и учёт трафика для пользователей — две разные бухгалтерии, и их нужно свести.
В панели (на примере Remnawave) есть механизмы:
- Множитель потребления ноды — коэффициент, с которым трафик ноды засчитывается против лимита юзера.
- Пер-юзер лимиты — квота на пользователя.
Отдельно полезен приём: множитель 0 на ноде означает, что трафик через эту ноду не списывается с лимита юзера, при этом сама нода продолжает работать. Это удобно, например, для fallback-входа под ограничениями — юзер не расходует квоту в момент, когда сервис держится только за счёт whitelisted-входа.
Важно свести две цифры: сколько гигабайт вам выставил CDN и сколько насчитала панель. Расхождение — это оверхед туннелирования и проксирования. Регулярная сверка billed-vs-panel показывает реальный коэффициент оверхеда, который стоит закладывать в расчёт трафика заранее, а не обнаруживать в конце месяца.
Как снизить косты: чек-лист оптимизации
Практические рычаги, которые реально двигают счёт:
Размер uplink-пакета влияет на число HTTP-запросов и нагрузку. Для текущего входа используйте клиентские uplinkChunkSize: 4096 и scMaxEachPostBytes: 4096. Увеличение пакетов ради экономии требует отдельной проверки лимитов CDN и сервера; перенос GET в body сейчас приводит к ошибке 413.
Если поднимать и сопровождать собственную CDN-дистрибуцию не хочется, whitelisted-вход можно взять как сервис. Clearway (clear-way.pro) даёт операторам готовый «белый» edge перед их нодами — вы платите за трафик через edge и не занимаетесь эксплуатацией самой CDN-инфраструктуры, оставляя ноды и учёт юзеров на своей панели.