Reality и маскировка

uTLS в Reality: когда chrome, а когда randomized

Для одиночной ноды randomized — скрытый дефект, а для двух нод одного гео спасение. Как не перепутать сценарии и не сломать обе разом.

6 мин чтения

Симптом: две ноды одной страны отказывают «синхронно»

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

Здесь два разных сценария, и они дают противоположные рекомендации по uTLS-fingerprint. Важно их не перепутать.

Сценарий 1: одиночная нода на randomized

Режим randomized заставляет uTLS периодически генерировать ClientHello, который Reality-dest иногда отвергает — рукопожатие проходит «через раз». Для одиночного хоста это скрытый дефект. Решение: fingerprint: chrome — детерминированный, стабильно принимаемый отпечаток.

Сценарий 2: ноды-близнецы с одинаковым отпечатком

Если у двух разных нод (с разными Reality-ключами) совпадают SNI + порт + fingerprint, для клиента они неотличимы. Клиент, который держит обе одновременно — например, обе являются плечами одного балансировщика, — при переиспользовании TLS-сессии или переключении бьёт сессией, установленной с одной нодой, во вторую. Ключи разные, рукопожатие падает.

Неприятный момент: именно перевод обеих нод на «стабильный» chrome и создаёт коллизию — он стирает последнее различие между близнецами. Ошибочный первичный диагноз в этом классе звучит как «randomized = killer, меняем на chrome». Для одиночной ноды это верно. Для пары близнецов chrome ломает всё разом.

Решение

Вывод. При диагностике «несколько серверов конфликтуют» стройте клиентский отпечаток каждого хоста — кортеж (SNI, порт, fingerprint) — и ищите пары, где отпечаток совпадает, а нода и ключ разные. Унификация клиентских параметров «для порядка» опасна, если за одинаковыми параметрами стоят разные криптографические идентичности: клиент начинает путать сессии. Разнообразие отпечатков здесь — не беспорядок, а необходимая развязка.

Как подключиться за 2 минуты
Частые вопросы

Частые вопросы

Почему две ноды одного гео иногда отказывают синхронно, хотя каждая жива
Причина в двух разных сценариях uTLS-fingerprint, которые легко перепутать: для одиночной ноды дефект в randomized, а для пары нод — наоборот, совпадающий детерминированный отпечаток.
Что делать, если у одиночной ноды соединение поднимается через раз
Режим randomized периодически генерирует ClientHello, который Reality-dest отвергает — решение для одиночного хоста: fingerprint chrome, детерминированный и стабильно принимаемый отпечаток.
Почему перевод обеих нод-близнецов на chrome может всё сломать
Если у двух разных нод совпадают SNI, порт и fingerprint, для клиента они неотличимы: именно перевод обеих на «стабильный» chrome стирает последнее различие между близнецами, и клиент бьёт сессией одной ноды во вторую с другими ключами.
Как развести отпечатки клиента между несколькими нодами одного региона
Лучший способ — дать каждой ноде свой Reality-dest/SNI; более дешёвый — держать их на randomized, чтобы отпечатки не совпадали, поскольку два плеча одного балансировщика не должны иметь одинаковый кортеж SNI+порт+fingerprint при разных ключах.
Похожее

Ещё в базе знаний

Подключите рабочий VPN

Инструкции базы знаний написаны под ключи VPN PRO: ключ выдаёт Telegram-бот за минуту, работоспособность гарантируем. Промокод VPN10 — 10 дней бесплатно, без карты.

Промокод VPN10 — 10 дней бесплатно · до 31 августа · передавайте друзьям