VPN за $0.01 або як я перестав переплачувати за мережу
Привіт, 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.
Як це працює:
Основна ідея це звести час життя інфраструктури до часу твого перебування в онлайні.
- Посекундний білінг: Fly Machines дозволяють піднімати контейнери як процеси. Холодний старт — до 5 секунд. Коли ти тиснеш Stop, машина видаляється. Сесія на півгодини коштує менше одного цента.
- Zero-Config: Головна біль подібних рішень — ручна генерація ключів та редагування ACL. Я закрив це через API: скрипт сам реєструє ефемерну ноду, прописує права на Exit Node і видаляє девайс із мережі після завершення. Один API-ключ — і все.
- Watchdog: Хмара — штука нестабільна. Щоб не залишити «хвости» і не спалити бюджет, якщо пропав коннект, впроваджено вочдог, який підчищає сирітські ресурси на стороні Fly.io.
- TUI: Замість нудних логів у терміналі зроблено інтерфейс на Textual. Вибрав регіон, натиснув Launch і ти в мережі.
Чому це краще за готові гайди?
Є популярні репозиторії на 1.5k+ зірок, які описують, як зробити це ручками за 13 кроків. А моя тулза робить це за один клік.
Код відкритий, лежить тут: github.com/invilso/fly-vpn
Цікаво почути думки, і поради щодо архітектурних рішень.

20 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів