Веб-хостинг или VPS: сможет ли ваш тариф запустить VPN-сервер?
Общий хостинг, управляемое приложение и собственный сервер дают разный контроль над сетью. Сравните четыре возможности, прежде чем что-либо покупать или переносить.
Работающий сайт — доказательство того, что провайдер умеет отдавать HTTP, а не того, что вы контролируете машину. Между общим тарифом, управляемым приложением и собственным сервером есть большой разрыв в том, что аккаунт вправе делать с сетью. Решите, какая сторона этого разрыва нужна вашему проекту VPN, прежде чем платить ещё за год. Четыре возможности разделяют эти два случая, и ни одна из них не указана в прайсе.
Что на самом деле даёт каждый тариф
Полезное сравнение — не цена и не размер диска, а полномочия. Спросите, что аккаунт может запустить, до каких функций ядра он дотягивается, какие порты принимают входящий трафик и может ли допущенный трафик снова уйти в другое место.
Большинство хостинг-продуктов сводятся к трём формам, и только последняя — сервер общего назначения:
| Capability | Website plan | Self-managed server |
|---|---|---|
| Long-running custom process | Usually not permitted | Yours to run under a service manager |
| Virtual network interface | Almost never available | Present when the kernel module and privilege allow it |
| Arbitrary inbound port | Restricted to the web stack | Provider filtering still applies |
| Forwarding for clients | Not offered | Possible 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Первые две строки говорят, может ли туннельное устройство вообще существовать. Третья сообщает, может ли хост пересылать пакеты, а четвёртая показывает, что уже слушает, чтобы конфликт портов был пойман рано. Провайдер, проваливающий вторую строку, всё же может поддерживать реализацию в пользовательском пространстве, поэтому, обращаясь в поддержку, называйте нужный механизм, а не категорию продукта.