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

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

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

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

AmneziaWG: Соединение разрывается каждые 120 секунд (PersistentKeepalive)

Обновлено: 25.08.2026 · Официальная документация ↗
  • Туннель работает стабильно при активном скачивании, но зависает после 1-2 минут простоя.
  • Входящий трафик перестает поступать, пока пользователь вручную не отправит запрос (например, не обновит страницу).
  • Сервер не может инициировать соединение с клиентом, находящимся за межсетевым экраном или сотовой вышкой NAT.
  • Регулярные задержки в получении Push-уведомлений и входящих сообщений в мессенджерах.

1. Архитектура работы State-таблиц NAT и межсетевых экранов

Домашние роутеры и шлюзы сотовых операторов (CGNAT) сохраняют соответствие трансляции UDP портов в течение ограниченного времени (обычно от 30 до 120 секунд). Если по туннелю не передаются данные, запись в таблице трансляции удаляется, и входящие пакеты от сервера перестают доходить до клиента.

2. Включение директивы PersistentKeepalive в конфиге клиента

Добавьте директиву регулярного пинга в секцию [Peer] клиентского файла конфигурации:

[Peer]
PublicKey = <Server_Public_Key>
Endpoint = 203.0.113.10:51820
AllowedIPs = 0.0.0.0/0
# Отправка пустого защищенного heartbeat-пакета каждые 25 секунд
PersistentKeepalive = 25

3. Тюнинг времени жизни UDP-соединений в ядре сервера

Если разрывы наблюдаются на стороне сервера, увеличьте тайм-ауты conntrack в /etc/sysctl.d/99-conntrack.conf:

net.netfilter.nf_conntrack_udp_timeout = 60
net.netfilter.nf_conntrack_udp_timeout_stream = 180
sysctl --system

4. Проверка интервала через консоль awg

awg show awg0 persistent-keepalive
💡 Практика специалистов: Для агрессивных сотовых операторов, сбрасывающих сессии через 30 секунд тишины, уменьшите PersistentKeepalive до 15 секунд.

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

Почему PersistentKeepalive по умолчанию выключен в WireGuard/AmneziaWG?

По умолчанию он отключен для экономии заряда батареи мобильных устройств и снижения фонового трафика в сетях со статическими белыми IP-адресами.

Какое значение PersistentKeepalive считается оптимальным?

Значение 25 секунд является общепринятым стандартом для преодоления подавляющего большинства таймаутов домашнего NAT и мобильных операторов.

Создает ли PersistentKeepalive заметный трафик?

Нет, пакет keepalive имеет минимальный размер (около 32 байт) и передается раз в 25 секунд, расходуя менее 100 КБ трафика в сутки.

Нужно ли прописывать PersistentKeepalive на сервере?

Нет, keepalive настраивается на стороне клиента, находящегося за NAT, чтобы держать исходящий порт открытым в сторону публичного сервера.

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