OpenVPN TLS key negotiation failed to occur within 60 seconds: решение
Что означает ошибка тайм-аута TLS в OpenVPN?
В окне лога клиента появляется характерная запись: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity), после чего следует строка TLS Error: TLS handshake failed. Это означает, что клиент отправил запрос на установку защищенной сессии, но за 60 секунд не получил от сервера ни одного подтверждающего ответа.
Чеклист источников проблемы 60-секундного таймаута
| Узел сбоя | Что именно сломалось | Вероятность |
|---|---|---|
| Фаервол сервера (VPS) | Закрыт порт 1194 UDP в iptables/ufw | Высокая (40%) |
| Ключ TLS-Auth / TLS-Crypt | Ключ ta.key на клиенте отличается от серверного | Высокая (35%) |
| Системное время (NTP) | На сервере или ПК сбились дата и время (сертификаты не валидны) | Средняя (15%) |
| Блокировка провайдером | Провайдер глушит UDP-трафик системами DPI | Средняя (10%) |
Пошаговое устранение сбоя согласования ключей TLS
- Проверяем статус и порт службы OpenVPN на сервере:
Подключитесь к вашему Linux VPS по SSH и проверьте, работает ли демон:
sudo systemctl status openvpn-server@server # Проверяем, слушает ли сервер порт: sudo ss -tulpn | grep 1194 - Открываем фаервол на сервере:
Если на сервере включен брандмауэр
ufw, разрешите порт OpenVPN:sudo ufw allow 1194/udp sudo ufw reload - Сверяем директиву key-direction и ta.key:
Если в конфигурации используется защита
tls-auth ta.key, проверьте соответствие номеров направлений:- На сервере должно быть:
tls-auth ta.key 0(илиkey-direction 0) - На клиенте должно быть:
tls-auth ta.key 1(илиkey-direction 1) - Если используется современный режим
tls-crypt ta.key, цифры 0 и 1 указывать не нужно нигде!
- На сервере должно быть:
- Синхронизируем дату и время:
Если дата на компьютере спешит или отстает более чем на несколько минут, проверка срока действия SSL-сертификатов завершится ошибкой. Включите автосинхронизацию времени по NTP в Windows или выполните на Linux VPS:
sudo timedatectl set-ntp on
Если провайдер блокирует UDP: Переведите сервер и клиент на протокол TCP и порт 443 (в конфиге: proto tcp, port 443). Трафик TCP 443 пропускается подавляющим большинством сетевых фильтров.
Частые вопросы (FAQ)
Почему OpenVPN молча ждет именно 60 секунд?
Параметр handshake timeout по умолчанию равен 60 секундам. В течение этого времени клиент делает повторные попытки отправки SYN-пакетов через равные интервалы.
Что такое tls-auth и зачем он нужен?
Это дополнительная цифровая подпись к каждому входящему пакету. Сервер мгновенно отбрасывает любые чужие пакеты без нужной подписи, защищая OpenVPN от сканеров портов и DoS-атак.
Может ли роутер пользователя блокировать VPN?
Да, некоторые роутеры имеют встроенную функцию SPI Firewall или режим родительского контроля, блокирующие нераспознанный исходящий UDP-трафик.
Как проверить, доходят ли пакеты до сервера в реальном времени?
Запустите на сервере сетевой анализатор: sudo tcpdump -i any port 1194 -nn. Если при попытке входа с ПК пакеты не появляются — трафик глушит провайдер.