На дворе конец 2025 года. Если вы разработчик, дата-сайентист или просто энтузиаст технологий в РФ, то ваше утро начинается не с кофе, а с проверки того, какой еще сервис решил, что вы ему больше не нравитесь.
Ситуация уникальна тем, что мы находимся под перекрестным огнем. С одной стороны — гео-блокировки со стороны самих сервисов (OpenAI, Anthropic, Google, Microsoft), которые закрывают доступ для пользователей из России. OpenAI показывает "Access Denied", Claude вежливо сообщает, что он "не доступен в вашем регионе", а Google Gemini делает вид, что вас не существует.
С другой стороны — нестабильность самих каналов связи. Привычные VPN-протоколы периодически "штормит", соединения отваливаются, а скорость падает до модемных времен из-за особенностей фильтрации трафика на магистралях.
Твое лицо, когда Claude вежливо сообщает, что он "не доступен в вашем регионе"
Казалось бы, выход есть — старый добрый VPN. Но сегодня это решение с кучей "но". Даже если вы нашли протокол, который не блокируется, остается проблема маршрутизации. Гонять весь трафик через Амстердам, чтобы просто спросить у ChatGPT, как отцентровать div — это как стрелять из пушки по воробьям. Банковские приложения начинают паниковать, отечественные стриминговые сервисы грузятся с задержкой, а пинг в играх вызывает желание разбить клавиатуру. К тому же, постоянное переключение тумблера утомляет, а забытый включенный клиент быстро высаживает батарею.
Нам нужно что-то более элегантное. Хирургическое. Нам нужен Split Tunneling, но не на уровне приложения VPN, а на уровне всей сети. Чтобы openai.com шел через "заграницу", а gosuslugi.ru — напрямую.
Сегодня мы пройдем путь от "я просто хочу, чтобы оно работало" до создания собственного комбайна для маршрутизации трафика. Мы разберем существующие решения, поймем, почему они нам не подходят, и соберем свой собственный шлюз на базе Nginx (или Angie) и DNS-сервера, который будет делать магию прозрачно для всех ваших устройств.
Юридическая справка (Disclaimer)
Я не юрист, это не юридическая консультация.
Важно: С 1 марта 2024 года в РФ действует запрет на популяризацию средств обхода блокировок (Приказ РКН № 168).
Данная статья носит исключительно научно-технический характер.
Я рассматриваю технологии маршрутизации трафика (SNI Proxy, DNS) и преодоления гео-блокировок, наложенных иностранными сервисами (OpenAI, Google, Anthropic) на пользователей из РФ.
Техническое примечание: Описываемый метод (SNI Proxy) не скрывает имя запрашиваемого сайта (SNI передается в открытом виде). Поэтому он технически непригоден для обхода блокировок ТСПУ (DPI) на ресурсах, запрещенных законодательством РФ.
Часть 1: А что, есть варианты?
Прежде чем открывать терминал и писать конфиги, давайте посмотрим, что предлагает рынок. Может, велосипед уже изобретен?
1. Решения операторов: Анатомия "Telegram-прослойки"
К концу 2025 года практически все крупные операторы связи выкатили доступ к зарубежным AI. Но как инженеры, давайте посмотрим не на тарифы, а на архитектуру этих решений.
Что предлагают операторы: Обычно это доступ к ChatGPT, Gemini, Claude, Midjourney и подобным сервисам через специальные тарифы, агрегаторы "нейронок" или веб-чаты с подпиской.
С технической точки зрения, все они реализованы по схеме API Wrapper (через Telegram или Web).
Как это устроено:
Frontend: Telegram-бот. Это идеальный интерфейс: не нужно пилить свое приложение, а авторизация пользователя происходит нативно по номеру телефона (Telegram ID привязывается к биллингу оператора).
Middleware: На серверах оператора крутится бэкенд, который держит постоянный зашифрованный туннель до зарубежных дата-центров.
Backend: Оператор покупает Enterprise-доступ к API OpenAI/Anthropic (или использует пулы аккаунтов).
Flow: Вы пишете сообщение в Telegram -> Бот оператора его парсит -> Оборачивает в JSON-запрос к API OpenAI -> Получает ответ -> Отдает вам.
Почему это "не то": Это решение уровня L7 (Application Layer), причем сильно урезанное.
Нет прямого доступа: Вы не получаете сетевой маршрут до openai.com. Вы общаетесь с ботом, а не с сервисом.
Несовместимость: Вы не можете вставить API-ключ от этого бота в VS Code (Copilot), в Cursor или в свой Python-скрипт. Протокол общения проприетарный (Telegram API).
Фильтрация: Оператор выступает как Man-in-the-Middle. Он видит все ваши запросы и может накладывать дополнительные фильтры поверх тех, что есть у OpenAI.
Это отличный продукт для масс-маркета ("поиграться с нейронкой"), но для профессиональной работы, где нужна интеграция с IDE или API, такая архитектура бесполезна.
Тот неловкий момент, когда в магазине продают "Лишние пальцы", но настоящий сюрреализм начинается только дома.
2. А как же альтернативы? (Yandex, DeepSeek, Local)
Справедливости ради, мир не сошелся клином на OpenAI. Есть отличные YandexGPT 4 и GigaChat Max, мощные китайские DeepSeek и Qwen, а также возможность запустить Llama 3.2 локально через Ollama.
Они сделали огромный рывок, но почему мы всё равно ломимся в закрытые двери Запада?
SOTA (State of the Art): В сложных задачах кодинга и архитектуры GPT-5 (OpenAI), Claude 4.5 (Anthropic) и Gemini 3 (Google) всё ещё держат пальму первенства.
Экосистема: VS Code, Cursor, LangChain и тысячи других инструментов заточены под API OpenAI.
Железо: Для локального запуска моделей уровня GPT-5 вам понадобится сервер по цене квартиры, а облачные API китайцев пока не так стабильны.
Поэтому, при всем уважении к альтернативам, доступ к этой "большой тройке" нам всё ещё нужен.
Прости, GigaChat, ты классная, но у ChatGPT ответы лучше
3. Бесплатные Smart DNS сервисы
В сети существуют бесплатные DNS-серверы, которые делают именно то, что мы хотим: перенаправляют запросы к заблокированным ресурсам через свои прокси.
Как это работает: Это технология Smart DNS (или DNS Hijacking во благо). Когда ваш компьютер спрашивает "Где находится microsoft.com?", обычный DNS (например, от Google 8.8.8.8) ответит реальным IP-адресом Microsoft. Smart DNS ответит IP-адресом их сервера. Ваш трафик пойдет к ним, а они уже перешлют его в Microsoft.
Плюсы:
Бесплатно: Вообще. Это филантропия в чистом виде.
Простота: Прописал два IP-адреса в настройках сетевой карты (или роутера) — и всё заработало.
Работает: Отлично справляется с обновлениями Windows, доступом к Copilot, ChatGPT и даже некоторыми стримингами.
Минусы:
Black Box: Вы не контролируете сервер. Сегодня он работает, завтра — изменит политику, закроется или станет платным. Стабильность — величина переменная.
Privacy (Приватность): Это самый жирный минус, о котором многие забывают. Используя чужой DNS, вы добровольно отдаете историю ВСЕХ своих DNS-запросов третьей стороне.
Владелец DNS-сервера знает, на какие сайты вы ходите, когда и как часто.
Даже если авторы сервиса имеют хорошую репутацию и заявляют, что не собирают логи, с технической точки зрения это Man-in-the-Middle (хоть и на уровне метаданных).
Если сервер взломают, злоумышленники могут подменить IP-адрес вашего банка на свой фишинговый сайт.
Скорость: Если сервера перегружены (а халяву любят все), у вас будет тормозить весь интернет, даже тот, который не блокируется (потому что DNS-запросы идут долго).
Ограниченный список: Вы не можете добавить свой домен. Если сервис не проксирует нужный вам ресурс (например, какой-нибудь новый стартап super-ai.io), вы ничего не сможете с этим сделать. Вы зависите от админа сервиса.
Аналоги: Существуют и другие подобные DNS-сервисы (как платные, так и бесплатные), которые позволяют настраивать правила маршрутизации, но гибкость настройки под конкретные домены в них обычно ограничена.
4. API-прокси и "Обертки"
Есть класс сервисов, которые предоставляют доступ к API OpenAI/Anthropic через свои эндпоинты. Вы меняете api.openai.com на адрес прокси-сервиса, вставляете их ключ, и всё работает.
Плюсы:
Идеально для разработки и интеграций.
Оплата в рублях.
Стабильность выше, чем у бесплатных решений.
Минусы:
Цена: Обычно дороже, чем прямой доступ (наценка за сервис).
Приватность данных: Ваши промпты и ответы проходят через их сервера в открытом (для них) виде. Для пет-проекта — ок, для корпоративной разработки — служба безопасности сделает вам харакири.
Нет веб-интерфейса: Это решение для кода, а не для "початиться в браузере".
5. Классические VPN с Split Tunneling
Некоторые VPN-провайдеры предлагают функцию раздельного туннелирования. Вы ставите клиент, указываете, какие приложения пускать через VPN, и живете спокойно.
Плюсы:
Надежное шифрование.
Проверенные решения.
Работает "из коробки" (обычно).
Минусы:
Требует клиента: Нужно ставить приложение на каждое устройство. На телефон, на ноутбук, на планшет. А как быть с телевизором? А с умной колонкой? А с PlayStation?
Сложность настройки: Настроить списки маршрутизации на роутере (чтобы работало на всех устройствах сразу) — задача не для слабонервных. Вам придется возиться с BGP, списками IP-адресов (которые у OpenAI меняются чаще, чем настроение у подростка) и правилами фаервола.
Батарея: Постоянно висящий VPN-процесс на телефоне кушает заряд. Шифрование требует CPU.
Капчи: Это бич всех публичных VPN. Google видит, что с одного IP-адреса идет миллион запросов, и начинает показывать вам светофоры. Конечно, наш метод тоже от этого не застрахован, если завернуть туда весь google.com. Но прелесть своего решения в том, что мы можем точечно пустить gemini.google.com через прокси, а обычный поиск оставить напрямую. В VPN такое разделение внутри одного домена сделать крайне сложно.
Блокировки протоколов: WireGuard и OpenVPN сейчас активно блокируются провайдерами (ТСПУ). Вам придется искать обфусцированные протоколы (VLESS, Shadowsocks, AmneziaWG), что опять же повышает порог входа.
Часть 2: Путь Самурая (Ручная сборка)
Если ни один из вариантов выше вас не устроил (как и меня), значит, пришло время замарать руки в конфигах. Мы построим свою систему, которая будет:
Прозрачной: Никаких кнопок "подключить". Устройства просто работают.
Приватной: Мы не расшифровываем трафик (SNI Proxy). Мы не видим ваши пароли, мы видим только домены.
Управляемой: Мы сами решаем, что проксировать, а что нет.
Дешевой: стоит как чашка кофе (300-500 рублей).
Архитектура: Два пути самурая
Прежде чем покупать сервер, нужно определиться с топологией. У нас есть два варианта, как это всё собрать.
Вариант А: "Перфекционист" (Два сервера)
Это классическая схема для тех, кто хочет идеальной скорости.
Сервер 1 (РФ): Это ваш промежуточный DNS-сервер (например, дешевый VPS в Москве). Он отвечает на запросы мгновенно (пинг 1-5 мс).
Сервер 2 (За рубежом): Это ваш SNI-прокси (Нидерланды/Финляндия). Он нужен только для доступа к AI.
Схема: Вариант А (Два сервера)
Как работает: Вы спрашиваете у российского DNS "Где Яндекс?". Он отвечает реальным IP Яндекса. Вы спрашиваете "Где ChatGPT?". Он отвечает IP вашего зарубежного сервера.
Плюсы: Максимальная скорость интернета, независимость от зарубежного канала.
Минусы: Нужно администрировать две точки. Требуется два "белых" IP-адреса (один для российского сервера, один для зарубежного), что увеличивает бюджет.
Вариант Б: "All-In-One" (Один сервер)
Это схема для тех, кто хочет "сделать и забыть". Полная замена бесплатным Smart DNS сервисам.
Сервер 1 (За рубежом): На нем крутится И DNS, И SNI-прокси.
Схема: Вариант Б (Один сервер)
Как работает: Вы прописываете IP этого сервера как свой DNS в настройках роутера/телефона. Все запросы летят туда.
Плюсы: Простота. Один сервер, одна оплата, одна настройка. Работает везде (даже на мобильном интернете).
Минусы: Пинг до DNS увеличивается (30-50 мс до Европы). Это добавляет небольшую задержку при первичном открытии сайтов (время резолвинга), что может быть заметно при активном веб-серфинге.
Выбор VPS: Квест "Оплати меня, если сможешь"
Выбор хостинга в 2025 году — это отдельная мини-игра. Нам нужен сервер с белым публичным IPv4-адресом (NAT не подойдет) и каналом хотя бы 100 Мбит/с.
Критерии выбора:
Локация: Чем ближе к вам, тем лучше пинг. Для европейской части РФ идеальны Финляндия (Helsinki), Швеция (Stockholm), Эстония (Tallinn) или Нидерланды (Amsterdam). Для ДВ — Япония или Сингапур.
IP-репутация: Это критически важно. Если вы возьмете самый дешевый VPS у "ноунейм" хостера, его IP может быть уже забанен в Google или OpenAI из-за предыдущих жильцов (спамеров).
Оплата: Самая большая боль.
Когда готов заплатить $5 за сервер, но способов оплаты всё меньше
Варианты хостеров:
Российские хостеры с зарубежными локациями. Принимают карты МИР, СБП. Техподдержка на русском. Из минусов — часто дороже зарубежных аналогов, IP-адреса могут быть "заезженными".
Зарубежные хостеры. Надежность, дешевизна (от ~4€), чистые IP. Из минусов — не принимают карты РФ, требуют верификацию личности (KYC) с паспортом. Как платить: карты зарубежных банков, посредники (платишь им рублями + комиссия, они платят за тебя), или криптовалюта (если хостер принимает).
Крипто-хостинги. Анонимность, оплата криптовалютой. Из минусов — часто дороже.
Технология: SNI Proxy (Магия без расшифровки)
Многие думают, что для проксирования HTTPS нужно расшифровывать трафик (MITM), подменять сертификаты и устанавливать корневые сертификаты на устройства. Это сложно, небезопасно и ломает многие приложения (Certificate Pinning).
Но есть SNI (Server Name Indication).
Представьте, что вы отправляете запечатанное письмо (HTTPS-пакет). Вы не можете прочитать содержимое письма (оно зашифровано). Но на конверте написан адрес получателя: "OpenAI, ул. Искусственного Интеллекта, д. 1".
Когда ваш браузер начинает рукопожатие (TLS Handshake) с сервером, он открытым текстом в первом пакете (Client Hello) говорит: "Я хочу подключиться к api.openai.com". Это и есть SNI.
Наш прокси-сервер работает как почтальон. Он:
Принимает конверт.
Читает адрес на конверте (SNI).
Видит "Ага, это для OpenAI".
Открывает соединение с реальным сервером OpenAI.
Передает конверт туда.
Получает ответный конверт и отдает его вам.
В чем профит?
Мы не вскрываем конверт. Шифрование остается end-to-end (от вашего браузера до сервера OpenAI).
Сертификат остается оригинальным. Браузер видит сертификат, подписанный OpenAI, и не ругается.
Никаких настроек на клиенте. Не нужно ставить сертификаты в систему.
В чем подвох?
Мы видим только домен, но не URL. Мы не можем заблокировать конкретную страницу openai.com/bad-page, только весь домен openai.com. Но для нашей задачи (обход блокировок) это именно то, что нужно!
Критически важно: ECH и QUIC (Убийцы схемы)
Вся наша схема держится на том, что мы можем прочитать имя домена (SNI) из первого пакета. Но современные браузеры пытаются это скрыть. Более того, в РФ эти протоколы находятся под пристальным вниманием ТСПУ.
ECH (Encrypted Client Hello): Эта технология шифрует SNI.
Проблема: Во-первых, наш сервер не сможет прочитать домен и не поймет, куда пересылать трафик. Во-вторых, ТСПУ в РФ активно блокируют соединения с ECH, так как не могут их инспектировать. Включение ECH часто приводит к недоступности даже незаблокированных ресурсов (например, за Cloudflare).
Проблема: Наш простой SNI-прокси работает по TCP. Если браузер уйдет в QUIC, он пойдет мимо прокси (и скорее всего упрется в блокировку). К тому же, UDP-трафик на 443 порту часто шейпится (замедляется) провайдерами.
Решение: Отключите «Experimental QUIC protocol» в флагах или заблокируйте исходящий UDP на порт 443 на клиенте. Это заставит браузер использовать старый добрый TCP, который мы умеем маршрутизировать.
Шаг 1: Настройка VPS (Nginx/Angie)
Я рекомендую использовать Angie (форк Nginx от российских разработчиков) или классический Nginx. Angie крут тем, что у него более продвинутые возможности по мониторингу и ACME (автоматические сертификаты), что нам пригодится позже.
А почему не Caddy?
Многие любят Caddy за его простоту и автоматический HTTPS. И у него даже есть модуль layer4 для SNI-проксирования. Казалось бы, идеальный кандидат?
К сожалению, всё не так радужно. Во-первых, модуль layer4 не поставляется "из коробки". В стандартных репозиториях дистрибутивов его нет. Вам придется либо собирать конструктор на сайте Caddy и качать кастомный бинарник, либо компилировать сервер вручную.
Во-вторых, на момент написания статьи, модуль layer4 в Caddy имеет проблемы с корректным проксированием некоторых специфических TLS-рукопожатий, которые используют современные AI-сервисы.
Особенно критично это для GitHub Copilot и Microsoft Copilot. Из-за специфики обработки SNI и ECH, Caddy не всегда обеспечивает полную прозрачность туннеля. Сервис умудряется детектировать ваше реальное местоположение и выдает блокировку по геолокации, даже если трафик технически идет через прокси.
Возможно, есть способы заставить эту связку работать, но я не увидел в этом смысла. В Angie всё работает сразу из коробки, как автомат Калашникова. К тому же, с Caddy мы теряем его главное преимущество — простой и понятный Caddyfile, так как модуль layer4 настраивается через нативный caddy.json.
Установка Angie
Перейдем от слов к делу. Устанавливаем Angie на VPS. Лучше всего использовать официальные репозитории, чтобы получать свежие версии. Подробная инструкция для всех дистрибутивов (Ubuntu, Debian, CentOS, Alpine и др.) есть в официальной документации.
Теперь нам нужно заставить наши домашние устройства думать, что api.openai.com находится не в Калифорнии, а на нашем VPS. Для этого нам нужен свой DNS-сервер.
Тут есть два пути:
Путь 1: AdGuard Home (Красиво и мышкой) AdGuard Home — это мощный комбайн с веб-интерфейсом. Он умеет блокировать рекламу, показывать красивые графики и управлять клиентами.
Плюсы: Веб-интерфейс, статистика, простота настройки для новичков.
Минусы: Тяжеловат (жрет память), требует отдельного порта для веб-морды. Нет 2FA: Выставлять панель управления в открытый интернет небезопасно, лучше прятать её за VPN или ограничивать доступ по IP.
Путь 2: Blocky (Быстро и конфигом) Blocky — это легковесный DNS-прокси на Go.
Плюсы: Супер-быстрый, потребляет копейки ресурсов, конфигурируется одним YAML-файлом. Идеален для слабых VPS или Raspberry Pi.
Минусы: Нет веб-интерфейса (только метрики для Prometheus), настройка через текстовый файл.
Важно для Android (Private DNS): Если вы планируете использовать функцию "Частный DNS" (Private DNS) на Android, вам обязательно нужен валидный SSL-сертификат для вашего домена (например, от Let's Encrypt). Самоподписанные сертификаты Android не принимает — соединение просто не установится. Для этого вам понадобится доменное имя и настройка DoT/DoH (DNS-over-TLS / DNS-over-HTTPS). Если вы используете Angie, сертификаты можно получать автоматически через встроенный ACME-клиент. С обычным Nginx придется повозиться с Certbot.
Лайфхак: Не обязательно покупать домен. Некоторые хостеры выдают бесплатные технические доменные имена (вида vm12345.хостер.com) при покупке VPS. Вам останется только подключить услугу DNS-хостинга (часто тоже бесплатную у того же провайдера), чтобы управлять записями и получать сертификаты.
Шаг 2.5: Безопасность (Не оставляйте дверь открытой)
Сервер нужно защитить. Если вы этого не сделаете, через час его найдут сканеры, а через день через него будут брутфорсить пентагон или спамить.
1. Firewall: Закройте всё, кроме нужного.
КРИТИЧЕСКИ ВАЖНО ПРО DNS (53 ПОРТ): Никогда не открывайте 53 порт (UDP) всему интернету! Ваш сервер мгновенно станет усилителем для DDoS-атак (DNS Amplification), и хостер заблокирует вас.
Идеально: используйте DoT/DoH (порты 853/443), тогда 53 порт можно держать закрытым.
Если нужен обычный DNS (для старых роутеров): разрешите доступ только с вашего IP-адреса.
Выберите ваш инструмент:
Вариант A: UFW (Ubuntu/Debian — самый простой)
apt install ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh # 22 порт (или какой у вас)
ufw allow 80/tcp # HTTP (для ACME)
ufw allow 443/tcp # HTTPS (наш прокси + DoH)
ufw allow 853/tcp # DNS-over-TLS
# ufw allow from ВАШ_IP to any port 53 proto udp # Только если нужен обычный DNS
ufw enable
Android поддерживает DoT нативно (функция "Частный DNS"):
Настройки -> Сеть и Интернет -> Частный DNS-сервер.
Выбираем "Имя хоста провайдера частного DNS".
Вписываем ваш домен (например, dns.yourdomain.com).
Обратите внимание: Android понимает только доменные имена, IP-адрес тут не сработает.
4. iOS (iPhone/iPad)
iOS требует установки профиля конфигурации (.mobileconfig) для DoT/DoH. Его можно сгенерировать вручную или скачать из интерфейса AdGuard Home (Настройки -> Настройки шифрования).
Если генерируем вручную: Создайте файл dns.mobileconfig со следующим содержимым (замените ВАШ_ДОМЕН и IP_ВАШЕГО_VPS):
Отправьте этот файл себе через AirDrop или iCloud Drive и откройте на устройстве.
Шаг 4: Проверка
Самый простой способ проверить, что всё работает:
В браузере: Откройте chatgpt.com (или другой настроенный ресурс).
Сайт должен открыться. Если вы видите окно логина или чата вместо заглушки "Access Denied" — всё работает.
В AdGuard Home:
Зайдите в "Журнал запросов" (Query Log).
Вы должны увидеть запросы к chatgpt.com от вашего IP-адреса.
Если вы настроили DoT/DoH, рядом с запросом будет значок замочка (Encrypted).
Примечание: Команда nslookup или dig с компьютера может не сработать, если вы закрыли 53 порт на сервере. Это нормально. Браузеры и настроенные роутеры будут использовать защищенный канал (DoT/DoH).
Вы великолепны! Вы только что восстановили доступ к инструменту, который необходим вам для работы, преодолев несправедливые географические ограничения.
Бонус: Моя автоматизация
Описанный выше процесс работает, но требует ручного редактирования конфигов каждый раз, когда нужно добавить новый домен или обновить сертификат. После нескольких итераций я написал для себя утилиту на Python, которая объединяет Angie (или Nginx) и AdGuard Home (или Blocky) в единую связку.
Что умеет:
Добавлять/удалять домены для SNI-проксирования одной командой (CLI) или через веб-интерфейс
Автоматически обновлять конфиги веб-сервера и DNS-перезаписи
Получать сертификаты Let's Encrypt (через ACME-клиент Angie или Certbot для Nginx)
Исходный код открыт и доступен на GitHub: github.com/crim50n/flowgate. Можете использовать как есть, форкнуть или просто подсмотреть идеи для своей реализации.
Итог
Мы живем в интересное время, когда доступ к информации требует инженерных навыков. Можно платить операторам за "специальные тарифы", можно доверять бесплатным DNS-сервисам, а можно потратить вечер, арендовать VPS за чашку кофе и поднять свою собственную, независимую систему доступа.
Надеюсь, эта статья и предложенные инструменты сэкономят вам пару часов жизни и нервных клеток, позволив сосредоточиться на действительно важных задачах.
В конце концов, свобода — это просто правильно настроенная маршрутизация.