Веб-хостинг чи 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Перші два рядки кажуть, чи може тунельний пристрій узагалі існувати. Третій повідомляє, чи може хост пересилати пакети, а четвертий показує, що вже слухає, щоб конфлікт портів було спіймано рано. Провайдер, що провалює другий рядок, усе ж може підтримувати реалізацію в просторі користувача, тому, звертаючись до підтримки, називайте потрібний механізм, а не категорію продукту.