Почему AmneziaWG, а не обычный WireGuard

У WireGuard есть характерный handshake — 148 байт в первом пакете, конкретные паттерны инициации. Российские ТСПУ научились это детектировать к 2025 году. Поднимаете WireGuard на порту 51820 — блок. Меняете на 443 — работает пару недель, потом тоже блок.

AmneziaWG решает это иначе: добавляет случайные байты в начало каждого пакета (junk header), меняет размер инициирующего пакета и тайминги. Для DPI это уже не WireGuard — просто непонятный UDP-трафик. Скорость и шифрование те же.

Если нужна максимальная устойчивость к зондированию — смотрите на VLESS+REALITY. AmneziaWG проще в настройке, но REALITY теоретически надёжнее при активном DPI-анализе.

Что понадобится

  • VPS с Linux за пределами России. Хватит 1 vCPU и 512 МБ RAM.
  • SSH-доступ к серверу.
  • 10-15 минут.

По серверу: я использую netcup — немецкий хостинг с датацентрами в Германии и Нидерландах. Самый дешёвый VPS стоит около €3/мес. Для новых пользователей промокод 36nc17698518190 даёт скидку 5€ при регистрации на netcup.com. Подойдёт и Hetzner, DigitalOcean, Vultr — любой европейский VPS.

Одно требование: UDP не должен быть заблокирован хостингом. У большинства VPS-провайдеров UDP открыт, но у Oracle Free Tier бывают ограничения.

Установка сервера

Заходим по SSH. Если Docker ещё не установлен — ставим:

curl -fsSL https://get.docker.com | sh

Создаём папку и переходим в неё:

mkdir -p ~/amneziawg && cd ~/amneziawg

Создаём файл docker-compose.yml:

services:
  amneziawg:
    image: ghcr.io/amnezia-vpn/amneziawg:latest
    container_name: amneziawg
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SERVERURL=auto
      - SERVERPORT=51820
      - PEERS=5
      - PEERDNS=1.1.1.1
      - INTERNAL_SUBNET=10.13.13.0
      - AWG_JUNK_PACKET_COUNT=4
      - AWG_JUNK_PACKET_MIN_SIZE=40
      - AWG_JUNK_PACKET_MAX_SIZE=70
      - AWG_INIT_PACKET_JUNK_SIZE=40
      - AWG_RESPONSE_PACKET_JUNK_SIZE=40
    volumes:
      - ./config:/config
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1

Запускаем:

docker compose up -d

Параметры AWG_JUNK_* — это и есть обфускация. Они добавляют случайный мусор в начало пакетов. DPI видит непонятный UDP, а не WireGuard handshake.

Открываем порт в файрволе:

ufw allow 51820/udp && ufw reload

Через 30–60 секунд контейнер создаст конфиги для 5 клиентов (параметр PEERS=5, меняйте по нужде).

Конфиг для клиента

QR-код для первого клиента:

docker exec amneziawg /app/show-peer-qr.sh 1

Или просмотр файла конфига:

cat ~/amneziawg/config/peer1/peer1.conf

Файл выглядит как WireGuard конфиг, но с дополнительными полями Junk* — именно они включают обфускацию на стороне клиента.

Обычный клиент WireGuard не умеет читать эти поля — обфускация не включится. Нужен именно клиент AmneziaWG.

Установка клиента

Android

Скачайте AmneziaVPN из Google Play. «Добавить VPN» → «Свой сервер» → «WireGuard» → отсканируйте QR или вставьте конфиг.

iOS

AmneziaVPN в App Store. Интерфейс такой же. Если не находится — ищите по прямой ссылке: apps.apple.com/app/amneziavpn/id1541619901.

Windows / macOS / Linux

Скачайте установщик с GitHub releases. После установки: «Открыть конфигурацию» → выберите файл peer1.conf.

Проверка

После подключения:

  • Откройте 2ip.ru — должен показать IP вашего VPS, не домашний.
  • Проверьте что заблокированные сайты открываются.

Если VPN не подключается:

  1. Проверьте логи: docker logs amneziawg. Ошибок быть не должно.
  2. Проверьте порт снаружи: с другой машины nc -zvu ваш-ip 51820.
  3. Попробуйте сменить порт на 443 в docker-compose.yml (строка ports) и пересоздайте контейнер: docker compose down && docker compose up -d.

Советы по настройке

Смените порт на 443/UDP. Порт 51820 — стандартный для WireGuard, его часто блокируют первым. UDP на 443 выглядит как QUIC/HTTP3 и проходит значительно лучше.

Отдельный конфиг на каждое устройство. Не используйте один peer на всех. Если телефон потеряется — просто удалите его peer, не меняя конфиги на остальных устройствах.

Если начали блокировать — поменяйте значения обфускации: AWG_JUNK_PACKET_COUNT в диапазоне 2–8, размеры в диапазоне 20–100. Пересоздайте конфиги клиентов.

Если AmneziaWG нестабилен в вашем регионе — следующий шаг это VLESS+REALITY. Сложнее в настройке, зато DPI его не детектирует вообще. Гайд по VLESS+REALITY →