AmneziaWG Error: Jc (Junk Packet Count) parameter mismatch — Синхронизация
Клиент отправляет последовательность пакетов инициализации AmneziaWG, однако сервер отбрасывает сессию до завершения авторизации.
- В журнале
dmesgсервера:amneziawg: awg0: Junk packet count mismatch from peer / Expected Jc=X, got Y. - Рукопожатие не завершается, счетчик
latest handshakeостается пустым. - Клиент успешно генерирует мусорный трафик, но сервер считает его невалидными дейтаграммами или сетевой атакой.
- Ошибка возникает сразу после ручного редактирования конфигурационного файла на одной из сторон.
1. Назначение параметра Jc в AmneziaWG
Параметр Jc (Junk packet count) задает **точное количество фиктивных (мусорных) UDP-пакетов**, которые клиент обязан отправить на сервер непосредственно перед отправкой реального пакета Handshake Initiation для сбивания с толку эвристических анализаторов DPI.
2. Проверка значения Jc на сервере и клиенте
Проверьте совпадение значений параметра в секциях [Interface]:
# На сервере:
grep -i "Jc" /etc/amnezia/amneziawg/awg0.conf
# На клиенте:
grep -i "Jc" client.conf3. Установка единого значения Jc
Установите одинаковое целочисленное значение (рекомендуемый диапазон: от 1 до 10, по умолчанию 4 или 5):
# Серверный конфиг (/etc/amnezia/amneziawg/awg0.conf)
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <Server_PrivKey>
Jc = 4
Jmin = 50
Jmax = 100
S1 = 20
S2 = 40
H1 = 100000001
H2 = 100000002
H3 = 100000003
H4 = 100000004В клиентском конфиге (client.conf) блок [Interface] должен содержать в точности те же параметры Jc = 4.
4. Применение параметров и перезапуск интерфейсов
# На сервере:
awg-quick down awg0 && awg-quick up awg0
# На клиенте:
awg-quick down client && awg-quick up client Частые вопросы (FAQ)
Что произойдет, если на клиенте указать Jc=5, а на сервере Jc=0?
Сервер сочтет первые 5 мусорных пакетов невалидными запросами WireGuard (bad header) и может временно заблокировать IP клиента, а шестой пакет (реальный handshake) может быть отброшен из-за нарушения порядка.
Можно ли полностью отключить отправку мусорных пакетов?
Да, установив Jc = 0 на сервере и клиенте. В этом случае AmneziaWG не будет отправлять мусорные пакеты перед рукопожатием, сохраняя только обфускацию заголовков H1-H4.
Содержат ли мусорные пакеты какую-либо полезную информацию?
Нет. Пакеты заполняются псевдослучайными байтами криптографического генератора, чтобы выглядеть как произвольный нераспознаваемый UDP-шум.
Влияет ли параметр Jc на стабильность при потерях пакетов (packet loss)?
При сильной потере пакетов в сети высокий Jc (> 10) может повысить вероятность потери одного из пакетов последовательности, поэтому держите Jc в диапазоне 3–5.