Свой VPN за 5 минут

VPN-сервер — пока едешь в автобусе по цене проезда, чтобы все завидовали и думали, что ты умный, а ты, негодяй, просто делал, как тут написано. Ты настоящий bad boy!

VPN-сервер — пока едешь в автобусе по цене проезда, чтобы все завидовали и думали, что ты умный, а ты, негодяй, просто делал, как тут написано. Ты настоящий bad boy!

Термин «вайбкодинг» появился всего полтора года назад, в феврале 2025-го, но с тех пор успел стать предметом обожания одних и ненависти других — в зависимости от того, кто и как его понимает. Ввёл его в оборот Андрей Карпати, один из сооснователей OpenAI, и уже в ноябре того же года британский словарь Collins назвал «вайбкодинг» словом года.
Термин новый, но писать код при помощи LLM научились гораздо раньше.
Я каждый день пользуюсь Claude Code и Cursor, работая то через корпоративный VPN, то через личный. В какой-то момент это привело к блокировке аккаунта Claude — судя по всему, из-за слишком частой смены страны и IP. Вместо того чтобы поднимать свой прокси, я написал небольшой npm-пакет geo-guard-ai: он проверяет страну по внешнему IP перед запуском Claude Code и Cursor и перед каждым промптом, и блокирует работу, если страна не из разрешённого списка. В статье — почему обычный alias для перехвата команды не годится, как устроена двухуровневая проверка и что нужно знать про поведение fail-closed в Cursor.
На Хабре много пишут про высокие нагрузки, стартапы и миллионные бюджеты. Моя ниша скромнее: я делаю сайты малому бизнесу в регионах. Стоматологии, свадебные фотографы, автомастерские, магазины запчастей. Читая статьи «как я сделал сервис на миллион пользователей», я каждый раз вспоминаю, как выбирал хостинг для сайта стоматологии и переживал из-за того, что у клиента не работает кнопка на телефоне в 11 вечера.
За пять лет я прошёл путь от «сделаю за три дня дёшево» до аккуратного процесса с брифом, договором и поддержкой. Расскажу, как это выглядит изнутри, где я регулярно наступал на грабли, и почему цены на такие сайты почти всегда оказываются выше, чем ожидает заказчик.

Последние 3 года я был сильно увлечен нейросетями. Пробовал их, еще когда занимался дизайном в январе 2023 года, а далее уже в программировании, учебе и маркетинге, но все поменялось месяц назад и я перестал пользоваться ими вообще некоторое время. Думаю уместно будет начать с того, как я пришел к этому инструменту с какими опасностями столкнулся, а далее расскажу, что стоить делать для того, чтобы использовать нейросети безопасно и обойти 99% людей.

Значок VPN в шторке Android говорит только одно: интерфейс существует. Он ничего не говорит о том, реально ли через этот интерфейс сейчас проходит трафик, а в условиях, где VPN регулярно блокируют, разница между этими двумя состояниями ощущается на практике.
В статье - как Android на самом деле определяет наличие VPN, почему этого недостаточно, какие есть более надёжные способы проверки, и описание моих трудностей и их решений при написании pet-проекта для Android.

Я пишу код через ИИ-агентов: даю задачу, агент правит файлы, запускает тесты, коммитит. Работает быстро, пока сессия жива. А потом сессия сжимается или закрывается — и следующий запуск того же агента начинается с чистого листа. Я полгода жил в режиме «перескажи контекст заново», пока не собрал систему из пяти текстовых файлов, которая этот контекст держит.

Freedom To Parrots — проект, с помощью которого любой желающий, имея обычный ПК, телефон или ноутбук, может развернуть туннель для интернет-трафика внутри интернет-звонка, чтобы получить доступ к сайтам там, где это необходимо!

Обычно автоматический новостной канал в Telegram делают так: скрипт на feedparser, копеечный VPS, cron раз в час — и в канал падает безликая простыня текста со ссылкой. Через день от такого канала все отписываются.

У этой гонки нет финиша. Каждый раз, когда цензура учится распознавать очередное поколение VPN‑протоколов, разработчики уже через несколько недель выпускают версию, которая снова её обманывает — и цикл начинается заново.
В этой статье описано — четыре реальных раунда этой гонки. Как Китай в 2019–2021 годах научился вычислять Shadowsocks по тому, насколько случайными выглядели первые байты соединения. Как в 2018-м Роскомнадзор заблокировал 19 миллионов IP Google и Amazon ради одного Telegram. Как российский TSPU в 2025–2026 годах дошёл до обрезания любого соединения через Cloudflare после первых 16 килобайт. И какой протокол сейчас в ответ буквально притворяется чужим сайтом.

В прошлых постах я рассказывал про v2hub - экосистему для управления VPN-подписками - и про то, как я до неё докатился. На тот момент сервис был устроен просто: есть пользователь, у него есть токен, он этим токеном управляет своими подписками. Через v2hub-cli, через v2hub-panel, через бота - не важно, суть одна: у пользователя только те подписки, что он создал сам.
Это отлично работало и продолжает работать. Но начали появляться люди, которые хотят построить свой сервис поверх v2hub или интегрировать его в уже существующий продукт. Стало ясно, что текущего функционала для этого не хватает.
Потому что тут у нас уже не один хозяин, а два: конечный пользователь, который хочет получить рабочий VPN, и разработчик, который хочет предоставить этот VPN как часть своего сервиса. И токен пользователя разработчику давать нельзя - это его личный ключ, а не то, чем размениваются.
Можно, конечно, передать свой личный токен, чтобы сторонний сервис сам создавал подписки от вашего имени. Но это неудобно и пользователю (сервис может взять и удалить нужную ему подписку), и разработчику (пришлось бы хранить отдельный токен для каждого пользователя).
Так в v2hub появились провайдеры.

TrustTunnel создан командой AdGuard VPN. Исходники сервера и клиентов открыты, и сервер можно поднять на своём VPS. Для подключения к нему не нужна подписка на AdGuard VPN. Официальный проект.
Клиент устанавливает защищённое соединение с сервером. Внутри него идут подключения приложений, а сервер уже обращается к нужным адресам в интернете. Для передачи данных используются HTTP/2 поверх TLS и TCP либо HTTP/3 поверх QUIC и UDP.
Для каждого TCP-подключения клиент отправляет HTTP-запрос CONNECT и открывает отдельный поток. Сервер соединяется с адресатом, после чего передаёт данные в обе стороны. Несколько потоков используют общее соединение между клиентом и VPS.
UDP устроен иначе: датаграммы разных приложений передаются через один общий HTTP-поток. Внутри него TrustTunnel добавляет адреса, порты и длину данных, чтобы сервер мог отправить каждый пакет по назначению. Для ICMP echo, то есть ping, спецификация предусматривает отдельный поток. Это описано в спецификации TrustTunnel.
Разница между транспортами заметна при потерях пакетов. В HTTP/2 все потоки зависят от одного TCP-соединения: пока оно восстанавливает потерянные данные, доставка следующих данных задерживается. В QUIC восстановление идёт отдельно для каждого потока. Но внутри потока порядок сохраняется, а пропускная способность соединения остаётся общей. Поэтому HTTP/3 не гарантирует меньшую задержку в любой сети. Устройство потоков QUIC.
На практике HTTP/2 полезен там, где ограничен UDP. HTTP/3 стоит проверить там, где UDP доступен. Сравнивать лучше на своей сети и своём сервере.

В Испании одновременно не хватает айтишников и десятки тысяч людей с технологическим образованием не могут найти работу.
В Tech Cities 2026 Experis приводит оценку ОЭСР: на одного доступного технологического специалиста в Испании приходится больше трёх предложений работы. Adecco насчитал почти 222 тысячи опубликованных технологических вакансий за 2025 год.
А профсоюз UGT показывает другую Испанию: 50 354 зарегистрированных соискателя работы в секторе TIC. По данным Eurostat, которые приводит UGT, в стране 54 100 безработных с образованием в области новых технологий. Безработица среди них — 9,9% против 6,5% в среднем по ЕС.
На первый взгляд кто‑то здесь неправильно считает.

Я работаю тестировщиком в онлайн-школе испанского языка. Наш проект это не сайт с учебными материалами или сервис с несколькими фичами, а довольно большая платформа, которой пользуются ученики, преподаватели и менеджеры. Словом, полноценное учебное заведение, но — онлайн. EdTech, короче говоря.
У ученика в личном кабинете: расписание уроков, учебные материалы, домашние задания, чаты с преподавателями, словарь, заметки, мини-курсы, тесты, разного рода статистика, платежи. У преподавателя — возможность создавать кастомные уроки, использовать предзаготовленные, расписание, домашние задания, библиотека материалов, конструктор упражнений и многое другое. Кураторы занимаются административной работой, помощью в организации учебного процесса, платежами. Все сходу и не перечислишь.
Frontend написан на React, состояние хранится в Redux, значительная часть бизнес-логики вынесена в сервисный/API-слой. Проект активно использует Firebase и Firestore, есть асинхронные операции, webhooks, внешние API, realtime-синхронизация, AI-функции и другие интеграции.
Когда я только пришел в компанию, о юнит-тестах речи вообще не было, да и процесс тестирования как таковой был выстроен довольно условно и формально. Какое-то тестирование, конечно, проводилось, но полноценного автоматизированного регресса практически не существовало. И мне казалось, что моя зона ответственности вполне понятна: ручное тестирование нового функционала, регрессии, поиск багов.
За несколько лет, пока я работал на проекте, ситуация изменилась.
В начале сентября из тихого режима вышла компания Mostik: 15 человек, из них 12 с докторской степенью и один лауреат Филдсовской премии. Их мост соединяет две языковые модели и передаёт скрытые состояния напрямую, минуя текст. В демонстрации облачная GLM-5.2 на 753 миллиарда параметров не пишет ни одного токена: читает задачу, отдаёт внутреннее состояние через мост, а весь текст генерирует Qwen-3.5 на 4 миллиарда, модель класса «запускается на телефоне».
Издание QbitAI пишет: связка выбила зашкаливающий результат на ARC-AGI 3, том самом бенчмарке, где до этого почти максимум набрал GPT-6 Astra. Точных цифр в материале нет. Сама команда технические детали пока не раскрывает: говорит, соревнование не закончено. Зато главную идею описали подробно, и о ней можно поговорить предметно, с формулами и допущениями, а не только на пальцах.

Рассказываю, как объединить нейросеть Gemini и приложение Anki, чтобы перестать зубрить конспекты. Пошаговая настройка обхода блокировок, готовый промпт для карточек и разбор метода Фейнмана.

Отчёт «готово» о непроверенной работе выглядит так же, как о проверенной. Лестница доказательств из пяти ступеней, четыре вердикта вместо одного слова и каталог ложных закрытий: как отличить доказанное от того, на что мы просто надеемся.
Двадцать площадок продают одно и то же — 65 000 единиц энергии TRON на час — и ни одна пара не называет цену одинаково. Я читаю их прайсы каждые пятнадцать минут и свожу в одну таблицу. Статья не про TRON: она про то, что происходит между «страница загрузилась» и «есть число, по которому можно сортировать», и про один класс ошибок, который я считаю самым скверным в системах такого рода: производная величина, незаметно ставшая исходной.
4 сентября у многих пользователей из России внезапно перестали нормально работать AI-функции Cursor: Agent, Chat, автодополнение и часть API-запросов.
Днём ранее, 3 сентября, Anysphere обновила Terms of Service. В новой версии появился пункт 17.5 Export and Trade Controls, где говорится о необходимости соблюдать санкционные и экспортные ограничения, а также об ограничениях на использование сервиса в определённых юрисдикциях и для определённых лиц.
И вот тут возникает интересная проблема.
Самый очевидный совет — «просто включи VPN» — для разработчика, работающего в корпоративной инфраструктуре, часто не подходит. В моём случае корпоративная сеть нужна постоянно: через неё доступны внутренняя документация, GitLab, сервисы, базы знаний и прочая инфраструктура. При включении обычного VPN маршрут до корпоративной сети ломался. В итоге Cursor вроде бы снова получал доступ наружу, но одновременно терял доступ внутрь корпоративной инфраструктуры.

Десктопная программа, которая берёт полнометражный фильм и сама нарезает короткие вертикальные ролики: находит сцены, распознаёт речь, просит LLM выбрать лучшие моменты, потом режет, центрирует кадр на людях и вшивает субтитры. Дальше - что умеет, как устроено внутри и грабли, о которые я споткнулся.