AmneziaWG: Ошибка Cryptographic random entropy pool exhausted
- Сервер или клиент AmneziaWG зависает на этапе инициализации рукопожатия (Handshake).
- В системном журнале ядра появляется ошибка:
random: crng init done / entropy pool exhausted. - Высокая задержка перед установлением VPN-соединения (до 15–30 секунд).
- Служба
amnezia-wgсбоит с ошибкой генерации псевдослучайных последовательностей для обфускации.
1. Проверка доступного пула энтропии в ядре
Выполните проверку текущего уровня доступных случайных бит:
cat /proc/sys/kernel/random/entropy_availЕсли значение меньше 1000 на виртуальной машине (VPS), генерация криптографических мусорных пакетов будет блокироваться.
2. Установка и запуск генератора энтропии Haveged
# Ubuntu / Debian
apt-get install -y haveged rng-tools
systemctl enable --now haveged
# RHEL / Rocky Linux
dnf install -y haveged rng-tools
systemctl enable --now haveged3. Оптимизация параметров Junk Packet в конфигурации AmneziaWG
Чрезмерно большие диапазоны генерации мусора создают нагрузку на CSPRNG генератор. Скорректируйте параметры в awg0.conf:
[Interface]
# Установите умеренные значения для мусорных пакетов
Jc = 4
Jmin = 40
Jmax = 70
# Оптимизируйте заголовки инициализации
S1 = 15
S2 = 35
H1 = 1
H2 = 2
H3 = 3
H4 = 44. Проверка источника аппаратной энтропии virtio-rng
Если вы используете KVM гипервизор, убедитесь, что в конфигурацию виртуальной машины проброшено устройство /dev/urandom через virtio-rng.
Частые вопросы (FAQ)
Зачем AmneziaWG расходует энтропию при каждом подключении?
В отличие от WireGuard, AmneziaWG перед началом сессии отправляет случайное количество пакетов со случайным размером (от Jmin до Jmax байт) со случайным содержимым, чтобы сбить сигнатурный анализ DPI.
Влияет ли низкая энтропия на скорость передачи данных внутри VPN?
Нет, энтропия расходуется в основном на этапе создания сессии (Handshake) и отправки мусорных префиксов. Сама передача данных шифруется симметричным шифром ChaCha20-Poly1305.
Безопасно ли использовать демон haveged на современных ядрах Linux 5.15+?
Да, haveged собирает временные флуктуации тактов процессора и безопасно пополняет системный пул энтропии ядра.
Что произойдет, если установить параметр Jc = 0?
Отправка мусорных пакетов (Junk Packet Count) будет отключена, что снизит нагрузку на CPU/генератор случайных чисел, но уменьшит стойкость к блокировкам DPI.