Что такое SNI и почему по нему блокируют сайты целиком
SNI (Server Name Indication) — это часть технического заголовка, который браузер отправляет серверу в самом начале HTTPS-соединения, ещё до того, как включается шифрование. В нём указано, к какому именно домену идёт запрос: например, youtube.com или instagram.com. Несмотря на то что дальнейший трафик шифруется, это поле передаётся открытым текстом.
Именно поэтому блокировка почти всегда отключает сайт целиком, а не отдельную страницу. SNI содержит только имя домена, а не полный адрес страницы — путь, параметры запроса и содержимое страницы скрыты шифрованием и недоступны для проверки. Фильтр видит «instagram.com» и решает, пропускать соединение или нет, но не видит, какую именно фотографию или пост вы открываете.
Зачем вообще нужен этот открытый заголовок
На одном IP-адресе часто размещены десятки и сотни разных сайтов — так работают, например, облачные хостинги и CDN. Серверу нужно понять, какой из сайтов вы запрашиваете, чтобы отдать нужный сертификат и начать шифрование именно для него. Для этого браузер и присылает имя домена в SNI ещё до старта шифрования — иначе сервер просто не знает, какой сертификат показать.
Как по SNI блокируют домены
Оборудование, которое проверяет трафик на стороне провайдера, читает это поле в момент установки соединения и сверяет домен со списком блокировок. Если домен в списке — соединение обрывается или подменяется, дальше пользователь ничего не получает. Всё это происходит до того, как страница успевает загрузиться, поэтому с точки зрения пользователя сайт просто «не открывается».
Так как в SNI виден только домен, а не путь до конкретной страницы, точечно заблокировать один раздел сайта или одну функцию сервиса нельзя — либо весь домен доступен, либо весь недоступен. Это и есть причина, почему при блокировке падает сразу весь сайт, включая те его части, которые к блокировке формально отношения не имеют.
Почему может задеть и посторонние сайты
Некоторые сервисы используют общий поддомен CDN или общую инфраструктуру для доставки контента. Если блокировка настроена по такому домену, под неё может попасть не только целевой сайт, но и всё, что использует ту же технику раздачи трафика. Это одна из причин, почему при блокировке одного сервиса иногда перестают открываться и другие, формально не связанные с ним ресурсы.
Как с этим справляется Reality
Протокол Reality, который использует DexterVPN, решает именно эту проблему: он оформляет TLS-соединение так, что в SNI подставляется имя настоящего, легального сайта, а не что-то похожее на VPN. Со стороны проверяющего оборудования это выглядит как обычное обращение к обычному HTTPS-сайту — придраться не к чему, потому что заголовок ничем не отличается от миллионов таких же соединений других пользователей.
Здесь важна честность: это решает именно проблему блокировки по SNI и по протоколу. Если сервер VPN заблокировали не по имени домена, а по IP-адресу напрямую, замаскированный SNI не поможет — в этом случае помогает смена сервера, благо в DexterVPN их несколько в разных странах.
Что из этого следует для пользователя
- Если сайт не открывается только у вас в браузере, а через VPN работает — скорее всего, дело как раз в блокировке по SNI на уровне провайдера.
- Обычный VPN-протокол сам по себе не всегда спасает: если он легко определяется как VPN-трафик, его SNI (или сам факт использования нестандартного протокола) может попасть в тот же список.
- Протоколы, маскирующие SNI под реальный сайт, вроде Reality, обходят именно этот механизм блокировки, а не блокировку по IP — это разные вещи, и стоит понимать разницу, если что-то продолжает не открываться.
Протокол Reality, свои серверы в Европе и никаких логов. Российские сервисы — банки, Госуслуги, маркетплейсы — идут напрямую. 3 дня и 50 ГБ бесплатно, без карты — подключение занимает пару минут.
Открыть бота в Telegram