VPN за $0.01 або як я перестав переплачувати за мережу

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

Привіт, DOU!

Маю історію про те, як небажання платити за простій серверів призвело до написання власного оркестратора VPN-нод.

Типовий сценарій: тобі треба чистий IP у конкретному регіоні на 15 хвилин. Тести, доступ до регіонального контенту чи просто «обхід бан-ліста» (історія цього проекту взагалі почалася з SAMP, але про це окремо).

Стандартні рішення: купувати підписку на VPN (де IP часто шеряться) або тримати VPS на DigitalOcean за $10/місяць. Але платити за простій сервера, який 99% часу нічого не робить це справжній гріх.

Я вирішив це питання через оверінжиніринг і написав свою утиліту.

Стек

  • Cloud: Fly.io.
  • Network: Tailscale.
  • Language: Python 3.14 + Textual (TUI).
  • Package Manager: uv.

Як це працює:

Основна ідея це звести час життя інфраструктури до часу твого перебування в онлайні.

  1. Посекундний білінг: Fly Machines дозволяють піднімати контейнери як процеси. Холодний старт — до 5 секунд. Коли ти тиснеш Stop, машина видаляється. Сесія на півгодини коштує менше одного цента.
  2. Zero-Config: Головна біль подібних рішень — ручна генерація ключів та редагування ACL. Я закрив це через API: скрипт сам реєструє ефемерну ноду, прописує права на Exit Node і видаляє девайс із мережі після завершення. Один API-ключ — і все.
  3. Watchdog: Хмара — штука нестабільна. Щоб не залишити «хвости» і не спалити бюджет, якщо пропав коннект, впроваджено вочдог, який підчищає сирітські ресурси на стороні Fly.io.
  4. TUI: Замість нудних логів у терміналі зроблено інтерфейс на Textual. Вибрав регіон, натиснув Launch і ти в мережі.

Чому це краще за готові гайди?

Є популярні репозиторії на 1.5k+ зірок, які описують, як зробити це ручками за 13 кроків. А моя тулза робить це за один клік.

Код відкритий, лежить тут: github.com/invilso/fly-vpn

Цікаво почути думки, і поради щодо архітектурних рішень.

👍ПодобаєтьсяСподобалось22
До обраногоВ обраному17
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Интересный подход, большой плюс за идею!
Насчёт 10$ на DigitalOcean — это слишком дорого, есть куча хостеров с более дешёвыми тарифами. Вот я например арендовал VPS на 5 лет, что со всеми скидками выходит ровно 2$ в месяц, с конфигурацией 2 Gb RAM, 1 ядро, 20 гиг диск, и 200 мегабит безлимит. Мне лично VPN нужен постоянно, работает круглосуточно, прописан на роутере, и без него вообще никак, поскольку я в Крыму. Бонусом там можно держать что-то на sftp, запускать ещё сервисы, тестировать приложения без ограничений.
В качестве VPN-сервиса лучше используй не обычный WireGuard, а AWG 2.0, поскольку он не детектится и не лочится на ТСПУ, то есть вполне годный в условиях агрессивной слежки и блокировок.

ClearVPN Premium безкоштовний для українців. Чим він гірше?

Якщо це те що я зрозумів — то автор, ти просто космос))

Ого! Ніфіга собі! На ДОУ щось корисне опублікували! Дякую, шикарна штука! Пішов юзать :)

Видел что Windows в роад мап, это хорошо, для игр может понадобится

Крутий сервіс, поставив зірочку на Github.
Мене теж бісять прайси на VPN сервіси — особливо «супер вигідні» тарифи з передплатою на 2 роки, коли мені VPN треба від сили 1-2 рази на місяць.

Скільки ви зекономили чи зекономите в межах вашого середнього користування за рік/місяць?
Тобто який кількісний виграш в грошах?

Математика тут проста, хоча проект і робився заради задоволення. Найдешевший нормальний VPS це десь $5/міс ($60 на рік). Моя сесія коштує $0.01. При середньому використанні разів 10 на місяць я витрачаю трохи більше долара на рік замість шістдесяти.
Тобто виграш близько $58 на рік. Це небагато в масштабах бюджету, але це 98% економії на ресурсах, які 99% часу простоюють. Плюс я взагалі не витрачаю час на адміністрування скрипт робить усе за мене. Це економія не тільки грошей, а й нервів, і бонусом можу змінити регіон за кілька секунд.

Прикольно, иногда может пригодится

тобто ви прийшли до простого аналогу AWS і тому подібного? Як раз оплата посекундно за «навантаження». Тільки фокус тільки на проксі.
До речі вистачає «сумнівних» сервісів для оренди чистого VPN задешево, но на то вони і сумнівні.

Головну проблему що я бачу з вашим сервісом це холодний старт. Якщо масштабувати то потрібно буде переписувати все і тут знов ж таки з кращої сторони себе покажуть вже існуючі ротатори проксі-підключень.
А якщо фокус на «власному сервісу», то тоді потрібно як раз відштовхуватись від «тарифікованих сервісів».
Ось тільки в нашій реальності простий VPS за 10$ це саме краще що можна знайти за таку ціну/послугу. Всі тарифіковані посекундно сервіси виглядають краще на короткій дистанції, но при порівнянні в цілому зазвичай виходить дорожче чим VPS.

Зрозуміло шо таке ставлення не дозволить заробляти, але ми зараз увійшли в епоху нейронок і зараз навіть найдешеві тарифи дають доступ до CLI-агентних систем яким можна просто дати данні доступу до VPS, нарізати задачу і він сам все встановить, перевірить, і це все за 5 хвилин.

Дякую за такий детальний аналіз моєї «неефективності», але давай будемо чесними, ви зараз порівнюєте тепле з м’яким. Математика тут проста. Ваші 10 баксів за VPS це ціла тисяча моїх сесій, і оскільки я не планую жити з VPN цілодобово, варіант платити лише за реальний час мені здається набагато логічнішим, ніж просто гріти повітря в дата-центрі за свої гроші.

Щодо вашого аргументу про нейронки, які «налаштують все за 5 хвилин» ну, окей, вони налаштують, а видаляти цей сервер за мною через 15 хвилин теж буде агент? Весь прикол якраз у повному життєвому циклі: я натиснув кнопку, поюзав і забув, а вочдог сам підчистив усі хвости, поки ви там займаєтеся менеджментом свого статичного сервера. Та й ці 5 секунд холодного старту, це ж буквально час, поки я ввожу пароль у грі, тож я не дуже розумію, куди ви так поспішаєте, якщо вам і це довго.

Звісно, можна було просто купити готове або юзати сумнівні проксі, але де тут фан? Цей проект, про чистий кайф від автоматизації та оверінжинірингу, коли ти береш серйозні інструменти типу Fly Machines та Tailscale API, щоб вирішити свою маленьку задачу красиво. Так що не будьте таким серйозним, спробуйте якось на дозвіллі, воно реально прикольніше, ніж просто «мати сервер»

5сек це не довго, 100 сессій по 5 сек покладуть ваш сервер і добре якщо всі підключення просто розтягнуться в часі, а не повідпадають по таймауту.

Знов ж таки, якщо ви це подаете як власний продукт який покупать у вас (ті самі секунди) то прозорість така ж сумнівна як і з VPN плюсом можливість вильотів та лагів під навантаженням.
Якщо як опенсорс то тоді всеодно очікуеться сервер, а значить сценарій з «один раз налаштувати VPN та забути» таки вигідніше для користувача.

Ящо це просто пет-проект по фану то взагалі ніяких притензій. Задоволення було отримано і це головне.

Та ви трохи не туди дивитесь)

Автор не продає ніякий VPN-сервіс і не тримає «свій сервер» під усіх. Це опенсорсна тулза, яка автоматизує запуск вашої тимчасової ноди у вашому акаунті Fly io. Тобто платите ви не автору репи, а напряму провайдеру за свої ресурси.

Тому історія про «100 сесій покладуть ваш сервер» тут взагалі не дуже застосовна — нема одного спільного сервера автора, який треба масштабувати на всіх. Кожен юзер піднімає окрему інсталяцію під себе.

І так, якщо VPN потрібен 24/7, то VPS може бути вигідніший. Але якщо задача разово підняти чистий IP на 15–30 хвилин і не платити за простій, то саме в цьому і сенс рішення. Тут не про «заробляти на секундах», а про нормальну автоматизацію короткоживучої інфраструктури.

ChatGPT, бо я сам не зміг грамотно сформулювати думку 😅

До речі дякую, рішення дуже елегантне, обов’язково спробую, коли знадобиться VPN)
На телефоні мені поки вистачає безкоштовного з App Store, а на компі якраз маю робочий сервер на DigitalOcean. Але там і ціна $7, і локація, по суті, тільки Амстердам, якщо захочу іншу то треба добрі хвилин 30 налаштовувати новий дроплет

і всеодно потрібна інфраструктура щоб запустити «на 15 хвилин» і від цього не дітися

чисто для себе я юзаю Yggdrasil, написав під себе шоб можна було отримувати список всіх активних точок виходу і по ним робити прямий тунель для всіх вказаних засобів (прибив до браузера)
мережа моя закрита, сервера також мої, едине що — зробив щоб тунель великі завантаження батчив по 500кб, тому як Yggdrasil це в першу чергу меш і маленькі пакети паралельно проходять краще чим один великий

Оригінальне рішення. Підтримав зірочкою.

Чи будете далі популяризувати через пости на Reddit та інших платформах?

Дякую! Так, зараз пост очікує на модерацію в редіті)

Цiкаво, дякую. А там можна вибрати краïну?

Підписатись на коментарі