Робочий сайт — доказ того, що провайдер уміє віддавати 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

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

Схожі статті