TLS-рукопожатие и тайм-аут: соединение обрывается на старте
Настройки в порядке — иначе приложение не дошло бы до попытки соединения. Это четвёртая застава, сервер: запрос до него не доехал или на нём не сошлись условия начала разговора. Ниже пять причин и шесть шагов проверки, первый из которых занимает десять секунд.
Отказ на этой стадии почти всегда лечится сменой точки, а не настройками.
Короткий ответ
Любое защищённое соединение начинается с рукопожатия: стороны договариваются о том, как будут шифровать разговор, и проверяют друг друга. Пока рукопожатие не завершилось, никакого туннеля ещё нет. Тайм-аут означает, что ответа не дождались вовсе; ошибка рукопожатия — что ответ пришёл, но условия не сошлись.
- Сервер выключен или перегружен — самая частая причина тайм-аута. Проверяется переключением на соседнюю точку за десять секунд.
- Узел фильтруется в вашей сети — тогда та же точка работает в мобильном интернете и молчит на домашнем Wi-Fi.
- Устарели настройки самой точки — на сервере их поменяли, а в вашем профиле лежат прежние. Лечится обновлением подписки.
- Сбиты часы устройства — рукопожатие не проходит, потому что сроки перестают сходиться.
- Сеть вмешивается в защищённые соединения — этим занимается «проверка HTTPS» в антивирусах и часть корпоративных сетей.
Почему часы вообще при чём
Время участвует в проверке сертификатов: у каждого есть срок действия, и если часы устройства ушли далеко вперёд или назад, сертификат считается недействительным — рукопожатие обрывается. Отдельная история — протокол VMess: он прямо требует, чтобы время на устройстве и сервере совпадало. VLESS, который чаще всего стоит за ключами для Happ, к часам сам по себе безразличен, но защитный слой поверх него — нет.
Поэтому держите автоматическую установку даты и часового пояса включённой: она снимает целый класс отказов, которые иначе выглядят как поломка сервера.
Тайм-аут и обрыв рукопожатия — это разные отказы
Разница в одном: дождались вы ответа или нет. Ответа не было — виновата точка или путь до неё. Ответ был, но соединение сорвалось — сходятся не условия, и лечится это уже часами, антивирусом или обновлением приложения.
Шесть шагов до причины
Первые два шага отделяют мёртвую точку от проблем вашей сети — с них и начинайте.
-
1
Переключитесь на другой сервер списка
Возьмите другую страну и подключитесь. Заработало — дело было в одной точке: она выключена, перегружена или заблокирована. Ни одна из точек не отвечает — причина общая, идите дальше по шагам.
-
2
Смените сеть
Попробуйте ту же точку с мобильного интернета вместо Wi-Fi и наоборот. Разное поведение в двух сетях — верный признак того, что узел фильтруется у одного из операторов, а не сломан.
-
3
Включите автоматическую дату и время
В системных настройках включите синхронизацию времени и часового пояса, затем подключитесь заново. Если часы уходили, ошибка рукопожатия исчезнет сразу.
-
4
Отключите проверку защищённых соединений в антивирусе
Функция называется по-разному — проверка HTTPS, сканирование SSL, защита сети, — но делает одно: вмешивается в рукопожатие. Для Happ это выглядит как повреждённый ответ сервера.
-
5
Обновите подписку
Возможно, точка не сломана, а выведена из эксплуатации: новый список серверов у сервиса уже есть, а у вас в приложении — старый. Обновление профиля приносит актуальные адреса. Если после обновления серверов не осталось вовсе, разбор здесь: пустой список серверов.
-
6
Проверьте доступ с другого устройства
Тот же профиль на втором телефоне или компьютере отвечает на вопрос, где именно проблема. Обрыв везде — застава осталась на сервере. Обрыв только на одном устройстве — возвращайтесь к проверкам первых двух застав.
Разводка по поведению
| Как ведёт себя подключение | Что это значит | Что делать |
|---|---|---|
| Встроенная проверка соединения показывает «Тайм-аут» вместо задержки | Ответа от узла нет вовсе | Взять другую точку: значок состояния станет зелёным, как только ответ придёт |
| Одна точка молчит, остальные работают | Узел выключен или заблокирован | Пользоваться другой точкой и обновить подписку |
| Молчат все точки в одной сети, в другой всё поднимается | Фильтрация у оператора или в роутере | Проверить другую сеть, при возможности сменить канал |
| Ошибка рукопожатия, тайм-аута нет | Ответ приходит, но условия не сходятся | Проверить дату и время, отключить проверку HTTPS в антивирусе |
| Подключается с третьей-четвёртой попытки | Потери на канале или перегруженная точка | Сменить сервер: это не лечится повторными нажатиями |
| Подключение встало, но страницы не грузятся | Застава пройдена, отказ дальше | Смотрите подключено, а интернета нет |
| Вместо тайм-аута сообщение, что ядро не может быть запущено | До рукопожатия дело не дошло: приложение не запустилось | Смотрите ошибку ядра и баз правил |
Почему «порт открыт» ничего не доказывает
Открытый порт означает только то, что установилось TCP-соединение, — а разговор внутри него может обрываться дальше. Фильтрация работает не только по адресам, но и по тому, как выглядит начало защищённого соединения. Поэтому «порт открыт, значит сервер не режут» — неверный вывод, тем более сделанный с одной точки и у одного оператора.
Надёжнее судить по поведению в нескольких сетях. Если точка отвечает у мобильного оператора и молчит у домашнего провайдера — она жива, и вопрос к каналу. Если молчит везде и с разных устройств — вопрос к точке.
Почему старое приложение не договаривается с живым сервером
Современные ключи для Happ часто используют режим маскировки: соединение с сервером внешне похоже на обычный визит на посторонний настоящий сайт. Это делает трафик неотличимым от повседневного, но добавляет условие — сервер и приложение должны сойтись в деталях этой маскировки. Старая сборка иногда не умеет того, что уже требует сервер, и рукопожатие срывается на ровном месте.
Поэтому при срыве рукопожатия сразу на всех точках обновите сам Happ: настройки верны и сервер жив, не совпадают только версии приложения и сервера.
Не меняйте параметры сервера вручную
Порт, отпечаток, имя маскировки и прочие поля точки приходят из подписки и должны совпадать с настройками сервера. Подобранные наугад значения дают тот же тайм-аут, только теперь ещё и с испорченным профилем: восстановить его получится лишь обновлением подписки.
Молчат все точки — значит, точек больше нет
Тайм-аут на всех серверах сразу, в двух разных сетях и на двух устройствах означает, что чинить нечего: узлы, которые вам выдали, больше не отвечают. Публичные и перепроданные списки умирают именно так — молча и целиком. Заведомо рабочая подписка обновляет список серверов при блокировках сама, по той же ссылке: заменять профиль в приложении не нужно, и очередной обрыв не превращается в вечер за перебором точек.
Короткие ответы
Что означает «истекло время ожидания» при подключении?
Что сервер не ответил за отведённый срок. Причина либо на самом узле, либо на пути к нему — в сети оператора. Первым делом переключитесь на другую точку.
Ошибка TLS — это проблема сертификата?
Не обязательно. Так же выглядят сбитые часы, вмешательство антивируса в защищённые соединения и несовпадение параметров маскировки между старым приложением и обновлённым сервером.
Почему подключение работает по мобильной сети и не работает по Wi-Fi?
Потому что фильтруют по-разному. Домашний провайдер и мобильный оператор — это два независимых канала, и один может резать то, что другой пропускает.
Помогает ли перезапуск роутера?
Иногда — если проблема в зависшей сессии или в подменённых ответах DNS. Но если та же точка молчит и с мобильного интернета, перезапуск роутера ничего не изменит.
Сколько ждать, прежде чем считать сервер мёртвым?
Двух-трёх попыток достаточно. Дальше проверяйте не время, а количество: если молчит одна точка — вопрос к ней, если все сразу — вопрос ко всему списку.
Страница ответила на ваш вопрос?
Спасибо, учтём при следующей правке страницы.