Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

WG_HANDSHAKE_TIMESTAMP_REJECTED Сетевое оборудование и VPN

WireGuard Error: System time out of sync: Handshake timestamp rejected — Исправление

Обновлено: 24.08.2026 · Официальная документация ↗

WireGuard отклоняет пакеты инициализации соединения из-за невалидной или устаревшей метки времени TAI64N. Туннель не поднимается.

  • В логах ядра Linux: wireguard: wg0: Handshake initiation has bad timestamp / older than previous.
  • После перезагрузки одного из клиентов (особенно роутеров OpenWrt или плат Raspberry Pi без батарейки RTC) соединение не устанавливается до ручного перевода часов.
  • Счетчик рукопожатий не увеличивается.
  • В выводе timedatectl статус System clock synchronized: no.

1. Принцип монотонных меток TAI64N в протоколе Noise

Каждый пакет Handshake Initiation содержит 12-байтную зашифрованную метку точного времени в формате TAI64N. Сервер сохраняет наибольшую метку времени, полученную от данного пира, и **отклоняет любые входящие пакеты с меткой, меньшей или равной сохраненной** (защита от повторов).

2. Проверка состояния часов и NTP на хосте

timedatectl status

Если системное время отстает или спешит, включите службу точного времени:

# Включение синхронизации через systemd-timesyncd
timedatectl set-ntp true

# Либо установка Chrony для мгновенной синхронизации
apt-get install -y chrony || dnf install -y chrony
systemctl enable --now chronyd

3. Исправление проблем на роутерах OpenWrt и устройствах без RTC (Raspberry Pi)

Устройства без аппаратных часов RTC при старте сбрасывают время в 1970 год, из-за чего сервер WireGuard отклоняет их пакеты, так как ранее уже получал пакеты с меткой 2024 года:

# На клиенте OpenWrt / Embedded Linux:
# Принудительно установите текущую дату перед запуском интерфейса:
ntpd -q -p pool.ntp.org

# Либо запишите скрипт в /etc/init.d/sysfixtime

4. Сброс сохраненной метки времени на стороне сервера

Если часы клиента были временно переведены в будущее, сервер будет отклонять пакеты до наступления этой даты. Выполните сброс сессии пира на сервере:

# Удаление и повторное добавление пира для сброса счетчика TAI64N:
PEER_KEY="<Client_PublicKey>"
wg set wg0 peer "$PEER_KEY" remove
wg set wg0 peer "$PEER_KEY" allowed-ips 10.0.0.2/32

5. Проверка установления рукопожатия

wg show wg0
💡 Практика специалистов: Для микроконтроллеров и роутеров OpenWrt обязательно настраивайте запуск сервиса WireGuard строго ПОСЛЕ успешного завершения 'sysntpd' или 'chronyd', иначе устройство уйдет в бесконечный цикл непринятых рукопожатий.

Частые вопросы (FAQ)

Что такое метка времени TAI64N?

TAI64N — это стандартизированный 96-битный формат представления астрономического времени с наносекундной точностью, исключающий проблемы високосных секунд и перевода часов.

Почему при сбросе батарейки BIOS/RTC перестает работать WireGuard?

После сброса батарейки материнская плата возвращается в дату выпуска (например, 2018 год). Сервер WireGuard видит пакет из 'прошлого' по сравнению с предыдущей сессией и немедленно уничтожает его.

Можно ли отключить проверку timestamp в WireGuard?

Нет. Проверка TAI64N является фундаментальной частью протокола Noise_IK и защищает всю криптографическую сессию от повторного использования скомпрометированных пакетов.

Какая точность NTP требуется для нормальной работы WireGuard?

Достаточно точности в пределах нескольких секунд. Главное условие — монотонное возрастание времени при каждой новой попытке инициализации.

Полезные материалы
Рекомендуем