Работающий сайт — доказательство того, что провайдер умеет отдавать HTTP, а не того, что вы контролируете машину. Между общим тарифом, управляемым приложением и собственным сервером есть большой разрыв в том, что аккаунт вправе делать с сетью. Решите, какая сторона этого разрыва нужна вашему проекту VPN, прежде чем платить ещё за год. Четыре возможности разделяют эти два случая, и ни одна из них не указана в прайсе.

Что на самом деле даёт каждый тариф

Полезное сравнение — не цена и не размер диска, а полномочия. Спросите, что аккаунт может запустить, до каких функций ядра он дотягивается, какие порты принимают входящий трафик и может ли допущенный трафик снова уйти в другое место.

Большинство хостинг-продуктов сводятся к трём формам, и только последняя — сервер общего назначения:

CapabilityWebsite planSelf-managed server
Long-running custom processUsually not permittedYours to run under a service manager
Virtual network interfaceAlmost never availablePresent when the kernel module and privilege allow it
Arbitrary inbound portRestricted to the web stackProvider filtering still applies
Forwarding for clientsNot offeredPossible once routing and policy are configured

Shell-аккаунт — обычный источник путаницы. Передача файлов или доступ к задачам по расписанию могут выглядеть как администрирование, хотя процесс ограничен каталогом и небольшим набором разрешённых операций.

Четыре возможности, решающие ответ

Берите их по порядку, потому что сбой на первом шаге делает остальное бессмысленным.

Во-первых, программа должна работать как долгоживущий процесс, переживающий обслуживание. Во-вторых, реализация должна уметь создавать свой виртуальный интерфейс; в Linux это обычно означает открыть /dev/net/tun с нужными административными правами, как документация ядра по TUN/TAP описывает, хотя не каждый проект VPN использует это устройство. В-третьих, клиенты должны достигать слушателя по публичному адресу, транспорту и порту, которые вы задумали, а веб-обратный прокси, принимающий HTTPS, ничего не говорит о несвязанном протоколе на том же номере. В-четвёртых, допущенный трафик должен иметь возможность идти дальше — с маршрутами, пересылкой и любым действительно поддерживаемым преобразованием адресов.

Условия обслуживания стоят рядом с этими четырьмя и вовсе не технические. Безлимитные лимиты трафика обычно описывают веб-запросы, а не туннель, несущий чужие загрузки. Прочитайте раздел о допустимом использовании, прежде чем проектировать вокруг него, и держите в уме доступ для восстановления на день, когда служба не запустится.

Где веб-аккаунт останавливается

Тариф веб-сайта обычно выполняет ваш код в управляемой среде выполнения с фиксированной точкой входа. Даже если бинарник туннеля присутствует, процессу может не хватать прав открыть узел устройства, занять привилегированный порт или изменить таблицу маршрутизации. Эти ограничения — сам продукт, а не недосмотр.

Поэтому плагин, обещающий VPN, обычно оказывается прокси куда-то ещё. Если текущий аккаунт даёт только управление сайтом, честный шаг — отдельный сервер, а не поиск модуля, открывающего недостающие полномочия.

Когда один хост должен запускать оба

Совместное использование возможно и иногда разумно, но относитесь к нему как к решению по безопасности, а не к удобству. Веб-приложение с формой загрузки стоит рядом с учётными данными туннеля и управляющим сокетом, и уязвимость в одном достигает другого. Отдельные аккаунты, отдельные служебные единицы и отдельные файловые системы снижают эту экспозицию, не покупая вторую машину.

Конкуренция за ресурсы значит не меньше. Резервная копия через туннель и занятый веб-процесс борются за один и тот же исходящий канал и один и тот же диск, и сбой выглядит как медленный сайт, а не как насыщенный туннель. Решите, какая нагрузка победит, до инцидента, и ограничьте туннель, чтобы сайт продолжал отвечать.

Ни одна из двух схем не изолирована только потому, что работают обе службы. Способность разместить их вместе — это начало проекта, а работа по изоляции делает его защитимым.

Решите это на пробном хосте четырьмя командами

Перед миграцией арендуйте самый маленький экземпляр целевого продукта на час и проверьте четыре возможности напрямую. Догадки по таблице функций тратят меньше денег, чем год с неправильным тарифом, но гораздо больше времени.

Выполните это на пробном хосте и читайте сбои как ответы, а не как препятствия:

ls -l /dev/net/tun
sudo ip tuntap add dev tun9 mode tun && sudo ip link del tun9
sysctl net.ipv4.ip_forward
ss -lunp | head

Первые две строки говорят, может ли туннельное устройство вообще существовать. Третья сообщает, может ли хост пересылать пакеты, а четвёртая показывает, что уже слушает, чтобы конфликт портов был пойман рано. Провайдер, проваливающий вторую строку, всё же может поддерживать реализацию в пользовательском пространстве, поэтому, обращаясь в поддержку, называйте нужный механизм, а не категорию продукта.

Похожие статьи