Отдельный вопрос от проверки уже выбранного домена: как вообще подобрать кандидата на роль домена-маскировки (dest/SNI) для узла Reality, прежде чем проверять его TLS-профиль.
Принцип подбора: бренд страны размещения ноды
Каждый сервер маскируется под домен известного бренда именно из своей страны физического размещения — при условии, что этот бренд продолжает нормально работать в стране с фильтрацией. Совпадение домена верхнего уровня с географией и автономной системой сервера снимает базовое несоответствие «SNI не соответствует географии IP» — один из первых признаков, по которым системы фильтрации выделяют подозрительные соединения.
Есть и второй довод в пользу такого выбора: блокировка домена компании с действующим легальным бизнесом в стране с фильтрацией экономически и политически невыгодна регулятору. Это своего рода «иммунитет» у подобных доменов — не техническая гарантия, а фактор, который стоит учитывать при выборе.
На практике это означает подбор под каждый профиль отдельно: для сервера в Германии — известный бренд с немецким присутствием, для Франции — бренд соответствующей отрасли с французским присутствием, и так для каждой страны размещения.
Что исключается сразу
- Национальные доменные зоны страны с фильтрацией, резолвящиеся в локальные IP-адреса этой страны, — на сервере за рубежом это создаёт явное несоответствие «домен резолвится в одну страну, IP сервера — в другой».
- Домены без стабильной поддержки современного TLS-стека — этот критерий проверяется отдельно, на этапе технической валидации уже отобранного кандидата.
Почему одного TLS-рукопожатия недостаточно
Проверка только TLS-рукопожатия с доменом-кандидатом даёт ложное ощущение готовности. Реальные системы активного зондирования смотрят дальше одного рукопожатия — кандидат, прошедший только этот шаг, может провалиться при более глубокой проверке. Поэтому валидация кандидата строится в два независимых слоя.
Слой 1 — стабильность TLS
Прямая проверка TLS-рукопожатия с доменом, повторённая минимум дважды: нужна стабильная поддержка TLS 1.3 без флапа — без случайных обрывов соединения или внутренних ошибок сервера. Часть кандидатов отсеивается именно здесь — нестабильный TLS или защитный слой (WAF), который иногда блокирует рукопожатие.
Слой 2 — HTTP-фоллбэк с адреса самого сервера
Прямой HTTP-запрос к домену-кандидату (с современным заголовком User-Agent и поддержкой HTTP/2), отправленный именно с IP-адреса проверяемого сервера, а не с произвольной внешней точки, должен вернуть код 200 или штатный редирект 301/308 на тот же домен. Код 403, капча или другая антибот-стенка — повод отклонить кандидата.
Это критично, потому что система активного зондирования, проверяющая подозрительные адреса, реально обращается к указанному в конфигурации dest-домену именно с адреса проверяемого сервера. Аномальный ответ домена с этого конкретного адреса — заметная аномалия, которую фильтрация может зафиксировать. На этом слое отсеиваются кандидаты, которые прошли первый слой: например, интернет-магазин с защитным WAF, выдающим 403, или локальный сайт с капчей.
Дополнительное правило: отпечаток TLS-клиента
Отпечаток TLS-клиента (имитация популярного браузера) стоит оставлять именно имитирующим браузер — это согласуется с самой идеей маскировки под обычный браузерный трафик к выбранному домену.
Смежная зависимость, о которой легко забыть
Перед сменой домена-маскировки на уже работающей точке входа стоит проверить, не служит ли эта точка выходом в транзитной схеме между нодами: конфигурация на принимающей стороне может жёстко ссылаться на прежнее имя сервера, и рассинхрон после смены SNI молча ломает транзитных пользователей без явной ошибки в логах.
Вывод. Домен-маскировка подбирается не произвольно: бренд должен совпадать со страной размещения ноды и продолжать легально работать в стране с фильтрацией. Кандидата, прошедшего только проверку TLS, рано считать готовым — обязателен второй слой: HTTP-запрос именно с адреса сервера, без 403 и капчи. Пропустите слой два — получите домен, который выглядит рабочим до первой встречи с активным зондированием.