
Обход блокировок внутри iOS-приложения: VLESS + Reality через sing-box, и грабли по дороге
rcq 14 минут назад Обход блокировок внутри iOS-приложения: VLESS + Reality через sing-box, и грабли по дороге Средний 6 мин 341 Swift * Go * Информационная безопасность * Сетевые технологии * iOS * Кейс Из песочницы Мы...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: rcq 14 минут назад Обход блокировок внутри iOS-приложения: VLESS + Reality через sing-box, и грабли по дороге Средний 6 мин 341 Swift * Go * Информационная безопасность * Сетевые технологии * iOS * Кейс Из песочницы Мы делаем мессенджер. Весной 2026 наш бэкенд начал отваливаться у части пользователей из России: HTTPS-запросы к API таймаутятся, WebSocket не поднимается. Картина знакомая всем, кто держит сервис с одним доменом и одним IP.
Для мессенджера это приговор. Не «неудобно», а именно приговор: приложение, которое не может даже подключиться, бесполезно. И вариант «попросите пользователя сначала включить VPN» нас не устраивал совсем.
Технические детали
Ниже разберу, почему мы в итоге встроили обход прямо в приложение, на чём он работает и на какие грабли мы наступили. Без маркетинга, по делу. Почему не «просто VPN»Первая мысль у всех одинаковая: пусть юзер поставит VPN.
Но если посмотреть на это глазами продукта, всё разваливается. Во-первых, это убивает воронку. Каждый дополнительный шаг до «приложение заработало» стоит вам части аудитории, а «установите и настройте отдельное приложение» это не шаг, это пропасть.
Особенно болезненно, что отваливается ровно та часть пользователей, которой продукт нужнее всего. Во-вторых, сам VPN это движущаяся мишень. Популярные протоколы (OpenVPN, WireGuard, IKEv2) давно и неплохо детектируются по сигнатурам, диапазоны известных VPN-провайдеров режут пачками.
Отраслевые последствия
То есть вы делегируете критичную для вас функцию стороннему приложению, которое завтра само перестанет работать. Нам хотелось другого поведения: пользователь открывает мессенджер, и он работает. Без отдельного приложения, без подписки на чужой сервис, без VPN-профиля в системных настройках iOS.
Обход должен быть деталью реализации, а не задачей пользователя. Что именно блокируетсяЧтобы понимать, что чинить, надо понимать, что ломается. У нас довольно типичная схема: HTTPS API и WebSocket на одном домене.
Заблокировать такое соединение можно несколькими способами, и обычно их комбинируют:по IP-адресу сервера;по имени домена в ClientHello (поле SNI отправляется открытым текстом даже в TLS);по DPI, который смотрит на саму структуру трафика и опознаёт протокол. Обычное TLS-соединение на ваш домен срезается по SNI на раз. Значит, задача формулируется так: соединение должно выглядеть как обращение к какому-то другому, ничем не примечательному и заведомо разрешённому хосту.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.




