Установка серверной части AmneziaWG на Ubuntu/Debian VPS

В прошлой статье мы разобрали, как AmneziaWG обманывает DPI с помощью шумовых пакетов, мимикрии под QUIC и шифрования заголовков. Теперь — практика. Будем поднимать сервер. Хорошая новость: вам не нужен мощный VPS. AmneziaWG работает на модуле ядра Linux, а значит, потребляет минимум ресурсов. Хватит самого дешёвого сервера за 2–4 $ в месяц с 1 vCPU и 512 МБ ОЗУ. Если планируете подключать много клиентов или гонять 4K-видео — берите 1 ГБ ОЗУ для комфорта. Что понадобится VPS с Ubuntu 24.04 LTS, Ubuntu 22.04 или Debian 12/13. Поддерживаются и другие версии, но на этих всё проверено. Доступ по SSH с правами root (или sudo). 2 ГБ свободного места на диске — минимум. Лучше 3+. 15–20 минут времени. 💡 Важно: В отличие от Marzban, для AmneziaWG не нужен домен, SSL-сертификат или reverse-proxy. Сервер работает на уровне ядра и общается с клиентами напрямую по UDP. Это одновременно и проще, и безопаснее — меньше поверхности для атаки. Шаг 1. Подготовка сервера ...

⚙️ Установка WireGuard на Ubuntu/Debian: Пошаговое руководство

В предыдущих статьях мы разобрали, почему WireGuard быстрее всех и как работает его криптография. Теперь пришло время перейти к практике. В этой статье мы настроим WireGuard на чистом сервере Ubuntu/Debian с нуля. Никаких панелей — только терминал и полное понимание каждого шага.

📦 Шаг 1. Подготовка системы и установка

Обновляем репозитории и ставим необходимые пакеты:

sudo apt update && sudo apt upgrade -y
sudo apt install wireguard qrencode -y

Если вы используете UFW, сразу откройте порт для WireGuard (по умолчанию UDP 51820):

sudo ufw allow 51820/udp
sudo ufw enable

🔑 Шаг 2. Генерация ключей сервера

Создаем каталог и генерируем пару ключей (приватный и публичный):

sudo mkdir -p /etc/wireguard
cd /etc/wireguard
sudo umask 077
wg genkey | sudo tee privatekey-server | wg pubkey | sudo tee publickey-server

Файл privatekey-server является секретным и никогда не должен покидать сервер.

⚙️ Шаг 3. Создание конфигурации сервера

Откройте файл конфигурации:

sudo nano /etc/wireguard/wg0.conf

Скопируйте в него шаблон (подставьте свой приватный ключ и IP-адреса):

[Interface]
PrivateKey = <содержимое файла privatekey-server>
Address = 10.8.0.1/24
ListenPort = 51820

# Клиент 1 (например, ваш ноутбук)
[Peer]
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.8.0.2/32

Важно: Каждому пиру (клиенту) назначается свой уникальный IP внутри туннеля. Префикс /32 означает, что разрешен трафик только от этого адреса.

🔄 Шаг 4. Включение NAT и IP Forwarding

Чтобы трафик от клиентов выходил в интернет через сервер, нужно разрешить пересылку пакетов и настроить маскарадинг.

Включаем пересылку:

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Настраиваем NAT. Узнайте имя вашего сетевого интерфейса командой ip a (обычно это eth0 или ens3) и выполните:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Чтобы правило сохранилось после перезагрузки, установите пакет iptables-persistent:

sudo apt install iptables-persistent -y
sudo netfilter-persistent save

📱 Шаг 5. Запуск службы и автозагрузка

Активируем интерфейс через системную службу wg-quick:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

Проверяем статус:

sudo systemctl status wg-quick@wg0

🖥️ Шаг 6. Настройка клиента

Создайте файл конфигурации на вашем компьютере (например, client1.conf):

[Interface]
PrivateKey = <приватный ключ клиента>
Address = 10.8.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <публичный ключ сервера>
Endpoint = <IP вашего сервера>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
  • AllowedIPs = 0.0.0.0/0 — это Full Tunnel (весь трафик идет через VPN). Для Split Tunnel укажите только нужную подсеть.
  • PersistentKeepalive = 25 — держит соединение активным, если клиент находится за NAT.
  • DNS = 1.1.1.1 — защита от утечек DNS.

🧪 Шаг 7. Диагностика и типовые проблемы

Основной инструмент для проверки туннеля — команда wg show. Она покажет, есть ли Handshake и какой трафик проходит.

Проблема Решение
Нет latest handshake Проверьте, открыт ли порт 51820/udp в UFW и у хостинг-провайдера.
Handshake есть, но нет интернета Проверьте net.ipv4.ip_forward = 1 и правило NAT.
Сайты не грузятся Проверьте, указан ли DNS в конфигурации клиента.
Низкая скорость Уменьшите MTU до 1380 в секции [Interface].

Итог: Вы настроили собственный быстрый VPN на VPS. Это надежная база для подключения к интернету. Если вам нужно автоматизировать создание пользователей и управлять подписками, на следующем шаге мы разберем интеграцию WireGuard с панелью Marzban.

После настройки WireGuard не забудьте открыть порт в брандмауэре. Как это сделать — в нашем гайде по настройке UFW.

📢 Анонс следующих статей: Разберем, как автоматизировать WireGuard с помощью Marzban: добавление клиентов через панель, генерация QR-кодов и подключение к вашему Caddy для создания полноценного сервиса.

Комментарии

Популярные сообщения

🧬 ChaCha20 и Curve25519: Криптография под капотом WireGuard

Немного о том, зачем это нужно.

🔌 L2TP: протокол, который объединил лучшее от двух миров

⚡ ИИ-помощник (на OpenRouter)

Спросите про VPN, протоколы или настройку серверов.