Блог Clearway

Как считать трафик и косты CDN для VPN-сервиса

Коротко

В текущем входе Clearway используйте GET/header на клиенте и auto на сервере. Сначала обновите сервер, затем клиентский Host и подписки. GET с телом отклоняется CDN с ошибкой 413; переход на header не гарантирует работу у всех операторов.

Продаёте доступ своим абонентам? Цены на сайте — розничные, за свой трафик. Для сервисов, которые раздают доступ дальше, условия отдельные: оптовая цена, лимит трафика на каждого вашего клиента, метки, месячный отчёт с выгрузкой и API для выдачи хостов из вашей панели. Бренда Clearway в клиентских конфигах нет.

Публиковать такие цены мы не станем — они зависят от объёма и от того, какой трафик даёт ваша аудитория. Напишите на hello@clear-way.pro, опишите сервис и примерный объём — ответим с условиями.

Из чего складываются косты 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-инфраструктуры, оставляя ноды и учёт юзеров на своей панели.

Частые вопросы

Сколько стоит трафик VPN через CDN?

Размер uplink-пакета влияет на число HTTP-запросов и нагрузку. Для текущего входа используйте клиентские uplinkChunkSize: 4096 и scMaxEachPostBytes: 4096. Увеличение пакетов ради экономии требует отдельной проверки лимитов CDN и сервера; перенос GET в body сейчас приводит к ошибке 413.

Как измерить реальное потребление на одного пользователя?

Возьмите пер-юзер статистику из панели — Remnawave, 3x-ui, Marzban и Hiddify её ведут. Снимите расход за 2–4 недели, отбросьте неактивные аккаунты и считайте по медиане, а не по среднему, потому что несколько «тяжёлых» юзеров сильно искажают среднее. Полученную цифру умножаете на число активных пользователей и получаете месячный объём для расчёта трафика.

Почему туннель через CDN рвётся с ошибкой unexpected EOF?

Размер uplink-пакета влияет на число HTTP-запросов и нагрузку. Для текущего входа используйте клиентские uplinkChunkSize: 4096 и scMaxEachPostBytes: 4096. Увеличение пакетов ради экономии требует отдельной проверки лимитов CDN и сервера; перенос GET в body сейчас приводит к ошибке 413.

Снижает ли whitelist-CDN стоимость разблокировки стриминга?

Нет, это разные задачи. Whitelist-CDN отвечает за связность входа под троттлингом и в режиме белого списка оператора, но не влияет на доступ к стримингу. Сервисы вроде Kinopoisk банят датацентр-IP по репутации — для российского контента нужен резидентный IP, и это отдельная инженерная задача, не связанная с расчётом костов CDN.

Что даёт множитель трафика 0 на ноде?

Множитель 0 означает, что трафик через эту ноду не списывается против лимита пользователя, при этом сама нода продолжает работать. Это удобно для fallback-входа под ограничениями: юзер не расходует квоту в момент, когда сервис держится за счёт whitelisted-входа. Механизм относится к учёту в панели и не влияет на то, сколько трафика вам выставит CDN.

Whitelisted-вход для вашего VPN-сервиса

Clearway даёт «белый» CDN-вход перед вашей нодой — устойчивый к троттлингу операторов. Первые 10 ГБ бесплатно, без карты.

Попробовать →